gl_shader_cache: Disable fastmath on Nvidia

This commit is contained in:
ReinUsesLisp 2020-01-21 19:08:08 -03:00
parent 79e0991d9b
commit 3ce28342a2

View File

@ -260,6 +260,10 @@ CachedProgram BuildShader(const Device& device, u64 unique_identifier, ShaderTyp
"#extension GL_NV_shader_thread_group : require\n" "#extension GL_NV_shader_thread_group : require\n"
"#extension GL_NV_shader_thread_shuffle : require\n"; "#extension GL_NV_shader_thread_shuffle : require\n";
} }
// This pragma stops Nvidia's driver from over optimizing math (probably using fp16 operations)
// on places where we don't want to.
// Thanks to Ryujinx for finding this workaround.
source += "#pragma optionNV(fastmath off)\n";
if (shader_type == ShaderType::Geometry) { if (shader_type == ShaderType::Geometry) {
const auto [glsl_topology, max_vertices] = GetPrimitiveDescription(variant.primitive_mode); const auto [glsl_topology, max_vertices] = GetPrimitiveDescription(variant.primitive_mode);