summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-01-21 23:08:08 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-01-21 23:08:08 +0100
commit3ce28342a29610da7652247e2ec5b6b9176e5e4f (patch)
treed9cc0a37c226077426181f087790a8431e9b344c
parentMerge pull request #3330 from ReinUsesLisp/vk-blit-screen (diff)
downloadyuzu-3ce28342a29610da7652247e2ec5b6b9176e5e4f.tar
yuzu-3ce28342a29610da7652247e2ec5b6b9176e5e4f.tar.gz
yuzu-3ce28342a29610da7652247e2ec5b6b9176e5e4f.tar.bz2
yuzu-3ce28342a29610da7652247e2ec5b6b9176e5e4f.tar.lz
yuzu-3ce28342a29610da7652247e2ec5b6b9176e5e4f.tar.xz
yuzu-3ce28342a29610da7652247e2ec5b6b9176e5e4f.tar.zst
yuzu-3ce28342a29610da7652247e2ec5b6b9176e5e4f.zip
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index a4acb3796..3c5bdd377 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -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_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) {
const auto [glsl_topology, max_vertices] = GetPrimitiveDescription(variant.primitive_mode);