[Mesa-dev] [PATCH] radeonsi: don't ignore pitch for imported textures
Dieter Nützel
Dieter at nuetzel-hh.de
Fri Jan 19 03:34:06 UTC 2018
Ping!
Am 11.01.2018 04:45, schrieb Dieter Nützel:
> Tested-by: Dieter Nützel <Dieter at nuetzel-hh.de>
>
> on RX580 with UH, UV, glmark2 and Blender 2.79 with and without nir.
>
> Dieter
>
> Am 10.01.2018 20:49, schrieb Marek Olšák:
>> From: Marek Olšák <marek.olsak at amd.com>
>>
>> Cc: 17.2 17.3 <mesa-stable at lists.freedesktop.org>
>> ---
>> src/gallium/drivers/radeon/r600_texture.c | 14 ++++++++++++--
>> 1 file changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/gallium/drivers/radeon/r600_texture.c
>> b/src/gallium/drivers/radeon/r600_texture.c
>> index 34b3ab0..36eff40 100644
>> --- a/src/gallium/drivers/radeon/r600_texture.c
>> +++ b/src/gallium/drivers/radeon/r600_texture.c
>> @@ -291,25 +291,35 @@ static int r600_init_surface(struct si_screen
>> *sscreen,
>> flags |= RADEON_SURF_IMPORTED | RADEON_SURF_SHAREABLE;
>> if (!(ptex->flags & R600_RESOURCE_FLAG_FORCE_TILING))
>> flags |= RADEON_SURF_OPTIMIZE_FOR_SPACE;
>>
>> r = sscreen->ws->surface_init(sscreen->ws, ptex, flags, bpe,
>> array_mode, surface);
>> if (r) {
>> return r;
>> }
>>
>> + unsigned pitch = pitch_in_bytes_override / bpe;
>> +
>> if (sscreen->info.chip_class >= GFX9) {
>> - assert(!pitch_in_bytes_override ||
>> - pitch_in_bytes_override == surface->u.gfx9.surf_pitch *
>> bpe);
>> + if (pitch) {
>> + surface->u.gfx9.surf_pitch = pitch;
>> + surface->u.gfx9.surf_slice_size =
>> + (uint64_t)pitch * surface->u.gfx9.surf_height * bpe;
>> + }
>> surface->u.gfx9.surf_offset = offset;
>> } else {
>> + if (pitch) {
>> + surface->u.legacy.level[0].nblk_x = pitch;
>> + surface->u.legacy.level[0].slice_size_dw =
>> + ((uint64_t)pitch * surface->u.legacy.level[0].nblk_y * bpe) / 4;
>> + }
>> if (offset) {
>> for (i = 0; i < ARRAY_SIZE(surface->u.legacy.level); ++i)
>> surface->u.legacy.level[i].offset += offset;
>> }
>> }
>> return 0;
>> }
>>
>> static void r600_texture_init_metadata(struct si_screen *sscreen,
>> struct r600_texture *rtex,
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list