Browse Source

Merge pull request #2435 from ReinUsesLisp/misc-vc

shader_ir: Miscellaneous fixes
bunnei 7 years ago
parent
commit
91e239d66f
2 changed files with 4 additions and 3 deletions
  1. 1 1
      src/video_core/shader/decode/texture.cpp
  2. 3 2
      src/video_core/shader/shader_ir.h

+ 1 - 1
src/video_core/shader/decode/texture.cpp

@@ -296,7 +296,7 @@ const Sampler& ShaderIR::GetBindlessSampler(const Tegra::Shader::Register& reg,
     ASSERT(cbuf_offset_imm != nullptr);
     ASSERT(cbuf_offset_imm != nullptr);
     const auto cbuf_offset = cbuf_offset_imm->GetValue();
     const auto cbuf_offset = cbuf_offset_imm->GetValue();
     const auto cbuf_index = cbuf->GetIndex();
     const auto cbuf_index = cbuf->GetIndex();
-    const u64 cbuf_key = (cbuf_index << 32) | cbuf_offset;
+    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.
     // If this sampler has already been used, return the existing mapping.
     const auto itr =
     const auto itr =

+ 3 - 2
src/video_core/shader/shader_ir.h

@@ -251,8 +251,9 @@ public:
     }
     }
 
 
     bool operator<(const Sampler& rhs) const {
     bool operator<(const Sampler& rhs) const {
-        return std::tie(offset, index, type, is_array, is_shadow) <
-               std::tie(rhs.offset, rhs.index, rhs.type, rhs.is_array, rhs.is_shadow);
+        return std::tie(index, offset, type, is_array, is_shadow, is_bindless) <
+               std::tie(rhs.index, rhs.offset, rhs.type, rhs.is_array, rhs.is_shadow,
+                        rhs.is_bindless);
     }
     }
 
 
 private:
 private: