This should prevent horrors like Iris has with the delayed calls
to iris_resource_finish_aux_import just because info is not
available at allocation time.
AFAICT all drivers just copy the template except radeonsi/r600
which reset the next pointer.
AFAICT there is also no other place we get a state tracker setting
next ptrs on a resource.
v2: Updated Gallium docs.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3792>
**flags** bitmask of PIPE_RESOURCE_FLAG flags.
+**next**: Pointer to the next plane for resources that consist of multiple
+memory planes.
+As a corollary, this mean resources for an image with multiple planes have
+to be created starting from the highest plane.
resource_changed
^^^^^^^^^^^^^^^^
resource = &rtex->resource;
resource->b.b = *base;
- resource->b.b.next = NULL;
resource->b.vtbl = &r600_texture_vtbl;
pipe_reference_init(&resource->b.b.reference, 1);
resource->b.b.screen = screen;
resource = &tex->buffer;
resource->b.b = *base;
- resource->b.b.next = NULL;
resource->b.vtbl = &si_texture_vtbl;
pipe_reference_init(&resource->b.b.reference, 1);
resource->b.b.screen = screen;
for (i = (use_lowered ? map->nplanes : num_handles) - 1; i >= 0; i--) {
struct pipe_resource *tex;
+ templ.next = img->texture;
templ.width0 = width >> map->planes[i].width_shift;
templ.height0 = height >> map->planes[i].height_shift;
if (use_lowered)
return NULL;
}
- tex->next = img->texture;
img->texture = tex;
}