mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
ac/surface/gfx6: don't overallocate mipmapped HTILE
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
473af0b541
commit
8c1c451a90
1 changed files with 11 additions and 2 deletions
|
|
@ -934,8 +934,17 @@ static int gfx6_compute_surface(ADDR_HANDLE addrlib,
|
|||
/* Make sure HTILE covers the whole miptree, because the shader reads
|
||||
* TC-compatible HTILE even for levels where it's disabled by DB.
|
||||
*/
|
||||
if (surf->htile_size && config->info.levels > 1)
|
||||
surf->htile_size *= 2;
|
||||
if (surf->htile_size && config->info.levels > 1 &&
|
||||
surf->flags & RADEON_SURF_TC_COMPATIBLE_HTILE) {
|
||||
/* MSAA can't occur with levels > 1, so ignore the sample count. */
|
||||
const unsigned total_pixels = surf->surf_size / surf->bpe;
|
||||
const unsigned htile_block_size = 8 * 8;
|
||||
const unsigned htile_element_size = 4;
|
||||
|
||||
surf->htile_size = (total_pixels / htile_block_size) *
|
||||
htile_element_size;
|
||||
surf->htile_size = align(surf->htile_size, surf->htile_alignment);
|
||||
}
|
||||
|
||||
surf->is_linear = surf->u.legacy.level[0].mode == RADEON_SURF_MODE_LINEAR_ALIGNED;
|
||||
surf->is_displayable = surf->is_linear ||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue