mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
nouveau: 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:
parent
8e147746c4
commit
e4389fe0ee
3 changed files with 46 additions and 0 deletions
|
|
@ -637,6 +637,20 @@ vl:
|
|||
return vl_create_decoder(context, templ);
|
||||
}
|
||||
|
||||
static void
|
||||
nouveau_video_buffer_resources(struct pipe_video_buffer *buffer,
|
||||
struct pipe_resource **resources)
|
||||
{
|
||||
struct nouveau_video_buffer *buf = (struct nouveau_video_buffer *)buffer;
|
||||
unsigned i;
|
||||
|
||||
assert(buf);
|
||||
|
||||
for (i = 0; i < buf->num_planes; ++i) {
|
||||
resources[i] = buf->resources[i];
|
||||
}
|
||||
}
|
||||
|
||||
static struct pipe_sampler_view **
|
||||
nouveau_video_buffer_sampler_view_planes(struct pipe_video_buffer *buffer)
|
||||
{
|
||||
|
|
@ -790,6 +804,7 @@ nouveau_video_buffer_create(struct pipe_context *pipe,
|
|||
|
||||
buffer->base.context = pipe;
|
||||
buffer->base.destroy = nouveau_video_buffer_destroy;
|
||||
buffer->base.get_resources = nouveau_video_buffer_resources;
|
||||
buffer->base.get_sampler_view_planes = nouveau_video_buffer_sampler_view_planes;
|
||||
buffer->base.get_sampler_view_components = nouveau_video_buffer_sampler_view_components;
|
||||
buffer->base.get_surfaces = nouveau_video_buffer_surfaces;
|
||||
|
|
|
|||
|
|
@ -36,6 +36,20 @@
|
|||
#include "util/format/u_format.h"
|
||||
#include "util/u_sampler.h"
|
||||
|
||||
static void
|
||||
nouveau_vp3_video_buffer_resources(struct pipe_video_buffer *buffer,
|
||||
struct pipe_resource **resources)
|
||||
{
|
||||
struct nouveau_vp3_video_buffer *buf = (struct nouveau_vp3_video_buffer *)buffer;
|
||||
unsigned i;
|
||||
|
||||
assert(buf);
|
||||
|
||||
for (i = 0; i < buf->num_planes; ++i) {
|
||||
resources[i] = buf->resources[i];
|
||||
}
|
||||
}
|
||||
|
||||
static struct pipe_sampler_view **
|
||||
nouveau_vp3_video_buffer_sampler_view_planes(struct pipe_video_buffer *buffer)
|
||||
{
|
||||
|
|
@ -101,6 +115,7 @@ nouveau_vp3_video_buffer_create(struct pipe_context *pipe,
|
|||
buffer->base.destroy = nouveau_vp3_video_buffer_destroy;
|
||||
buffer->base.width = templat->width;
|
||||
buffer->base.height = templat->height;
|
||||
buffer->base.get_resources = nouveau_vp3_video_buffer_resources;
|
||||
buffer->base.get_sampler_view_planes = nouveau_vp3_video_buffer_sampler_view_planes;
|
||||
buffer->base.get_sampler_view_components = nouveau_vp3_video_buffer_sampler_view_components;
|
||||
buffer->base.get_surfaces = nouveau_vp3_video_buffer_surfaces;
|
||||
|
|
|
|||
|
|
@ -554,6 +554,21 @@ fail:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
nv84_video_buffer_resources(struct pipe_video_buffer *buffer,
|
||||
struct pipe_resource **resources)
|
||||
{
|
||||
struct nv84_video_buffer *buf = (struct nv84_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 **
|
||||
nv84_video_buffer_sampler_view_planes(struct pipe_video_buffer *buffer)
|
||||
{
|
||||
|
|
@ -639,6 +654,7 @@ nv84_video_buffer_create(struct pipe_context *pipe,
|
|||
buffer->base.destroy = nv84_video_buffer_destroy;
|
||||
buffer->base.width = template->width;
|
||||
buffer->base.height = template->height;
|
||||
buffer->base.get_resources = nv84_video_buffer_resources;
|
||||
buffer->base.get_sampler_view_planes = nv84_video_buffer_sampler_view_planes;
|
||||
buffer->base.get_sampler_view_components = nv84_video_buffer_sampler_view_components;
|
||||
buffer->base.get_surfaces = nv84_video_buffer_surfaces;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue