diff options
author | bunnei <[email protected]> | 2020-06-04 15:18:51 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2020-06-04 15:18:51 -0400 |
commit | 22369df357fc4e9fdc21bd4096128b84aebc41a2 (patch) | |
tree | a3a6de5d6639fa0540b352aa95ecb38aa3fdcf02 /src | |
parent | 624def4f38f2c4d7e2058f3ff95b459f1570555d (diff) | |
parent | 74f2e5f1a460e8f429cc41032bd680548d3b1f46 (diff) | |
download | yuzu-mainline-22369df357fc4e9fdc21bd4096128b84aebc41a2.tar.gz yuzu-mainline-22369df357fc4e9fdc21bd4096128b84aebc41a2.zip |
Merge pull request #4031 from Morph1984/fix-gs-outputs
gl_shader_decompiler: Fix geometry shader outputs on Intel drivers
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 502b95973..d6e30b321 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp @@ -626,7 +626,9 @@ private: break; } } - if (stage != ShaderType::Vertex || device.HasVertexViewportLayer()) { + + if (stage != ShaderType::Geometry && + (stage != ShaderType::Vertex || device.HasVertexViewportLayer())) { if (ir.UsesLayer()) { code.AddLine("int gl_Layer;"); } @@ -655,6 +657,16 @@ private: --code.scope; code.AddLine("}};"); code.AddNewLine(); + + if (stage == ShaderType::Geometry) { + if (ir.UsesLayer()) { + code.AddLine("out int gl_Layer;"); + } + if (ir.UsesViewportIndex()) { + code.AddLine("out int gl_ViewportIndex;"); + } + } + code.AddNewLine(); } void DeclareRegisters() { |