diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/engines/shader_bytecode.h | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 7 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h index 0d33c5a5e..3d4557b7e 100644 --- a/src/video_core/engines/shader_bytecode.h +++ b/src/video_core/engines/shader_bytecode.h | |||
| @@ -78,6 +78,8 @@ union Attribute { | |||
| 78 | // shader, and a tuple of (TessCoord.x, TessCoord.y, TessCoord.z, ~) when inside a Tess Eval | 78 | // shader, and a tuple of (TessCoord.x, TessCoord.y, TessCoord.z, ~) when inside a Tess Eval |
| 79 | // shader. | 79 | // shader. |
| 80 | TessCoordInstanceIDVertexID = 47, | 80 | TessCoordInstanceIDVertexID = 47, |
| 81 | // TODO(bunnei): Figure out what this is used for. Super Mario Odyssey uses this. | ||
| 82 | Unknown_63 = 63, | ||
| 81 | }; | 83 | }; |
| 82 | 84 | ||
| 83 | union { | 85 | union { |
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 1ff71d682..dd240a4ce 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -523,6 +523,11 @@ private: | |||
| 523 | // shader. | 523 | // shader. |
| 524 | ASSERT(stage == Maxwell3D::Regs::ShaderStage::Vertex); | 524 | ASSERT(stage == Maxwell3D::Regs::ShaderStage::Vertex); |
| 525 | return "vec4(0, 0, uintBitsToFloat(gl_InstanceID), uintBitsToFloat(gl_VertexID))"; | 525 | return "vec4(0, 0, uintBitsToFloat(gl_InstanceID), uintBitsToFloat(gl_VertexID))"; |
| 526 | case Attribute::Index::Unknown_63: | ||
| 527 | // TODO(bunnei): Figure out what this is used for. Super Mario Odyssey uses this. | ||
| 528 | LOG_CRITICAL(HW_GPU, "Unhandled input attribute Unknown_63"); | ||
| 529 | UNREACHABLE(); | ||
| 530 | break; | ||
| 526 | default: | 531 | default: |
| 527 | const u32 index{static_cast<u32>(attribute) - | 532 | const u32 index{static_cast<u32>(attribute) - |
| 528 | static_cast<u32>(Attribute::Index::Attribute_0)}; | 533 | static_cast<u32>(Attribute::Index::Attribute_0)}; |
| @@ -534,6 +539,8 @@ private: | |||
| 534 | LOG_CRITICAL(HW_GPU, "Unhandled input attribute: {}", index); | 539 | LOG_CRITICAL(HW_GPU, "Unhandled input attribute: {}", index); |
| 535 | UNREACHABLE(); | 540 | UNREACHABLE(); |
| 536 | } | 541 | } |
| 542 | |||
| 543 | return "vec4(0, 0, 0, 0)"; | ||
| 537 | } | 544 | } |
| 538 | 545 | ||
| 539 | /// Generates code representing an output attribute register. | 546 | /// Generates code representing an output attribute register. |