broadcom/vc5: Fix regression in the page-cache slice size alignment.

We need to align the size of the slice, not the offset of the next slice.
Fixes KHR-GLES3.texture_repeat_mode.rgba32ui_11x131_2_clamp_to_edge.

Fixes: b4b4ada761 ("broadcom/vc5: Fix layout of 3D textures.")
This commit is contained in:
Eric Anholt 2018-02-23 15:35:25 -08:00
parent a2c1e48f15
commit e4e79a02da
1 changed files with 6 additions and 3 deletions

View File

@ -488,8 +488,7 @@ vc5_setup_slices(struct vc5_resource *rsc)
slice->padded_height = level_height;
slice->size = level_height * slice->stride;
offset += slice->size * level_depth;
uint32_t slice_total_size = slice->size * level_depth;
/* The HW aligns level 1's base to a page if any of level 1 or
* below could be UIF XOR. The lower levels then inherit the
@ -499,8 +498,12 @@ vc5_setup_slices(struct vc5_resource *rsc)
if (i == 1 &&
level_width > 4 * uif_block_w &&
level_height > PAGE_CACHE_MINUS_1_5_UB_ROWS * uif_block_h) {
offset = align(offset, VC5_UIFCFG_PAGE_SIZE);
slice_total_size = align(slice_total_size,
VC5_UIFCFG_PAGE_SIZE);
}
offset += slice_total_size;
}
rsc->size = offset;