gallium/dri: implement createImageWithModifiers2

This implements __DRIimageExtension version 19.

Signed-off-by: Simon Ser <contact@emersion.fr>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106>
This commit is contained in:
Simon Ser 2019-12-22 21:47:42 +01:00 committed by Marge Bot
parent afd8b2f498
commit 23b0112ce1
1 changed files with 17 additions and 2 deletions

View File

@ -1089,6 +1089,17 @@ dri2_create_image_with_modifiers(__DRIscreen *dri_screen,
loaderPrivate); loaderPrivate);
} }
static __DRIimage *
dri2_create_image_with_modifiers2(__DRIscreen *dri_screen,
int width, int height, int format,
const uint64_t *modifiers,
const unsigned count, unsigned int use,
void *loaderPrivate)
{
return dri2_create_image_common(dri_screen, width, height, format, use,
modifiers, count, loaderPrivate);
}
static bool static bool
dri2_query_image_common(__DRIimage *image, int attrib, int *value) dri2_query_image_common(__DRIimage *image, int attrib, int *value)
{ {
@ -1679,7 +1690,7 @@ dri2_get_capabilities(__DRIscreen *_screen)
/* The extension is modified during runtime if DRI_PRIME is detected */ /* The extension is modified during runtime if DRI_PRIME is detected */
static const __DRIimageExtension dri2ImageExtensionTempl = { static const __DRIimageExtension dri2ImageExtensionTempl = {
.base = { __DRI_IMAGE, 18 }, .base = { __DRI_IMAGE, 19 },
.createImageFromName = dri2_create_image_from_name, .createImageFromName = dri2_create_image_from_name,
.createImageFromRenderbuffer = dri2_create_image_from_renderbuffer, .createImageFromRenderbuffer = dri2_create_image_from_renderbuffer,
@ -1704,6 +1715,7 @@ static const __DRIimageExtension dri2ImageExtensionTempl = {
.queryDmaBufModifiers = NULL, .queryDmaBufModifiers = NULL,
.queryDmaBufFormatModifierAttribs = NULL, .queryDmaBufFormatModifierAttribs = NULL,
.createImageFromRenderbuffer2 = dri2_create_image_from_renderbuffer2, .createImageFromRenderbuffer2 = dri2_create_image_from_renderbuffer2,
.createImageWithModifiers2 = NULL,
}; };
static const __DRIrobustnessExtension dri2Robustness = { static const __DRIrobustnessExtension dri2Robustness = {
@ -2165,9 +2177,12 @@ dri2_init_screen_extensions(struct dri_screen *screen,
nExt = &screen->screen_extensions[ARRAY_SIZE(dri_screen_extensions_base)]; nExt = &screen->screen_extensions[ARRAY_SIZE(dri_screen_extensions_base)];
screen->image_extension = dri2ImageExtensionTempl; screen->image_extension = dri2ImageExtensionTempl;
if (pscreen->resource_create_with_modifiers) if (pscreen->resource_create_with_modifiers) {
screen->image_extension.createImageWithModifiers = screen->image_extension.createImageWithModifiers =
dri2_create_image_with_modifiers; dri2_create_image_with_modifiers;
screen->image_extension.createImageWithModifiers2 =
dri2_create_image_with_modifiers2;
}
if (pscreen->get_param(pscreen, PIPE_CAP_DMABUF)) { if (pscreen->get_param(pscreen, PIPE_CAP_DMABUF)) {
uint64_t cap; uint64_t cap;