From 9c00c2d9ff40011d26eefb702adebda66b2fbb70 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 31 Jan 2023 16:46:51 -0500 Subject: [PATCH] zink: fix zink_mem_type_idx_from_bits() at some point this used to work, but it no longer does what it's supposed to do, which is return a memtype from a heap+flags Fixes: d702a503ad5 ("zink: support multiple heaps per memory type") Part-of: (cherry picked from commit d23b3a13943576bbb8dd0fea12ac717c40b376e1) --- .pick_status.json | 2 +- src/gallium/drivers/zink/zink_bo.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index ee56d6a052f..3082ddbddbf 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -184,7 +184,7 @@ "description": "zink: fix zink_mem_type_idx_from_bits()", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "d702a503ad5cc8ca8fddb304a9343490beaf592d" }, diff --git a/src/gallium/drivers/zink/zink_bo.h b/src/gallium/drivers/zink/zink_bo.h index 42e5ec22563..46770427f77 100644 --- a/src/gallium/drivers/zink/zink_bo.h +++ b/src/gallium/drivers/zink/zink_bo.h @@ -96,7 +96,7 @@ static inline unsigned zink_mem_type_idx_from_bits(struct zink_screen *screen, enum zink_heap heap, uint32_t bits) { for (unsigned i = 0; i < screen->heap_count[heap]; i++) { - if (bits & BITFIELD_BIT(screen->heap_map[heap][i])) { + if (bits & screen->info.mem_props.memoryTypes[screen->heap_map[heap][i]].propertyFlags) { return screen->heap_map[heap][i]; } }