radeonsi: fix multi plane buffers creation

When using 3 planes, the sequence produces this chain:
  plane0 -> plane2
This commit fixes this to produce:
  plane0 -> plane1 -> plane2

Fixes: 86e60bc265 ("radeonsi: remove si_vid_join_surfaces and use combined planar allocations")
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2193
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Pierre-Eric Pelloux-Prayer 2019-12-09 09:48:37 +01:00
parent ff0f108666
commit e3e91cebcd
1 changed files with 4 additions and 2 deletions

View File

@ -1722,10 +1722,12 @@ struct pipe_resource *si_texture_create(struct pipe_screen *screen,
tex->plane_index = i;
tex->num_planes = num_planes;
if (!last_plane)
if (!plane0) {
plane0 = last_plane = tex;
else
} else {
last_plane->buffer.b.b.next = &tex->buffer.b.b;
last_plane = tex;
}
}
return (struct pipe_resource *)plane0;