summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-08-21 03:49:47 +0200
committerGitHub <noreply@github.com>2018-08-21 03:49:47 +0200
commitea99819f37bd4dffc6f9c0e30689ab05e82bec49 (patch)
treeddc5ebded147c57cfe7776e186569b8f600afaf2
parentMerge pull request #1122 from lioncash/acc (diff)
parentShaders: Fixed the coords in TEX with Texture2D. (diff)
downloadyuzu-ea99819f37bd4dffc6f9c0e30689ab05e82bec49.tar
yuzu-ea99819f37bd4dffc6f9c0e30689ab05e82bec49.tar.gz
yuzu-ea99819f37bd4dffc6f9c0e30689ab05e82bec49.tar.bz2
yuzu-ea99819f37bd4dffc6f9c0e30689ab05e82bec49.tar.lz
yuzu-ea99819f37bd4dffc6f9c0e30689ab05e82bec49.tar.xz
yuzu-ea99819f37bd4dffc6f9c0e30689ab05e82bec49.tar.zst
yuzu-ea99819f37bd4dffc6f9c0e30689ab05e82bec49.zip
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
index ac6ccfec7..b7b3fbc17 100644
--- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
@@ -1514,7 +1514,7 @@ private:
switch (instr.tex.texture_type) {
case Tegra::Shader::TextureType::Texture2D: {
std::string x = regs.GetRegisterAsFloat(instr.gpr8);
- std::string y = regs.GetRegisterAsFloat(instr.gpr20);
+ std::string y = regs.GetRegisterAsFloat(instr.gpr8.Value() + 1);
coord = "vec2 coords = vec2(" + x + ", " + y + ");";
break;
}
@@ -1526,7 +1526,9 @@ private:
break;
}
default:
- UNIMPLEMENTED();
+ LOG_CRITICAL(HW_GPU, "Unhandled texture type {}",
+ static_cast<u32>(instr.tex.texture_type.Value()));
+ UNREACHABLE();
}
const std::string sampler =
@@ -1576,7 +1578,9 @@ private:
break;
}
default:
- UNIMPLEMENTED();
+ LOG_CRITICAL(HW_GPU, "Unhandled texture type {}",
+ static_cast<u32>(instr.texs.GetTextureType()));
+ UNREACHABLE();
}
const std::string sampler = GetSampler(instr.sampler, instr.texs.GetTextureType(),
instr.texs.IsArrayTexture());
@@ -1593,7 +1597,8 @@ private:
switch (instr.tlds.GetTextureType()) {
case Tegra::Shader::TextureType::Texture2D: {
if (instr.tlds.IsArrayTexture()) {
- UNIMPLEMENTED();
+ LOG_CRITICAL(HW_GPU, "Unhandled 2d array texture");
+ UNREACHABLE();
} else {
std::string x = regs.GetRegisterAsInteger(instr.gpr8);
std::string y = regs.GetRegisterAsInteger(instr.gpr20);
@@ -1602,7 +1607,9 @@ private:
break;
}
default:
- UNIMPLEMENTED();
+ LOG_CRITICAL(HW_GPU, "Unhandled texture type {}",
+ static_cast<u32>(instr.tlds.GetTextureType()));
+ UNREACHABLE();
}
const std::string sampler = GetSampler(instr.sampler, instr.tlds.GetTextureType(),
instr.tlds.IsArrayTexture());
@@ -1623,7 +1630,9 @@ private:
break;
}
default:
- UNIMPLEMENTED();
+ LOG_CRITICAL(HW_GPU, "Unhandled texture type {}",
+ static_cast<u32>(instr.tld4.texture_type.Value()));
+ UNREACHABLE();
}
const std::string sampler =