mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 06:40:08 +01:00
radeonsi/gfx9: handle pitch and offset overrides for texture_from_handle
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
de55e57e29
commit
7d88233f84
1 changed files with 18 additions and 11 deletions
|
|
@ -266,18 +266,25 @@ static int r600_init_surface(struct r600_common_screen *rscreen,
|
|||
return r;
|
||||
}
|
||||
|
||||
if (pitch_in_bytes_override &&
|
||||
pitch_in_bytes_override != surface->u.legacy.level[0].nblk_x * bpe) {
|
||||
/* old ddx on evergreen over estimate alignment for 1d, only 1 level
|
||||
* for those
|
||||
*/
|
||||
surface->u.legacy.level[0].nblk_x = pitch_in_bytes_override / bpe;
|
||||
surface->u.legacy.level[0].slice_size = pitch_in_bytes_override * surface->u.legacy.level[0].nblk_y;
|
||||
}
|
||||
if (rscreen->chip_class >= GFX9) {
|
||||
assert(!pitch_in_bytes_override ||
|
||||
pitch_in_bytes_override == surface->u.gfx9.surf_pitch * bpe);
|
||||
surface->u.gfx9.surf_offset = offset;
|
||||
} else {
|
||||
if (pitch_in_bytes_override &&
|
||||
pitch_in_bytes_override != surface->u.legacy.level[0].nblk_x * bpe) {
|
||||
/* old ddx on evergreen over estimate alignment for 1d, only 1 level
|
||||
* for those
|
||||
*/
|
||||
surface->u.legacy.level[0].nblk_x = pitch_in_bytes_override / bpe;
|
||||
surface->u.legacy.level[0].slice_size = pitch_in_bytes_override *
|
||||
surface->u.legacy.level[0].nblk_y;
|
||||
}
|
||||
|
||||
if (offset) {
|
||||
for (i = 0; i < ARRAY_SIZE(surface->u.legacy.level); ++i)
|
||||
surface->u.legacy.level[i].offset += offset;
|
||||
if (offset) {
|
||||
for (i = 0; i < ARRAY_SIZE(surface->u.legacy.level); ++i)
|
||||
surface->u.legacy.level[i].offset += offset;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue