diff options
author | Lioncash <mathew1800@gmail.com> | 2020-04-15 21:59:23 +0200 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2020-04-16 03:33:46 +0200 |
commit | 1c340c6efad903580904297730d708ce8b947eb6 (patch) | |
tree | a79ad11775373ecf31912a7a50fcfbcc08d6e8b3 /src/video_core/shader/shader_ir.cpp | |
parent | Merge pull request #3612 from ReinUsesLisp/red (diff) | |
download | yuzu-1c340c6efad903580904297730d708ce8b947eb6.tar yuzu-1c340c6efad903580904297730d708ce8b947eb6.tar.gz yuzu-1c340c6efad903580904297730d708ce8b947eb6.tar.bz2 yuzu-1c340c6efad903580904297730d708ce8b947eb6.tar.lz yuzu-1c340c6efad903580904297730d708ce8b947eb6.tar.xz yuzu-1c340c6efad903580904297730d708ce8b947eb6.tar.zst yuzu-1c340c6efad903580904297730d708ce8b947eb6.zip |
Diffstat (limited to 'src/video_core/shader/shader_ir.cpp')
-rw-r--r-- | src/video_core/shader/shader_ir.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/video_core/shader/shader_ir.cpp b/src/video_core/shader/shader_ir.cpp index 8852c8a1b..822674926 100644 --- a/src/video_core/shader/shader_ir.cpp +++ b/src/video_core/shader/shader_ir.cpp @@ -56,8 +56,7 @@ Node ShaderIR::GetConstBuffer(u64 index_, u64 offset_) { const auto index = static_cast<u32>(index_); const auto offset = static_cast<u32>(offset_); - const auto [entry, is_new] = used_cbufs.try_emplace(index); - entry->second.MarkAsUsed(offset); + used_cbufs.try_emplace(index).first->second.MarkAsUsed(offset); return MakeNode<CbufNode>(index, Immediate(offset)); } @@ -66,8 +65,7 @@ Node ShaderIR::GetConstBufferIndirect(u64 index_, u64 offset_, Node node) { const auto index = static_cast<u32>(index_); const auto offset = static_cast<u32>(offset_); - const auto [entry, is_new] = used_cbufs.try_emplace(index); - entry->second.MarkAsUsedIndirect(); + used_cbufs.try_emplace(index).first->second.MarkAsUsedIndirect(); Node final_offset = [&] { // Attempt to inline constant buffer without a variable offset. This is done to allow @@ -166,6 +164,7 @@ Node ShaderIR::ConvertIntegerSize(Node value, Register::Size size, bool is_signe std::move(value), Immediate(16)); value = SignedOperation(OperationCode::IArithmeticShiftRight, is_signed, NO_PRECISE, std::move(value), Immediate(16)); + return value; case Register::Size::Word: // Default - do nothing return value; |