From 0aaae000b338c3946b1d49b6f869cc5b967ad02b Mon Sep 17 00:00:00 2001 From: kd-11 Date: Tue, 14 Nov 2017 16:41:24 +0300 Subject: [PATCH] rsx: Minor improvements --- rpcs3/Emu/RSX/Common/ProgramStateCache.cpp | 2 +- rpcs3/Emu/RSX/RSXThread.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp b/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp index 2e84fa2ce4..d3eb754cff 100644 --- a/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp +++ b/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp @@ -106,7 +106,7 @@ size_t fragment_program_hash::operator()(const RSXFragmentProgram& program) cons bool fragment_program_compare::operator()(const RSXFragmentProgram& binary1, const RSXFragmentProgram& binary2) const { - if (binary1.texture_dimensions != binary2.texture_dimensions || binary1.unnormalized_coords != binary2.unnormalized_coords || + if (binary1.ctrl != binary2.ctrl || binary1.texture_dimensions != binary2.texture_dimensions || binary1.unnormalized_coords != binary2.unnormalized_coords || binary1.back_color_diffuse_output != binary2.back_color_diffuse_output || binary1.back_color_specular_output != binary2.back_color_specular_output || binary1.front_back_color_enabled != binary2.front_back_color_enabled || binary1.shadow_textures != binary2.shadow_textures || binary1.redirected_textures != binary2.redirected_textures) diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 560e75cfb7..d1db93c1ff 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -1338,7 +1338,7 @@ namespace rsx result.offset = program_offset; result.addr = vm::base(rsx::get_address(program_offset, program_location)); result.valid = true; - result.ctrl = rsx::method_registers.shader_control(); + result.ctrl = rsx::method_registers.shader_control() & (CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS | CELL_GCM_SHADER_CONTROL_DEPTH_EXPORT); result.unnormalized_coords = 0; result.front_back_color_enabled = !rsx::method_registers.two_side_light_en(); result.back_color_diffuse_output = !!(rsx::method_registers.vertex_attrib_output_mask() & CELL_GCM_ATTRIB_OUTPUT_MASK_BACKDIFFUSE); @@ -1430,7 +1430,7 @@ namespace rsx result.offset = program_offset; result.addr = vm::base(rsx::get_address(program_offset, program_location)); result.valid = true; - result.ctrl = rsx::method_registers.shader_control(); + result.ctrl = rsx::method_registers.shader_control() & (CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS | CELL_GCM_SHADER_CONTROL_DEPTH_EXPORT); result.unnormalized_coords = 0; result.front_back_color_enabled = !rsx::method_registers.two_side_light_en(); result.back_color_diffuse_output = !!(rsx::method_registers.vertex_attrib_output_mask() & CELL_GCM_ATTRIB_OUTPUT_MASK_BACKDIFFUSE);