aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorriperiperi <rhy3756547@hotmail.com>2023-04-16 18:57:01 +0100
committerGitHub <noreply@github.com>2023-04-16 14:57:01 -0300
commit138d5dc64adf8e19a2d5b3d5bc6de3ee2099388c (patch)
tree3adef607e61507217f22dd32a7fdf1ad546990fa
parent3e68a87d63707e53c4b439a80c4c54538de02e4b (diff)
Vulkan: HashTableSlim lookup optimization (#4688)1.1.719
-rw-r--r--Ryujinx.Graphics.Vulkan/HashTableSlim.cs5
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;