radeonsi: Count planes for imported textures.

For the DRI2 lowered YUV import separate pipe_resources get created
but in the end the first resource just gets asked for NPLANES.

Since

1) (Almost) everything uses the first resource + a plane index in the
  Gallium interface.
2) This mirrors non-imported textures.

lets fix this in the driver.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4779>
This commit is contained in:
Bas Nieuwenhuizen
2020-04-28 00:40:12 +02:00
committed by Marge Bot
parent 6747a984f5
commit 8e03cf15f9
@@ -1659,6 +1659,15 @@ static struct pipe_resource *si_texture_from_winsys_buffer(struct si_screen *ssc
tex->buffer.external_usage = usage;
tex->num_planes = 1;
/* Account for multiple planes with lowered yuv import. */
struct pipe_resource *next_plane = tex->buffer.b.b.next;
while(next_plane) {
struct si_texture *next_tex = (struct si_texture *)next_plane;
++next_tex->num_planes;
++tex->num_planes;
next_plane = next_plane->next;
}
if (!si_read_tex_bo_metadata(sscreen, tex, offset, &metadata)) {
si_texture_reference(&tex, NULL);
return NULL;