Ver Fonte

Merge pull request #4031 from Morph1984/fix-gs-outputs

gl_shader_decompiler: Fix geometry shader outputs on Intel drivers
bunnei há 6 anos atrás
pai
commit
22369df357
1 ficheiros alterados com 13 adições e 1 exclusões
  1. 13 1
      src/video_core/renderer_opengl/gl_shader_decompiler.cpp

+ 13 - 1
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() {