summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/decode
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-04-17 03:12:33 +0200
committerGitHub <noreply@github.com>2020-04-17 03:12:33 +0200
commit79c1269f0fd25e8aaf090cd1f4640a52237a3fd3 (patch)
treecef3d04b0e14887bbcb6b021d42e2420ae1588a4 /src/video_core/shader/decode
parentMerge pull request #3600 from ReinUsesLisp/no-pointer-buf-cache (diff)
parentCMakeLists: Specify -Wextra on linux builds (diff)
downloadyuzu-79c1269f0fd25e8aaf090cd1f4640a52237a3fd3.tar
yuzu-79c1269f0fd25e8aaf090cd1f4640a52237a3fd3.tar.gz
yuzu-79c1269f0fd25e8aaf090cd1f4640a52237a3fd3.tar.bz2
yuzu-79c1269f0fd25e8aaf090cd1f4640a52237a3fd3.tar.lz
yuzu-79c1269f0fd25e8aaf090cd1f4640a52237a3fd3.tar.xz
yuzu-79c1269f0fd25e8aaf090cd1f4640a52237a3fd3.tar.zst
yuzu-79c1269f0fd25e8aaf090cd1f4640a52237a3fd3.zip
Diffstat (limited to 'src/video_core/shader/decode')
-rw-r--r--src/video_core/shader/decode/image.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/video_core/shader/decode/image.cpp b/src/video_core/shader/decode/image.cpp
index 0dd7a1196..85ee9aa5e 100644
--- a/src/video_core/shader/decode/image.cpp
+++ b/src/video_core/shader/decode/image.cpp
@@ -352,8 +352,10 @@ u32 ShaderIR::DecodeImage(NodeBlock& bb, u32 pc) {
registry.ObtainBoundSampler(static_cast<u32>(instr.image.index.Value()));
} else {
const Node image_register = GetRegister(instr.gpr39);
- const auto [base_image, buffer, offset] = TrackCbuf(
- image_register, global_code, static_cast<s64>(global_code.size()));
+ const auto result = TrackCbuf(image_register, global_code,
+ static_cast<s64>(global_code.size()));
+ const auto buffer = std::get<1>(result);
+ const auto offset = std::get<2>(result);
descriptor = registry.ObtainBindlessSampler(buffer, offset);
}
if (!descriptor) {
@@ -497,9 +499,12 @@ Image& ShaderIR::GetImage(Tegra::Shader::Image image, Tegra::Shader::ImageType t
Image& ShaderIR::GetBindlessImage(Tegra::Shader::Register reg, Tegra::Shader::ImageType type) {
const Node image_register = GetRegister(reg);
- const auto [base_image, buffer, offset] =
+ const auto result =
TrackCbuf(image_register, global_code, static_cast<s64>(global_code.size()));
+ const auto buffer = std::get<1>(result);
+ const auto offset = std::get<2>(result);
+
const auto it =
std::find_if(std::begin(used_images), std::end(used_images),
[buffer = buffer, offset = offset](const Image& entry) {