mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
v3d_tlb_blit_fast includes the blit onto a pending job that writes to the source resource. The TLB data is already unpacked according to the job's RT format, so storing it with a different RT format performs a channel reinterpretation rather than a raw byte copy, corrupting the data. So when copying from RGB10_A2UI to RG16UI with glCopyImageSubData, the copy_image path remaps both formats to R16G16_UNORM for a raw 32-bit copy. The fast TLB blit found the pending clear job (RGB10_A2UI, 4 channels: 10-10-10-2) and stored its TLB data as RG16UI (2 channels: 16-16), writing the unpacked 10-bit R and G channel values into 16-bit fields instead of preserving the raw packed bits. Previous internal_type/bpp check was insufficient: both RGB10_A2UI and RG16UI share internal_type=16UI and the source bpp (64) exceeds the destination bpp (32), but their channel layouts are different. Add a check that the job's source surface RT format matches the blit destination RT format before allowing the fast path. Fixes: |
||
|---|---|---|
| .. | ||
| ci | ||
| cle | ||
| clif | ||
| common | ||
| compiler | ||
| drm-shim | ||
| ds | ||
| perfcntrs | ||
| qpu | ||
| simulator | ||
| vulkan | ||
| .editorconfig | ||
| meson.build | ||