mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-17 08:11:51 +00:00
rsx: Always enable ROP output rounding if shader precision is higher than low
- Hardware behavior is inconsistent so let's just emulate this when possible
This commit is contained in:
parent
673660d362
commit
ebf48800e6
@ -197,7 +197,7 @@ void GLFragmentDecompilerThread::insertGlobalFunctions(std::stringstream &OS)
|
|||||||
m_shader_props.low_precision_tests = ::gl::get_driver_caps().vendor_NVIDIA && !(m_prog.ctrl & RSX_SHADER_CONTROL_ATTRIBUTE_INTERPOLATION);
|
m_shader_props.low_precision_tests = ::gl::get_driver_caps().vendor_NVIDIA && !(m_prog.ctrl & RSX_SHADER_CONTROL_ATTRIBUTE_INTERPOLATION);
|
||||||
m_shader_props.disable_early_discard = !::gl::get_driver_caps().vendor_NVIDIA;
|
m_shader_props.disable_early_discard = !::gl::get_driver_caps().vendor_NVIDIA;
|
||||||
m_shader_props.supports_native_fp16 = device_props.has_native_half_support;
|
m_shader_props.supports_native_fp16 = device_props.has_native_half_support;
|
||||||
m_shader_props.ROP_output_rounding = ::gl::get_driver_caps().vendor_NVIDIA;
|
m_shader_props.ROP_output_rounding = g_cfg.video.shader_precision != gpu_preset_level::low;
|
||||||
m_shader_props.require_tex1D_ops = properties.has_tex1D;
|
m_shader_props.require_tex1D_ops = properties.has_tex1D;
|
||||||
m_shader_props.require_tex2D_ops = properties.has_tex2D;
|
m_shader_props.require_tex2D_ops = properties.has_tex2D;
|
||||||
m_shader_props.require_tex3D_ops = properties.has_tex3D;
|
m_shader_props.require_tex3D_ops = properties.has_tex3D;
|
||||||
|
@ -249,7 +249,7 @@ void VKFragmentDecompilerThread::insertGlobalFunctions(std::stringstream &OS)
|
|||||||
m_shader_props.low_precision_tests = device_props.has_low_precision_rounding && !(m_prog.ctrl & RSX_SHADER_CONTROL_ATTRIBUTE_INTERPOLATION);
|
m_shader_props.low_precision_tests = device_props.has_low_precision_rounding && !(m_prog.ctrl & RSX_SHADER_CONTROL_ATTRIBUTE_INTERPOLATION);
|
||||||
m_shader_props.disable_early_discard = vk::get_driver_vendor() != vk::driver_vendor::NVIDIA;
|
m_shader_props.disable_early_discard = vk::get_driver_vendor() != vk::driver_vendor::NVIDIA;
|
||||||
m_shader_props.supports_native_fp16 = device_props.has_native_half_support;
|
m_shader_props.supports_native_fp16 = device_props.has_native_half_support;
|
||||||
m_shader_props.ROP_output_rounding = vk::get_driver_vendor() == vk::driver_vendor::NVIDIA;
|
m_shader_props.ROP_output_rounding = g_cfg.video.shader_precision != gpu_preset_level::low;
|
||||||
m_shader_props.require_tex1D_ops = properties.has_tex1D;
|
m_shader_props.require_tex1D_ops = properties.has_tex1D;
|
||||||
m_shader_props.require_tex2D_ops = properties.has_tex2D;
|
m_shader_props.require_tex2D_ops = properties.has_tex2D;
|
||||||
m_shader_props.require_tex3D_ops = properties.has_tex3D;
|
m_shader_props.require_tex3D_ops = properties.has_tex3D;
|
||||||
|
Loading…
Reference in New Issue
Block a user