mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-13 09:10:28 +01:00
radeonsi/gfx9: properly handle imported textures with unexpected swizzle mode
Cc: 17.2 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
(cherry picked from commit fdef2f0fd1)
[Emil Velikov: r600_surface_import_metadata is not separate function,
tile_swizzle isn't in branch]
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Conflicts:
src/gallium/drivers/radeon/r600_texture.c
This commit is contained in:
parent
cf2f05ff91
commit
d93e6a0409
2 changed files with 8 additions and 6 deletions
|
|
@ -1009,6 +1009,11 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib,
|
|||
|
||||
case RADEON_SURF_MODE_1D:
|
||||
case RADEON_SURF_MODE_2D:
|
||||
if (surf->flags & RADEON_SURF_IMPORTED) {
|
||||
AddrSurfInfoIn.swizzleMode = surf->u.gfx9.surf.swizzle_mode;
|
||||
break;
|
||||
}
|
||||
|
||||
r = gfx9_get_preferred_swizzle_mode(addrlib, &AddrSurfInfoIn, false,
|
||||
&AddrSurfInfoIn.swizzleMode);
|
||||
if (r)
|
||||
|
|
|
|||
|
|
@ -1467,7 +1467,9 @@ static struct pipe_resource *r600_texture_from_handle(struct pipe_screen *screen
|
|||
array_mode = RADEON_SURF_MODE_LINEAR_ALIGNED;
|
||||
|
||||
is_scanout = metadata.u.gfx9.swizzle_mode == 0 ||
|
||||
metadata.u.gfx9.swizzle_mode % 4 == 2;
|
||||
metadata.u.gfx9.swizzle_mode % 4 == 2;
|
||||
|
||||
surface.u.gfx9.surf.swizzle_mode = metadata.u.gfx9.swizzle_mode;
|
||||
} else {
|
||||
surface.u.legacy.pipe_config = metadata.u.legacy.pipe_config;
|
||||
surface.u.legacy.bankw = metadata.u.legacy.bankw;
|
||||
|
|
@ -1502,11 +1504,6 @@ static struct pipe_resource *r600_texture_from_handle(struct pipe_screen *screen
|
|||
if (rscreen->apply_opaque_metadata)
|
||||
rscreen->apply_opaque_metadata(rscreen, rtex, &metadata);
|
||||
|
||||
/* Validate that addrlib arrived at the same surface parameters. */
|
||||
if (rscreen->chip_class >= GFX9) {
|
||||
assert(metadata.u.gfx9.swizzle_mode == surface.u.gfx9.surf.swizzle_mode);
|
||||
}
|
||||
|
||||
return &rtex->resource.b.b;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue