aboutsummaryrefslogtreecommitdiffstats
path: root/src/amd/common
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2020-04-17 20:19:26 -0400
committerMarge Bot <[email protected]>2020-04-29 14:53:25 +0000
commit5d785f99b75c92220205862e7d6d4d4a2f503143 (patch)
tree9dbaffd701f321686be8a33d8b7200e7a00bdb45 /src/amd/common
parent3dc2ccc14c0e035368fea6ae3cce8c481f3c4ad2 (diff)
ac/surface: match get_display_flag() with expectations for is_displayable
Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4697>
Diffstat (limited to 'src/amd/common')
-rw-r--r--src/amd/common/ac_surface.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
index 943a9e13708..d455a0f12e3 100644
--- a/src/amd/common/ac_surface.c
+++ b/src/amd/common/ac_surface.c
@@ -413,7 +413,9 @@ static bool get_display_flag(const struct ac_surf_config *config,
unsigned num_channels = config->info.num_channels;
unsigned bpe = surf->bpe;
- if (!(surf->flags & RADEON_SURF_Z_OR_SBUFFER) &&
+ if (!config->is_3d &&
+ !config->is_cube &&
+ !(surf->flags & RADEON_SURF_Z_OR_SBUFFER) &&
surf->flags & RADEON_SURF_SCANOUT &&
config->info.samples <= 1 &&
surf->blk_w <= 2 && surf->blk_h == 1) {
@@ -1612,6 +1614,7 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib,
surf->tc_compatible_htile_allowed = surf->htile_size != 0;
/* Query whether the surface is displayable. */
+ /* This is only useful for surfaces that are allocated without SCANOUT. */
bool displayable = false;
if (!config->is_3d && !config->is_cube) {
r = Addr2IsValidDisplaySwizzleMode(addrlib, surf->u.gfx9.surf.swizzle_mode,
@@ -1628,6 +1631,9 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib,
}
surf->is_displayable = displayable;
+ /* Validate that we allocated a displayable surface if requested. */
+ assert(!AddrSurfInfoIn.flags.display || surf->is_displayable);
+
switch (surf->u.gfx9.surf.swizzle_mode) {
/* S = standard. */
case ADDR_SW_256B_S: