gallium/vl: implementation for get_resources()

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23159>
This commit is contained in:
Ganesh Belgur Ramachandra 2023-06-19 14:47:49 -05:00 committed by Marge Bot
parent 815e8cee7d
commit 8e147746c4

View file

@ -218,6 +218,21 @@ vl_video_buffer_destroy(struct pipe_video_buffer *buffer)
FREE(buffer);
}
static void
vl_video_buffer_resources(struct pipe_video_buffer *buffer,
struct pipe_resource **resources)
{
struct vl_video_buffer *buf = (struct vl_video_buffer *)buffer;
unsigned num_planes = util_format_get_num_planes(buffer->buffer_format);
unsigned i;
assert(buf);
for (i = 0; i < num_planes; ++i) {
resources[i] = buf->resources[i];
}
}
static struct pipe_sampler_view **
vl_video_buffer_sampler_view_planes(struct pipe_video_buffer *buffer)
{
@ -453,6 +468,7 @@ vl_video_buffer_create_ex2(struct pipe_context *pipe,
buffer->base = *tmpl;
buffer->base.context = pipe;
buffer->base.destroy = vl_video_buffer_destroy;
buffer->base.get_resources = vl_video_buffer_resources;
buffer->base.get_sampler_view_planes = vl_video_buffer_sampler_view_planes;
buffer->base.get_sampler_view_components = vl_video_buffer_sampler_view_components;
buffer->base.get_surfaces = vl_video_buffer_surfaces;