gallium/ddebug: implement modifiers function

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30587>
This commit is contained in:
Pierre-Eric Pelloux-Prayer 2024-08-06 10:25:50 +02:00 committed by Marge Bot
parent c6a9a9c3bc
commit 746e283fc3

View file

@ -251,6 +251,34 @@ dd_screen_resource_from_handle(struct pipe_screen *_screen,
return res;
}
static struct pipe_resource *
dd_screen_resource_create_with_modifiers(struct pipe_screen *_screen,
const struct pipe_resource *templat,
const uint64_t *modifiers, int count)
{
struct pipe_screen *screen = dd_screen(_screen)->screen;
struct pipe_resource *res =
screen->resource_create_with_modifiers(screen, templat,
modifiers, count);
if (!res)
return NULL;
res->screen = _screen;
return res;
}
static void
dd_screen_query_dmabuf_modifiers(struct pipe_screen *_screen,
enum pipe_format format, int max,
uint64_t *modifiers,
unsigned int *external_only, int *count)
{
struct pipe_screen *screen = dd_screen(_screen)->screen;
screen->query_dmabuf_modifiers(screen, format, max, modifiers,
external_only, count);
}
static struct pipe_resource *
dd_screen_resource_from_user_memory(struct pipe_screen *_screen,
const struct pipe_resource *templ,
@ -634,6 +662,8 @@ ddebug_screen_create(struct pipe_screen *screen)
/* is_video_format_supported */
SCR_INIT(can_create_resource);
dscreen->base.resource_create = dd_screen_resource_create;
dscreen->base.resource_create_with_modifiers = dd_screen_resource_create_with_modifiers;
dscreen->base.query_dmabuf_modifiers = dd_screen_query_dmabuf_modifiers;
dscreen->base.resource_from_handle = dd_screen_resource_from_handle;
SCR_INIT(resource_from_memobj);
SCR_INIT(resource_from_user_memory);