radeonsi: Fix offset for linear surfaces on GFX < 9

Fixes: 86262b6eac ("radeonsi,radv: fix usages of surf_pitch")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9949
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10073

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25970>
This commit is contained in:
David Rosca
2023-10-31 10:13:52 +01:00
committed by Marge Bot
parent d2a025ab2b
commit bf364cbdb4

View File

@@ -638,7 +638,9 @@ static bool si_resource_get_param(struct pipe_screen *screen, struct pipe_contex
if (resource->target == PIPE_BUFFER) {
*value = 0;
} else {
uint64_t level_offset = tex->surface.is_linear ? tex->surface.u.gfx9.offset[level] : 0;
uint64_t level_offset = 0;
if (sscreen->info.gfx_level >= GFX9 && tex->surface.is_linear)
level_offset = tex->surface.u.gfx9.offset[level];
*value = ac_surface_get_plane_offset(sscreen->info.gfx_level,
&tex->surface, plane, layer) + level_offset;
}