rsx: Improve accuracy of shadow compare Ops when non-integer depth formats are used

- The fixed-point D24S8 format does special Z clamping during compare which matches PS3 behaviour
- D32S8 is a floating point format and comparison with Dref > 1 always fails causing black edges/borders
This commit is contained in:
kd-11 2019-04-15 20:39:42 +03:00 committed by kd-11
parent 7ad1646c2c
commit 463b1b220d
12 changed files with 192 additions and 53 deletions

View file

@ -196,7 +196,8 @@ void GLFragmentDecompilerThread::insertConstants(std::stringstream & OS)
void GLFragmentDecompilerThread::insertGlobalFunctions(std::stringstream &OS)
{
glsl::insert_glsl_legacy_function(OS, glsl::glsl_fragment_program, properties.has_lit_op, m_prog.redirected_textures != 0, properties.has_wpos_input);
glsl::insert_glsl_legacy_function(OS, glsl::glsl_fragment_program, properties.has_lit_op,
m_prog.redirected_textures != 0, properties.has_wpos_input, properties.has_tex_op, device_props.emulate_depth_compare);
}
void GLFragmentDecompilerThread::insertMainStart(std::stringstream & OS)