nvk/upload_queue: fix the _fill method

When calculating the height for multi line uploads we should ensure that
we do not exceed max_dim rather than using at least max_dim.

The assert is also changed to ensure that we do not upload more than the
source size.

Fixes: 22e44d54fd
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29784>
This commit is contained in:
Thomas H.P. Andersen
2024-06-19 13:32:09 +02:00
committed by Marge Bot
parent a0c09eef93
commit 7c3bd27d3b

View File

@@ -376,12 +376,12 @@ nvk_upload_queue_fill_locked(struct nvk_device *dev,
uint32_t width_B, height;
if (size > max_dim) {
width_B = max_dim;
height = MAX2(max_dim, size / width_B);
height = MIN2(max_dim, size / width_B);
} else {
width_B = size;
height = 1;
}
assert(size <= width_B * height);
assert(width_B * height <= size);
struct nv_push p;
nv_push_init(&p, queue->bo->map + queue->bo_push_end, cmd_size_dw);