diff options
author | riperiperi <rhy3756547@hotmail.com> | 2023-04-16 18:57:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-16 14:57:01 -0300 |
commit | 138d5dc64adf8e19a2d5b3d5bc6de3ee2099388c (patch) | |
tree | 3adef607e61507217f22dd32a7fdf1ad546990fa | |
parent | 3e68a87d63707e53c4b439a80c4c54538de02e4b (diff) |
Vulkan: HashTableSlim lookup optimization (#4688)1.1.719
-rw-r--r-- | Ryujinx.Graphics.Vulkan/HashTableSlim.cs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Ryujinx.Graphics.Vulkan/HashTableSlim.cs b/Ryujinx.Graphics.Vulkan/HashTableSlim.cs index 2dde2aeb..e4ad3958 100644 --- a/Ryujinx.Graphics.Vulkan/HashTableSlim.cs +++ b/Ryujinx.Graphics.Vulkan/HashTableSlim.cs @@ -15,6 +15,7 @@ namespace Ryujinx.Graphics.Vulkan private struct Entry { + public int Hash; public K Key; public V Value; } @@ -59,6 +60,7 @@ namespace Ryujinx.Graphics.Vulkan { var entry = new Entry() { + Hash = key.GetHashCode(), Key = key, Value = value }; @@ -91,12 +93,11 @@ namespace Ryujinx.Graphics.Vulkan var bucket = _hashTable[hashCode & TotalBucketsMask]; if (bucket != null) { - for (int i = 0; i < bucket.Length; i++) { ref var entry = ref bucket[i]; - if (entry.Key.Equals(ref key)) + if (entry.Hash == hashCode && entry.Key.Equals(ref key)) { value = entry.Value; return true; |