diff --git a/.pick_status.json b/.pick_status.json index 78bae89cad8..632e9d44c52 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -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 }, diff --git a/src/freedreno/fdl/fd6_layout.c b/src/freedreno/fdl/fd6_layout.c index dd09a3c6d54..41fb9e4df8e 100644 --- a/src/freedreno/fdl/fd6_layout.c +++ b/src/freedreno/fdl/fd6_layout.c @@ -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;