diff options
| author | 2020-06-04 15:18:51 -0400 | |
|---|---|---|
| committer | 2020-06-04 15:18:51 -0400 | |
| commit | 22369df357fc4e9fdc21bd4096128b84aebc41a2 (patch) | |
| tree | a3a6de5d6639fa0540b352aa95ecb38aa3fdcf02 /src | |
| parent | Merge pull request #4044 from ogniK5377/handle-not-signalled-err (diff) | |
| parent | gl_shader_decompiler: Declare gl_Layer and gl_ViewportIndex within gl_PerVert... (diff) | |
| download | yuzu-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.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: | |||
| 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() { |