dri: Consistently use createImageWithModifiers2()

dri_screen.c supports it regardless.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30245>
This commit is contained in:
Emma Anholt
2023-10-24 15:33:00 -07:00
committed by Marge Bot
parent cb90f99ee5
commit 9a026df0f7
3 changed files with 8 additions and 15 deletions

View File

@@ -979,7 +979,7 @@ gbm_dri_bo_create(struct gbm_device *gbm,
/* Gallium drivers requires shared in order to get the handle/stride */
dri_use |= __DRI_IMAGE_USE_SHARE;
if (modifiers && !dri->image->createImageWithModifiers) {
if (modifiers && !dri->image->createImageWithModifiers2) {
errno = ENOSYS;
goto failed;
}
@@ -1164,7 +1164,7 @@ gbm_dri_surface_create(struct gbm_device *gbm,
struct gbm_dri_device *dri = gbm_dri_device(gbm);
struct gbm_dri_surface *surf;
if (modifiers && !dri->image->createImageWithModifiers) {
if (modifiers && !dri->image->createImageWithModifiers2) {
errno = ENOSYS;
return NULL;
}

View File

@@ -1462,9 +1462,8 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable *draw, unsigned int format,
if (draw->dri_screen_render_gpu == draw->dri_screen_display_gpu) {
#ifdef HAVE_DRI3_MODIFIERS
if (draw->multiplanes_available &&
draw->ext->image->base.version >= 15 &&
draw->ext->image->queryDmaBufModifiers &&
draw->ext->image->createImageWithModifiers) {
draw->ext->image->createImageWithModifiers2) {
xcb_dri3_get_supported_modifiers_cookie_t mod_cookie;
xcb_dri3_get_supported_modifiers_reply_t *mod_reply;
xcb_generic_error_t *error = NULL;

View File

@@ -38,8 +38,7 @@ __DRIimage *loader_dri_create_image(__DRIscreen *screen,
unsigned int modifiers_count,
void *loaderPrivate)
{
if (modifiers && modifiers_count > 0 &&
image->base.version > 14 && image->createImageWithModifiers) {
if (modifiers && modifiers_count > 0 && image->createImageWithModifiers2) {
bool has_valid_modifier = false;
int i;
@@ -58,15 +57,10 @@ __DRIimage *loader_dri_create_image(__DRIscreen *screen,
if (!has_valid_modifier)
return NULL;
if (image->base.version >= 19 && image->createImageWithModifiers2)
return image->createImageWithModifiers2(screen, width, height,
dri_format, modifiers,
modifiers_count, dri_usage,
loaderPrivate);
else
return image->createImageWithModifiers(screen, width, height,
dri_format, modifiers,
modifiers_count, loaderPrivate);
return image->createImageWithModifiers2(screen, width, height,
dri_format, modifiers,
modifiers_count, dri_usage,
loaderPrivate);
}
/* No modifier given or fallback to the legacy createImage allowed */