summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video_core/engines/shader_bytecode.h2
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp7
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 c7e3fb4b1..42147588c 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 e3217db81..724512000 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.