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);
}
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
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 */
static const __DRIimageExtension dri2ImageExtensionTempl = {
.base = { __DRI_IMAGE, 18 },
.base = { __DRI_IMAGE, 19 },
.createImageFromName = dri2_create_image_from_name,
.createImageFromRenderbuffer = dri2_create_image_from_renderbuffer,
@ -1704,6 +1715,7 @@ static const __DRIimageExtension dri2ImageExtensionTempl = {
.queryDmaBufModifiers = NULL,
.queryDmaBufFormatModifierAttribs = NULL,
.createImageFromRenderbuffer2 = dri2_create_image_from_renderbuffer2,
.createImageWithModifiers2 = NULL,
};
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)];
screen->image_extension = dri2ImageExtensionTempl;
if (pscreen->resource_create_with_modifiers)
if (pscreen->resource_create_with_modifiers) {
screen->image_extension.createImageWithModifiers =
dri2_create_image_with_modifiers;
screen->image_extension.createImageWithModifiers2 =
dri2_create_image_with_modifiers2;
}
if (pscreen->get_param(pscreen, PIPE_CAP_DMABUF)) {
uint64_t cap;