diff --git a/rsx_decompiler/rsx_fp_decompiler.cpp b/rsx_decompiler/rsx_fp_decompiler.cpp index e6b78f2..fe9795f 100644 --- a/rsx_decompiler/rsx_fp_decompiler.cpp +++ b/rsx_decompiler/rsx_fp_decompiler.cpp @@ -158,7 +158,7 @@ namespace rsx arg_mask += arg.mask[channel_to_index.at(channel)]; } - return float_point_expr<4>(arg.text, arg_mask, arg.is_single, arg.base_count); + return float_point_expr<4>(arg.text, arg_mask, arg.is_single, 4); } float_point_expr<4> src(context_t& context, int index, bool is_swizzle_as_dst = false) const diff --git a/rsx_program_decompiler.sln b/rsx_program_decompiler.sln index 1370250..c1f40db 100644 --- a/rsx_program_decompiler.sln +++ b/rsx_program_decompiler.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.24720.0 +VisualStudioVersion = 14.0.25123.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsx_program_decompiler", "rsx_program_decompiler\rsx_program_decompiler.vcxproj", "{9DAF4DF3-0E31-4C55-B367-6992C35F89CE}" ProjectSection(ProjectDependencies) = postProject diff --git a/rsx_program_decompiler/rsx_program_decompiler.vcxproj b/rsx_program_decompiler/rsx_program_decompiler.vcxproj index 8c85005..7928073 100644 --- a/rsx_program_decompiler/rsx_program_decompiler.vcxproj +++ b/rsx_program_decompiler/rsx_program_decompiler.vcxproj @@ -79,7 +79,7 @@ true - $(SolutionDir)lib\$(Platform)-$(Configuration)\;$(LibraryPath) + $(SolutionDir)lib\$(Configuration)-$(Platform)\;$(LibraryPath) $(SolutionDir)common\include\;$(SolutionDir)rsx_program_decompiler_lib\;$(SolutionDir)shader_code/;$(SolutionDir)rsx_decompiler\;$(IncludePath) $(SolutionDir)bin\ $(ProjectName)-$(Platform)-$(Configuration) @@ -89,7 +89,7 @@ true - $(SolutionDir)lib\$(Platform)-$(Configuration)\;$(LibraryPath) + $(SolutionDir)lib\$(Configuration)-$(Platform)\;$(LibraryPath) $(SolutionDir)bin\ $(ProjectName)-$(Platform)-$(Configuration) $(SolutionDir)tmp\$(ProjectName)\$(Platform)-$(Configuration)\ diff --git a/shader_code/clike_builder.h b/shader_code/clike_builder.h index 85dc1a3..b14e415 100644 --- a/shader_code/clike_builder.h +++ b/shader_code/clike_builder.h @@ -4,45 +4,53 @@ namespace shader_code { + enum predefined_function_class_t + { + predefined_function_texture_fetch, + predefined_function_texture_bias_fetch, + predefined_function_texture_lod_fetch, + predefined_function_texture_proj_fetch, + predefined_function_texture_grad_fetch + }; + + template + struct predefined_function_name_t; + + template<> + struct predefined_function_name_t + { + static constexpr auto name = "texture_fetch"; + }; + + template<> + struct predefined_function_name_t + { + static constexpr auto name = "texture_bias_fetch"; + }; + + template<> + struct predefined_function_name_t + { + static constexpr auto name = "texture_lod_fetch"; + }; + + template<> + struct predefined_function_name_t + { + static constexpr auto name = "texture_proj_fetch"; + }; + + template<> + struct predefined_function_name_t + { + static constexpr auto name = "texture_grad_fetch"; + }; + template struct clike_builder : public clike_language, public builder { using language = Language; - - template - struct predefined_function_name_t; - - template<> - struct predefined_function_name_t - { - static constexpr auto name = "texture_fetch"; - }; - - template<> - struct predefined_function_name_t - { - static constexpr auto name = "texture_bias_fetch"; - }; - - template<> - struct predefined_function_name_t - { - static constexpr auto name = "texture_lod_fetch"; - }; - - template<> - struct predefined_function_name_t - { - static constexpr auto name = "texture_proj_fetch"; - }; - - template<> - struct predefined_function_name_t - { - static constexpr auto name = "texture_grad_fetch"; - }; - template struct type_helper_t : public clike_language::type_t { diff --git a/shader_code/clike_language.h b/shader_code/clike_language.h index c874a9d..8c8875b 100644 --- a/shader_code/clike_language.h +++ b/shader_code/clike_language.h @@ -650,15 +650,6 @@ namespace shader_code function_ddy }; - enum predefined_function_class_t - { - predefined_function_texture_fetch, - predefined_function_texture_bias_fetch, - predefined_function_texture_lod_fetch, - predefined_function_texture_proj_fetch, - predefined_function_texture_grad_fetch - }; - template static expression_t<(type_class_t)Type::type, Type::count> expression(const std::string& text, bool is_single = true) {