diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-06-01 00:14:34 +0200 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-07-15 03:36:44 +0200 |
commit | afa8096df5e3c24cb3b639a7fbc65f7225a17137 (patch) | |
tree | 1787485f5b47e86d2c0b2f277cd1085266e5e9b8 /src/video_core/shader/decode/memory.cpp | |
parent | Merge pull request #2675 from ReinUsesLisp/opengl-buffer-cache (diff) | |
download | yuzu-afa8096df5e3c24cb3b639a7fbc65f7225a17137.tar yuzu-afa8096df5e3c24cb3b639a7fbc65f7225a17137.tar.gz yuzu-afa8096df5e3c24cb3b639a7fbc65f7225a17137.tar.bz2 yuzu-afa8096df5e3c24cb3b639a7fbc65f7225a17137.tar.lz yuzu-afa8096df5e3c24cb3b639a7fbc65f7225a17137.tar.xz yuzu-afa8096df5e3c24cb3b639a7fbc65f7225a17137.tar.zst yuzu-afa8096df5e3c24cb3b639a7fbc65f7225a17137.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/shader/decode/memory.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/src/video_core/shader/decode/memory.cpp b/src/video_core/shader/decode/memory.cpp index 80fc0ccfc..ab207a33b 100644 --- a/src/video_core/shader/decode/memory.cpp +++ b/src/video_core/shader/decode/memory.cpp @@ -297,18 +297,13 @@ std::tuple<Node, Node, GlobalMemoryBase> ShaderIR::TrackAndGetGlobalMemory(NodeB const auto addr_register{GetRegister(instr.gmem.gpr)}; const auto immediate_offset{static_cast<u32>(instr.gmem.offset)}; - const Node base_address{ - TrackCbuf(addr_register, global_code, static_cast<s64>(global_code.size()))}; - const auto cbuf = std::get_if<CbufNode>(&*base_address); - ASSERT(cbuf != nullptr); - const auto cbuf_offset_imm = std::get_if<ImmediateNode>(&*cbuf->GetOffset()); - ASSERT(cbuf_offset_imm != nullptr); - const auto cbuf_offset = cbuf_offset_imm->GetValue(); - - bb.push_back( - Comment(fmt::format("Base address is c[0x{:x}][0x{:x}]", cbuf->GetIndex(), cbuf_offset))); - - const GlobalMemoryBase descriptor{cbuf->GetIndex(), cbuf_offset}; + const auto [base_address, index, offset] = + TrackCbuf(addr_register, global_code, static_cast<s64>(global_code.size())); + ASSERT(base_address != nullptr); + + bb.push_back(Comment(fmt::format("Base address is c[0x{:x}][0x{:x}]", index, offset))); + + const GlobalMemoryBase descriptor{index, offset}; const auto& [entry, is_new] = used_global_memory.try_emplace(descriptor); auto& usage = entry->second; if (is_write) { |