zink: slightly rework memoryTypeIndex selection to pre-determine heap

should be no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22479>
This commit is contained in:
Mike Blumenkrantz 2023-04-13 13:50:12 -04:00 committed by Marge Bot
parent 085c9efbf3
commit 561b64cf55

View file

@ -1066,8 +1066,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:
@ -1079,9 +1078,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: