freedreno/fdl: Increase alignment for UBWC images
From empirical tests (on a660) R8G8 with UBWC enabled requires 256b
alignment, otherwise there would be a GPU fault during blits.
Set alignment to 4096 for all UBWC images since that's what blob does
and this area is heavily undertested.
Fixes GPU fault in Borderlands 3 running through DXVK.
cc: mesa-stable
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19298>
(cherry picked from commit 5eaca461a7
)
This commit is contained in:

committed by
Dylan Baker

parent
ca30a3df24
commit
2a7c308d5d
@@ -1228,7 +1228,7 @@
|
||||
"description": "freedreno/fdl: Increase alignment for UBWC images",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
@@ -83,11 +83,13 @@ fdl6_tile_alignment(struct fdl_layout *layout, uint32_t *heightalign)
|
||||
layout->pitchalign = 2;
|
||||
}
|
||||
|
||||
/* note: this base_align is *probably* not always right,
|
||||
* it doesn't really get tested. for example with UBWC we might
|
||||
* want 4k alignment, since we align UBWC levels to 4k
|
||||
/* Empirical evidence suggests that images with UBWC could have much
|
||||
* looser alignment requirements, however the validity of alignment is
|
||||
* heavily undertested and the "officially" supported alignment is 4096b.
|
||||
*/
|
||||
if (layout->cpp == 1)
|
||||
if (layout->ubwc)
|
||||
layout->base_align = 4096;
|
||||
else if (layout->cpp == 1)
|
||||
layout->base_align = 64;
|
||||
else if (layout->cpp == 2)
|
||||
layout->base_align = 128;
|
||||
|
Reference in New Issue
Block a user