mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-12 07:28:18 +02:00
Adjust eligibility check on imageExtent vs slice dimensions rather than on the buffer addressing dimensions. The TFU codepath here always writes/reads the full slice from its origin, so the required invariant is 'imageExtent == slice'; bufferRowLength and bufferImageHeight may be larger than imageExtent (the spec permits this for non-zero values), in which case the TFU reads/writes at the buffer's row/layer stride but only touches slice->width pixels per row and slice->height rows per layer, leaving the trailing padding untouched. The previous combined check (width == slice->width && height == slice->height applied to the buffer dimensions) would reject any caller that set bufferRowLength or bufferImageHeight larger than the image (this is common for buffers shared across mip levels or for alignment requirements like Dawn aligning bufferRowLength to 2 for 1-pixel-wide textures), forcing those copies through the slower TLB / blit / compute paths. For compressed formats, keep the strict equality check since block-level stride semantics are more complex. Assisted-by: Claude Opus 4.7 Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41725> |
||
|---|---|---|
| .. | ||
| ci | ||
| cle | ||
| clif | ||
| common | ||
| compiler | ||
| drm-shim | ||
| ds | ||
| perfcntrs | ||
| qpu | ||
| simulator | ||
| vulkan | ||
| .editorconfig | ||
| meson.build | ||