rbug: implement resource creation with modifier
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
This commit is contained in:
parent
5b3e57059c
commit
93d47932b8
|
@ -138,6 +138,23 @@ rbug_screen_is_format_supported(struct pipe_screen *_screen,
|
|||
tex_usage);
|
||||
}
|
||||
|
||||
static void
|
||||
rbug_screen_query_dmabuf_modifiers(struct pipe_screen *_screen,
|
||||
enum pipe_format format, int max,
|
||||
uint64_t *modifiers,
|
||||
unsigned int *external_only, int *count)
|
||||
{
|
||||
struct rbug_screen *rb_screen = rbug_screen(_screen);
|
||||
struct pipe_screen *screen = rb_screen->screen;
|
||||
|
||||
screen->query_dmabuf_modifiers(screen,
|
||||
format,
|
||||
max,
|
||||
modifiers,
|
||||
external_only,
|
||||
count);
|
||||
}
|
||||
|
||||
static struct pipe_context *
|
||||
rbug_screen_context_create(struct pipe_screen *_screen,
|
||||
void *priv, unsigned flags)
|
||||
|
@ -179,6 +196,25 @@ rbug_screen_resource_create(struct pipe_screen *_screen,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static struct pipe_resource *
|
||||
rbug_screen_resource_create_with_modifiers(struct pipe_screen *_screen,
|
||||
const struct pipe_resource *templat,
|
||||
const uint64_t *modifiers, int count)
|
||||
{
|
||||
struct rbug_screen *rb_screen = rbug_screen(_screen);
|
||||
struct pipe_screen *screen = rb_screen->screen;
|
||||
struct pipe_resource *result;
|
||||
|
||||
result = screen->resource_create_with_modifiers(screen,
|
||||
templat,
|
||||
modifiers,
|
||||
count);
|
||||
|
||||
if (result)
|
||||
return rbug_resource_create(rb_screen, result);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct pipe_resource *
|
||||
rbug_screen_resource_from_handle(struct pipe_screen *_screen,
|
||||
const struct pipe_resource *templ,
|
||||
|
@ -371,9 +407,11 @@ rbug_screen_create(struct pipe_screen *screen)
|
|||
rb_screen->base.get_shader_param = rbug_screen_get_shader_param;
|
||||
rb_screen->base.get_paramf = rbug_screen_get_paramf;
|
||||
rb_screen->base.is_format_supported = rbug_screen_is_format_supported;
|
||||
SCR_INIT(query_dmabuf_modifiers);
|
||||
rb_screen->base.context_create = rbug_screen_context_create;
|
||||
SCR_INIT(can_create_resource);
|
||||
rb_screen->base.resource_create = rbug_screen_resource_create;
|
||||
SCR_INIT(resource_create_with_modifiers);
|
||||
rb_screen->base.resource_from_handle = rbug_screen_resource_from_handle;
|
||||
SCR_INIT(check_resource_capability);
|
||||
rb_screen->base.resource_get_handle = rbug_screen_resource_get_handle;
|
||||
|
|
Loading…
Reference in New Issue