diff options
| author | 2018-08-20 22:15:18 -0400 | |
|---|---|---|
| committer | 2018-08-20 22:15:18 -0400 | |
| commit | e33452f7e8c80c8eb6e4704af6b53f7fb7aa596d (patch) | |
| tree | d679cafd3f06525d2f0995d8fb8dedcd0d0234c1 /src/video_core/renderer_opengl | |
| parent | Merge pull request #1106 from Subv/multiple_rendertargets (diff) | |
| parent | shader_bytecode: Replace some UNIMPLEMENTED logs. (diff) | |
| download | yuzu-e33452f7e8c80c8eb6e4704af6b53f7fb7aa596d.tar.gz yuzu-e33452f7e8c80c8eb6e4704af6b53f7fb7aa596d.tar.xz yuzu-e33452f7e8c80c8eb6e4704af6b53f7fb7aa596d.zip | |
Merge pull request #1131 from bunnei/impl-tex3d-texcube
gl_shader_decompiler: Implement TextureCube/Texture3D for TEX/TEXS.
Diffstat (limited to 'src/video_core/renderer_opengl')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 214a5fa9a..6fb663bbc 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -1568,6 +1568,14 @@ private: | |||
| 1568 | coord = "vec3 coords = vec3(" + x + ", " + y + ", " + z + ");"; | 1568 | coord = "vec3 coords = vec3(" + x + ", " + y + ", " + z + ");"; |
| 1569 | break; | 1569 | break; |
| 1570 | } | 1570 | } |
| 1571 | case Tegra::Shader::TextureType::TextureCube: { | ||
| 1572 | std::string x = regs.GetRegisterAsFloat(instr.gpr8); | ||
| 1573 | std::string y = regs.GetRegisterAsFloat(instr.gpr8.Value() + 1); | ||
| 1574 | std::string z = regs.GetRegisterAsFloat(instr.gpr8.Value() + 2); | ||
| 1575 | ASSERT(instr.gpr20.Value() == Register::ZeroIndex); | ||
| 1576 | coord = "vec3 coords = vec3(" + x + ", " + y + ", " + z + ");"; | ||
| 1577 | break; | ||
| 1578 | } | ||
| 1571 | default: | 1579 | default: |
| 1572 | LOG_CRITICAL(HW_GPU, "Unhandled texture type {}", | 1580 | LOG_CRITICAL(HW_GPU, "Unhandled texture type {}", |
| 1573 | static_cast<u32>(instr.tex.texture_type.Value())); | 1581 | static_cast<u32>(instr.tex.texture_type.Value())); |
| @@ -1613,6 +1621,13 @@ private: | |||
| 1613 | } | 1621 | } |
| 1614 | break; | 1622 | break; |
| 1615 | } | 1623 | } |
| 1624 | case Tegra::Shader::TextureType::Texture3D: { | ||
| 1625 | std::string x = regs.GetRegisterAsFloat(instr.gpr8); | ||
| 1626 | std::string y = regs.GetRegisterAsFloat(instr.gpr20); | ||
| 1627 | std::string z = regs.GetRegisterAsFloat(instr.gpr20.Value() + 1); | ||
| 1628 | coord = "vec3 coords = vec3(" + x + ", " + y + ", " + z + ");"; | ||
| 1629 | break; | ||
| 1630 | } | ||
| 1616 | case Tegra::Shader::TextureType::TextureCube: { | 1631 | case Tegra::Shader::TextureType::TextureCube: { |
| 1617 | std::string x = regs.GetRegisterAsFloat(instr.gpr8); | 1632 | std::string x = regs.GetRegisterAsFloat(instr.gpr8); |
| 1618 | std::string y = regs.GetRegisterAsFloat(instr.gpr8.Value() + 1); | 1633 | std::string y = regs.GetRegisterAsFloat(instr.gpr8.Value() + 1); |