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:
@@ -1722,10 +1722,12 @@ struct pipe_resource *si_texture_create(struct pipe_screen *screen,
|
|||||||
tex->plane_index = i;
|
tex->plane_index = i;
|
||||||
tex->num_planes = num_planes;
|
tex->num_planes = num_planes;
|
||||||
|
|
||||||
if (!last_plane)
|
if (!plane0) {
|
||||||
plane0 = last_plane = tex;
|
plane0 = last_plane = tex;
|
||||||
else
|
} else {
|
||||||
last_plane->buffer.b.b.next = &tex->buffer.b.b;
|
last_plane->buffer.b.b.next = &tex->buffer.b.b;
|
||||||
|
last_plane = tex;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (struct pipe_resource *)plane0;
|
return (struct pipe_resource *)plane0;
|
||||||
|
Reference in New Issue
Block a user