Просмотр исходного кода

gl_shader_decompiler: Fix conditional usage of GL_ARB_shader_viewport_layer_array

ReinUsesLisp 7 лет назад
Родитель
Сommit
aca40de224
1 измененных файлов с 3 добавлено и 2 удалено
  1. 3 2
      src/video_core/renderer_opengl/gl_shader_decompiler.cpp

+ 3 - 2
src/video_core/renderer_opengl/gl_shader_decompiler.cpp

@@ -246,7 +246,7 @@ public:
         }
         entries.clip_distances = ir.GetClipDistances();
         entries.shader_viewport_layer_array =
-            stage == ShaderStage::Vertex && (ir.UsesLayer() || ir.UsesPointSize());
+            stage == ShaderStage::Vertex && (ir.UsesLayer() || ir.UsesViewportIndex());
         entries.shader_length = ir.GetLength();
         return entries;
     }
@@ -302,7 +302,8 @@ private:
             if (ir.UsesViewportIndex()) {
                 code.AddLine("int gl_ViewportIndex;");
             }
-        } else if (stage == ShaderStage::Vertex && !device.HasVertexViewportLayer()) {
+        } else if ((ir.UsesLayer() || ir.UsesViewportIndex()) && stage == ShaderStage::Vertex &&
+                   !device.HasVertexViewportLayer()) {
             LOG_ERROR(
                 Render_OpenGL,
                 "GL_ARB_shader_viewport_layer_array is not available and its required by a shader");