mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-05 15:08:15 +02:00
Layout refactoring commits broke AFBC packing while removing several fields to simplify the logic. The stride and height are now derived when necessary at packing time based on the resource modifier. The problem is that the code assumes that the source and destination headers are the same although the source and destination modifiers might differ and create size mismatches when passed to the AFBC utilities in pan_afbc.h. The destination modifier is set as the source modifier without the AFBC_FORMAT_MOD_SPARSE and AFBC_FORMAT_MOD_TILED flags. While the AFBC_FORMAT_MOD_SPARSE flag doesn't have any impact on these utilities, the AFBC_FORMAT_MOD_TILED flag does. This commit fixes the issue by keeping the same header block layout (linear or tiled header layout) when packing a resource. This allows to simply parse header blocks linearly without having to bother with the internal layout (Morton order). The tiled packed resource might also benefit from better cache accesses. Fixes: |
||
|---|---|---|
| .. | ||
| amd | ||
| android_stub | ||
| asahi | ||
| broadcom | ||
| c11 | ||
| compiler | ||
| drm-shim | ||
| egl | ||
| etnaviv | ||
| freedreno | ||
| gallium | ||
| gbm | ||
| getopt | ||
| gfxstream | ||
| glx | ||
| gtest | ||
| imagination | ||
| imgui | ||
| intel | ||
| loader | ||
| mapi | ||
| mesa | ||
| microsoft | ||
| nouveau | ||
| panfrost | ||
| tool | ||
| util | ||
| virtio | ||
| vulkan | ||
| x11 | ||
| .clang-format | ||
| meson.build | ||