Mesa (staging/22.1): zink: fix surface/bufferview cache comparisons
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed May 18 02:46:09 UTC 2022
Module: Mesa
Branch: staging/22.1
Commit: d3642a5dc68e8d3432ab0ce7c8b0829e18b1b99f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d3642a5dc68e8d3432ab0ce7c8b0829e18b1b99f
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Wed Apr 20 15:07:03 2022 -0400
zink: fix surface/bufferview cache comparisons
these caches ignore pNext from the create info since the pNext cannot
affect the eventual object that is created, so comparing it will break
the hash table
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16563>
---
src/gallium/drivers/zink/zink_resource.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c
index fef79c56cf5..98ba880020b 100644
--- a/src/gallium/drivers/zink/zink_resource.c
+++ b/src/gallium/drivers/zink/zink_resource.c
@@ -69,13 +69,19 @@
static bool
equals_ivci(const void *a, const void *b)
{
- return memcmp(a, b, sizeof(VkImageViewCreateInfo)) == 0;
+ const uint8_t *pa = a;
+ const uint8_t *pb = b;
+ size_t offset = offsetof(VkImageViewCreateInfo, flags);
+ return memcmp(pa + offset, pb + offset, sizeof(VkImageViewCreateInfo) - offset) == 0;
}
static bool
equals_bvci(const void *a, const void *b)
{
- return memcmp(a, b, sizeof(VkBufferViewCreateInfo)) == 0;
+ const uint8_t *pa = a;
+ const uint8_t *pb = b;
+ size_t offset = offsetof(VkBufferViewCreateInfo, flags);
+ return memcmp(pa + offset, pb + offset, sizeof(VkBufferViewCreateInfo) - offset) == 0;
}
static void
More information about the mesa-commit
mailing list