summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-08-21 04:15:18 +0200
committerGitHub <noreply@github.com>2018-08-21 04:15:18 +0200
commite33452f7e8c80c8eb6e4704af6b53f7fb7aa596d (patch)
treed679cafd3f06525d2f0995d8fb8dedcd0d0234c1 /src/video_core/renderer_opengl
parentMerge pull request #1106 from Subv/multiple_rendertargets (diff)
parentshader_bytecode: Replace some UNIMPLEMENTED logs. (diff)
downloadyuzu-e33452f7e8c80c8eb6e4704af6b53f7fb7aa596d.tar
yuzu-e33452f7e8c80c8eb6e4704af6b53f7fb7aa596d.tar.gz
yuzu-e33452f7e8c80c8eb6e4704af6b53f7fb7aa596d.tar.bz2
yuzu-e33452f7e8c80c8eb6e4704af6b53f7fb7aa596d.tar.lz
yuzu-e33452f7e8c80c8eb6e4704af6b53f7fb7aa596d.tar.xz
yuzu-e33452f7e8c80c8eb6e4704af6b53f7fb7aa596d.tar.zst
yuzu-e33452f7e8c80c8eb6e4704af6b53f7fb7aa596d.zip
Diffstat (limited to 'src/video_core/renderer_opengl')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp15
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:
coord = "vec3 coords = vec3(" + x + ", " + y + ", " + z + ");";
break;
}
+ case Tegra::Shader::TextureType::TextureCube: {
+ std::string x = regs.GetRegisterAsFloat(instr.gpr8);
+ std::string y = regs.GetRegisterAsFloat(instr.gpr8.Value() + 1);
+ std::string z = regs.GetRegisterAsFloat(instr.gpr8.Value() + 2);
+ ASSERT(instr.gpr20.Value() == Register::ZeroIndex);
+ coord = "vec3 coords = vec3(" + x + ", " + y + ", " + z + ");";
+ break;
+ }
default:
LOG_CRITICAL(HW_GPU, "Unhandled texture type {}",
static_cast<u32>(instr.tex.texture_type.Value()));
@@ -1613,6 +1621,13 @@ private:
}
break;
}
+ case Tegra::Shader::TextureType::Texture3D: {
+ std::string x = regs.GetRegisterAsFloat(instr.gpr8);
+ std::string y = regs.GetRegisterAsFloat(instr.gpr20);
+ std::string z = regs.GetRegisterAsFloat(instr.gpr20.Value() + 1);
+ coord = "vec3 coords = vec3(" + x + ", " + y + ", " + z + ");";
+ break;
+ }
case Tegra::Shader::TextureType::TextureCube: {
std::string x = regs.GetRegisterAsFloat(instr.gpr8);
std::string y = regs.GetRegisterAsFloat(instr.gpr8.Value() + 1);