summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2020-06-04 15:18:51 -0400
committerGravatar GitHub2020-06-04 15:18:51 -0400
commit22369df357fc4e9fdc21bd4096128b84aebc41a2 (patch)
treea3a6de5d6639fa0540b352aa95ecb38aa3fdcf02 /src
parentMerge pull request #4044 from ogniK5377/handle-not-signalled-err (diff)
parentgl_shader_decompiler: Declare gl_Layer and gl_ViewportIndex within gl_PerVert... (diff)
downloadyuzu-22369df357fc4e9fdc21bd4096128b84aebc41a2.tar.gz
yuzu-22369df357fc4e9fdc21bd4096128b84aebc41a2.tar.xz
yuzu-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.cpp14
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:
626 break; 626 break;
627 } 627 }
628 } 628 }
629 if (stage != ShaderType::Vertex || device.HasVertexViewportLayer()) { 629
630 if (stage != ShaderType::Geometry &&
631 (stage != ShaderType::Vertex || device.HasVertexViewportLayer())) {
630 if (ir.UsesLayer()) { 632 if (ir.UsesLayer()) {
631 code.AddLine("int gl_Layer;"); 633 code.AddLine("int gl_Layer;");
632 } 634 }
@@ -655,6 +657,16 @@ private:
655 --code.scope; 657 --code.scope;
656 code.AddLine("}};"); 658 code.AddLine("}};");
657 code.AddNewLine(); 659 code.AddNewLine();
660
661 if (stage == ShaderType::Geometry) {
662 if (ir.UsesLayer()) {
663 code.AddLine("out int gl_Layer;");
664 }
665 if (ir.UsesViewportIndex()) {
666 code.AddLine("out int gl_ViewportIndex;");
667 }
668 }
669 code.AddNewLine();
658 } 670 }
659 671
660 void DeclareRegisters() { 672 void DeclareRegisters() {