diff options
| author | 2018-08-19 13:21:14 -0400 | |
|---|---|---|
| committer | 2018-08-19 13:21:14 -0400 | |
| commit | 9baf5de90cb47bdf767ff9302d586ac54e9f525d (patch) | |
| tree | b6042566a3163c5fb1ebaab711917f3441a1df64 /src | |
| parent | Merge pull request #1103 from Subv/lop_pred (diff) | |
| parent | Shaders: Implemented the gl_FrontFacing input attribute (attr 63). (diff) | |
| download | yuzu-9baf5de90cb47bdf767ff9302d586ac54e9f525d.tar.gz yuzu-9baf5de90cb47bdf767ff9302d586ac54e9f525d.tar.xz yuzu-9baf5de90cb47bdf767ff9302d586ac54e9f525d.zip | |
Merge pull request #1108 from Subv/front_facing
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/engines/shader_bytecode.h | 3 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h index 6cfb9c5f8..059dc2e5d 100644 --- a/src/video_core/engines/shader_bytecode.h +++ b/src/video_core/engines/shader_bytecode.h | |||
| @@ -79,6 +79,9 @@ union Attribute { | |||
| 79 | // shader, and a tuple of (TessCoord.x, TessCoord.y, TessCoord.z, ~) when inside a Tess Eval | 79 | // shader, and a tuple of (TessCoord.x, TessCoord.y, TessCoord.z, ~) when inside a Tess Eval |
| 80 | // shader. | 80 | // shader. |
| 81 | TessCoordInstanceIDVertexID = 47, | 81 | TessCoordInstanceIDVertexID = 47, |
| 82 | // This attribute contains a tuple of (Unk, Unk, Unk, gl_FrontFacing) when inside a fragment | ||
| 83 | // shader. It is unknown what the other values contain. | ||
| 84 | FrontFacing = 63, | ||
| 82 | }; | 85 | }; |
| 83 | 86 | ||
| 84 | union { | 87 | union { |
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 77974b9d2..4007ecc02 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -542,6 +542,10 @@ private: | |||
| 542 | // shader. | 542 | // shader. |
| 543 | ASSERT(stage == Maxwell3D::Regs::ShaderStage::Vertex); | 543 | ASSERT(stage == Maxwell3D::Regs::ShaderStage::Vertex); |
| 544 | return "vec4(0, 0, uintBitsToFloat(instance_id.x), uintBitsToFloat(gl_VertexID))"; | 544 | return "vec4(0, 0, uintBitsToFloat(instance_id.x), uintBitsToFloat(gl_VertexID))"; |
| 545 | case Attribute::Index::FrontFacing: | ||
| 546 | // TODO(Subv): Find out what the values are for the other elements. | ||
| 547 | ASSERT(stage == Maxwell3D::Regs::ShaderStage::Fragment); | ||
| 548 | return "vec4(0, 0, 0, uintBitsToFloat(gl_FrontFacing ? 1 : 0))"; | ||
| 545 | default: | 549 | default: |
| 546 | const u32 index{static_cast<u32>(attribute) - | 550 | const u32 index{static_cast<u32>(attribute) - |
| 547 | static_cast<u32>(Attribute::Index::Attribute_0)}; | 551 | static_cast<u32>(Attribute::Index::Attribute_0)}; |