diff options
| author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-07-16 14:58:35 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-07-16 14:58:35 -0400 |
| commit | b56e7f870add41d0300745342d24315e8fa3f881 (patch) | |
| tree | 13f920af2c14ab8ae89bb3d9751c885c60789c03 /src/video_core/shader/decode/texture.cpp | |
| parent | 1bdb59fc6e52ac9d2c2432511fe7524994cc4f55 (diff) | |
| parent | afa8096df5e3c24cb3b639a7fbc65f7225a17137 (diff) | |
Merge pull request #2565 from ReinUsesLisp/track-indirect
shader/track: Track indirect buffers
Diffstat (limited to 'src/video_core/shader/decode/texture.cpp')
| -rw-r--r-- | src/video_core/shader/decode/texture.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/video_core/shader/decode/texture.cpp b/src/video_core/shader/decode/texture.cpp index 323be3f14..e1ee5c190 100644 --- a/src/video_core/shader/decode/texture.cpp +++ b/src/video_core/shader/decode/texture.cpp @@ -308,13 +308,9 @@ const Sampler& ShaderIR::GetSampler(const Tegra::Shader::Sampler& sampler, Textu const Sampler& ShaderIR::GetBindlessSampler(const Tegra::Shader::Register& reg, TextureType type, bool is_array, bool is_shadow) { const Node sampler_register = GetRegister(reg); - const Node base_sampler = + const auto [base_sampler, cbuf_index, cbuf_offset] = TrackCbuf(sampler_register, global_code, static_cast<s64>(global_code.size())); - const auto cbuf = std::get_if<CbufNode>(&*base_sampler); - const auto cbuf_offset_imm = std::get_if<ImmediateNode>(&*cbuf->GetOffset()); - ASSERT(cbuf_offset_imm != nullptr); - const auto cbuf_offset = cbuf_offset_imm->GetValue(); - const auto cbuf_index = cbuf->GetIndex(); + ASSERT(base_sampler != nullptr); const auto cbuf_key = (static_cast<u64>(cbuf_index) << 32) | static_cast<u64>(cbuf_offset); // If this sampler has already been used, return the existing mapping. |
