diff --git a/kraken/KRSamplerManager.h b/kraken/KRSamplerManager.h index 7ba2eb9..5224458 100644 --- a/kraken/KRSamplerManager.h +++ b/kraken/KRSamplerManager.h @@ -54,7 +54,14 @@ struct SamplerInfoHasher // Compute a hash using the most commonly used sampler fields // Collisions are okay, but we need to balance cost of creating // hashes with cost of resolving collisions. - return std::hash{}(static_cast((s.createInfo.flags))); + std::size_t h = std::hash{}(static_cast((s.createInfo.flags))); + h ^= std::hash{}(s.createInfo.maxAnisotropy) << 1; + h ^= std::hash{}(s.createInfo.minLod) << 1; + h ^= std::hash{}(s.createInfo.maxLod) << 1; + h ^= std::hash{}(s.createInfo.maxLod) << 1; + h ^= std::hash{}(static_cast((s.createInfo.minFilter))) << 1; + h ^= std::hash{}(static_cast((s.createInfo.magFilter))) << 1; + return h; } };