diff options
| author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-07-11 04:24:57 -0300 |
|---|---|---|
| committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-07-11 04:27:00 -0300 |
| commit | faa74c08fbaaf6d1b552dbe4ffc219f4e2f6a1df (patch) | |
| tree | c876b77fde62a8cd3aa86104cb5981e89ece9b25 /src | |
| parent | a650406899af64a8fefd9123dbccacd80801ca59 (diff) | |
gl_shader_decompiler: Fix conditional usage of GL_ARB_shader_viewport_layer_array
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index a4451dd2fb..d0f5793230 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/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"); |
