diff --git a/.pick_status.json b/.pick_status.json index 537ff43fdb8..ccd81c82ae2 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -139,7 +139,7 @@ "description": "zink: slightly rework memoryTypeIndex selection to pre-determine heap", "nominated": false, "nomination_type": null, - "resolution": 4, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index ca830da37f2..1a7d238370d 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -1061,8 +1061,7 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t alignment = MAX2(alignment, screen->info.props.limits.minMemoryMapAlignment); obj->alignment = alignment; - mai.memoryTypeIndex = zink_mem_type_idx_from_bits(screen, heap, reqs.memoryTypeBits); - if (mai.memoryTypeIndex == UINT32_MAX) { + if (zink_mem_type_idx_from_bits(screen, heap, reqs.memoryTypeBits) == UINT32_MAX) { /* not valid based on reqs; demote to more compatible type */ switch (heap) { case ZINK_HEAP_DEVICE_LOCAL_VISIBLE: @@ -1074,9 +1073,9 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t default: break; } - mai.memoryTypeIndex = zink_mem_type_idx_from_bits(screen, heap, reqs.memoryTypeBits); - assert(mai.memoryTypeIndex != UINT32_MAX); + assert(zink_mem_type_idx_from_bits(screen, heap, reqs.memoryTypeBits) != UINT32_MAX); } + mai.memoryTypeIndex = zink_mem_type_idx_from_bits(screen, heap, reqs.memoryTypeBits); assert(reqs.memoryTypeBits & BITFIELD_BIT(mai.memoryTypeIndex)); retry: