Strict weak ordering for SamplingRoutineCache::Key

Implemented operator< with std::tie to force strict weak ordering.

Bug b/141863676

Change-Id: If14328922f0c8c62fd92d74f1bcca0c9a2e77f4c
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/36929
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Vulkan/VkDevice.hpp b/src/Vulkan/VkDevice.hpp
index 83ce1e9..7dac84b 100644
--- a/src/Vulkan/VkDevice.hpp
+++ b/src/Vulkan/VkDevice.hpp
@@ -122,7 +122,7 @@
 
 inline bool vk::Device::SamplingRoutineCache::Key::operator < (const Key& rhs) const
 {
-	return instruction < rhs.instruction || sampler < rhs.sampler || imageView < rhs.imageView;
+	return std::tie(instruction, sampler, imageView) < std::tie(rhs.instruction, rhs.sampler, rhs.imageView);
 }
 
 inline std::size_t vk::Device::SamplingRoutineCache::Key::Hash::operator() (const Key& key) const noexcept