gbm: inline simple DRI_IMAGE usage
Reviewed-by: Adam Jackson <ajax@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30472>
This commit is contained in:

committed by
Marge Bot

parent
89c6c150cc
commit
20d3e1ad14
@@ -393,7 +393,7 @@ gbm_dri_is_format_supported(struct gbm_device *gbm,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* This returns false if the format isn't supported */
|
/* This returns false if the format isn't supported */
|
||||||
if (!dri->image->queryDmaBufModifiers(dri->screen, format, 0, NULL, NULL,
|
if (!dri_query_dma_buf_modifiers(dri->screen, format, 0, NULL, NULL,
|
||||||
&count))
|
&count))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@@ -415,8 +415,7 @@ gbm_dri_get_format_modifier_plane_count(struct gbm_device *gbm,
|
|||||||
if (gbm_format_to_dri_format(format) == 0)
|
if (gbm_format_to_dri_format(format) == 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (!dri->image->queryDmaBufFormatModifierAttribs(
|
if (!dri2_query_dma_buf_format_modifier_attribs(dri->screen, format, modifier,
|
||||||
dri->screen, format, modifier,
|
|
||||||
__DRI_IMAGE_FORMAT_MODIFIER_ATTRIB_PLANE_COUNT, &plane_count))
|
__DRI_IMAGE_FORMAT_MODIFIER_ATTRIB_PLANE_COUNT, &plane_count))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -441,14 +440,13 @@ gbm_dri_bo_write(struct gbm_bo *_bo, const void *buf, size_t count)
|
|||||||
static int
|
static int
|
||||||
gbm_dri_bo_get_fd(struct gbm_bo *_bo)
|
gbm_dri_bo_get_fd(struct gbm_bo *_bo)
|
||||||
{
|
{
|
||||||
struct gbm_dri_device *dri = gbm_dri_device(_bo->gbm);
|
|
||||||
struct gbm_dri_bo *bo = gbm_dri_bo(_bo);
|
struct gbm_dri_bo *bo = gbm_dri_bo(_bo);
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
if (bo->image == NULL)
|
if (bo->image == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (!dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_FD, &fd))
|
if (!dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_FD, &fd))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return fd;
|
return fd;
|
||||||
@@ -463,7 +461,7 @@ get_number_planes(struct gbm_dri_device *dri, __DRIimage *image)
|
|||||||
if (!image)
|
if (!image)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
dri->image->queryImage(image, __DRI_IMAGE_ATTRIB_NUM_PLANES, &num_planes);
|
dri2_query_image(image, __DRI_IMAGE_ATTRIB_NUM_PLANES, &num_planes);
|
||||||
|
|
||||||
if (num_planes <= 0)
|
if (num_planes <= 0)
|
||||||
num_planes = 1;
|
num_planes = 1;
|
||||||
@@ -500,13 +498,13 @@ gbm_dri_bo_get_handle_for_plane(struct gbm_bo *_bo, int plane)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
__DRIimage *image = dri->image->fromPlanar(bo->image, plane, NULL);
|
__DRIimage *image = dri2_from_planar(bo->image, plane, NULL);
|
||||||
if (image) {
|
if (image) {
|
||||||
dri->image->queryImage(image, __DRI_IMAGE_ATTRIB_HANDLE, &ret.s32);
|
dri2_query_image(image, __DRI_IMAGE_ATTRIB_HANDLE, &ret.s32);
|
||||||
dri->image->destroyImage(image);
|
dri2_destroy_image(image);
|
||||||
} else {
|
} else {
|
||||||
assert(plane == 0);
|
assert(plane == 0);
|
||||||
dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HANDLE, &ret.s32);
|
dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_HANDLE, &ret.s32);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@@ -539,13 +537,13 @@ gbm_dri_bo_get_plane_fd(struct gbm_bo *_bo, int plane)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
__DRIimage *image = dri->image->fromPlanar(bo->image, plane, NULL);
|
__DRIimage *image = dri2_from_planar(bo->image, plane, NULL);
|
||||||
if (image) {
|
if (image) {
|
||||||
dri->image->queryImage(image, __DRI_IMAGE_ATTRIB_FD, &fd);
|
dri2_query_image(image, __DRI_IMAGE_ATTRIB_FD, &fd);
|
||||||
dri->image->destroyImage(image);
|
dri2_destroy_image(image);
|
||||||
} else {
|
} else {
|
||||||
assert(plane == 0);
|
assert(plane == 0);
|
||||||
dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_FD, &fd);
|
dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_FD, &fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
return fd;
|
return fd;
|
||||||
@@ -578,13 +576,13 @@ gbm_dri_bo_get_stride(struct gbm_bo *_bo, int plane)
|
|||||||
return _bo->v0.stride;
|
return _bo->v0.stride;
|
||||||
}
|
}
|
||||||
|
|
||||||
image = dri->image->fromPlanar(bo->image, plane, NULL);
|
image = dri2_from_planar(bo->image, plane, NULL);
|
||||||
if (image) {
|
if (image) {
|
||||||
dri->image->queryImage(image, __DRI_IMAGE_ATTRIB_STRIDE, &stride);
|
dri2_query_image(image, __DRI_IMAGE_ATTRIB_STRIDE, &stride);
|
||||||
dri->image->destroyImage(image);
|
dri2_destroy_image(image);
|
||||||
} else {
|
} else {
|
||||||
assert(plane == 0);
|
assert(plane == 0);
|
||||||
dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_STRIDE, &stride);
|
dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_STRIDE, &stride);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (uint32_t)stride;
|
return (uint32_t)stride;
|
||||||
@@ -606,13 +604,13 @@ gbm_dri_bo_get_offset(struct gbm_bo *_bo, int plane)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
__DRIimage *image = dri->image->fromPlanar(bo->image, plane, NULL);
|
__DRIimage *image = dri2_from_planar(bo->image, plane, NULL);
|
||||||
if (image) {
|
if (image) {
|
||||||
dri->image->queryImage(image, __DRI_IMAGE_ATTRIB_OFFSET, &offset);
|
dri2_query_image(image, __DRI_IMAGE_ATTRIB_OFFSET, &offset);
|
||||||
dri->image->destroyImage(image);
|
dri2_destroy_image(image);
|
||||||
} else {
|
} else {
|
||||||
assert(plane == 0);
|
assert(plane == 0);
|
||||||
dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_OFFSET, &offset);
|
dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_OFFSET, &offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (uint32_t)offset;
|
return (uint32_t)offset;
|
||||||
@@ -621,7 +619,6 @@ gbm_dri_bo_get_offset(struct gbm_bo *_bo, int plane)
|
|||||||
static uint64_t
|
static uint64_t
|
||||||
gbm_dri_bo_get_modifier(struct gbm_bo *_bo)
|
gbm_dri_bo_get_modifier(struct gbm_bo *_bo)
|
||||||
{
|
{
|
||||||
struct gbm_dri_device *dri = gbm_dri_device(_bo->gbm);
|
|
||||||
struct gbm_dri_bo *bo = gbm_dri_bo(_bo);
|
struct gbm_dri_bo *bo = gbm_dri_bo(_bo);
|
||||||
|
|
||||||
/* Dumb buffers have no modifiers */
|
/* Dumb buffers have no modifiers */
|
||||||
@@ -630,13 +627,13 @@ gbm_dri_bo_get_modifier(struct gbm_bo *_bo)
|
|||||||
|
|
||||||
uint64_t ret = 0;
|
uint64_t ret = 0;
|
||||||
int mod;
|
int mod;
|
||||||
if (!dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_MODIFIER_UPPER,
|
if (!dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_MODIFIER_UPPER,
|
||||||
&mod))
|
&mod))
|
||||||
return DRM_FORMAT_MOD_INVALID;
|
return DRM_FORMAT_MOD_INVALID;
|
||||||
|
|
||||||
ret = (uint64_t)mod << 32;
|
ret = (uint64_t)mod << 32;
|
||||||
|
|
||||||
if (!dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_MODIFIER_LOWER,
|
if (!dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_MODIFIER_LOWER,
|
||||||
&mod))
|
&mod))
|
||||||
return DRM_FORMAT_MOD_INVALID;
|
return DRM_FORMAT_MOD_INVALID;
|
||||||
|
|
||||||
@@ -653,7 +650,7 @@ gbm_dri_bo_destroy(struct gbm_bo *_bo)
|
|||||||
struct drm_mode_destroy_dumb arg;
|
struct drm_mode_destroy_dumb arg;
|
||||||
|
|
||||||
if (bo->image != NULL) {
|
if (bo->image != NULL) {
|
||||||
dri->image->destroyImage(bo->image);
|
dri2_destroy_image(bo->image);
|
||||||
} else {
|
} else {
|
||||||
gbm_dri_bo_unmap_dumb(bo);
|
gbm_dri_bo_unmap_dumb(bo);
|
||||||
memset(&arg, 0, sizeof(arg));
|
memset(&arg, 0, sizeof(arg));
|
||||||
@@ -696,7 +693,7 @@ gbm_dri_bo_import(struct gbm_device *gbm,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
image = dri->image->dupImage(wb->driver_buffer, NULL);
|
image = dri2_dup_image(wb->driver_buffer, NULL);
|
||||||
|
|
||||||
/* GBM_FORMAT_* is identical to WL_DRM_FORMAT_*, so no conversion
|
/* GBM_FORMAT_* is identical to WL_DRM_FORMAT_*, so no conversion
|
||||||
* required. */
|
* required. */
|
||||||
@@ -717,11 +714,11 @@ gbm_dri_bo_import(struct gbm_device *gbm,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
image = dri->lookup_image_validated(buffer, dri->lookup_user_data);
|
image = dri->lookup_image_validated(buffer, dri->lookup_user_data);
|
||||||
image = dri->image->dupImage(image, NULL);
|
image = dri2_dup_image(image, NULL);
|
||||||
dri->image->queryImage(image, __DRI_IMAGE_ATTRIB_FOURCC, &gbm_format);
|
dri2_query_image(image, __DRI_IMAGE_ATTRIB_FOURCC, &gbm_format);
|
||||||
if (gbm_format == DRM_FORMAT_INVALID) {
|
if (gbm_format == DRM_FORMAT_INVALID) {
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
dri->image->destroyImage(image);
|
dri2_destroy_image(image);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -792,7 +789,7 @@ gbm_dri_bo_import(struct gbm_device *gbm,
|
|||||||
|
|
||||||
bo = calloc(1, sizeof *bo);
|
bo = calloc(1, sizeof *bo);
|
||||||
if (bo == NULL) {
|
if (bo == NULL) {
|
||||||
dri->image->destroyImage(image);
|
dri2_destroy_image(image);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -802,9 +799,9 @@ gbm_dri_bo_import(struct gbm_device *gbm,
|
|||||||
dri_use |= __DRI_IMAGE_USE_SCANOUT;
|
dri_use |= __DRI_IMAGE_USE_SCANOUT;
|
||||||
if (usage & GBM_BO_USE_CURSOR)
|
if (usage & GBM_BO_USE_CURSOR)
|
||||||
dri_use |= __DRI_IMAGE_USE_CURSOR;
|
dri_use |= __DRI_IMAGE_USE_CURSOR;
|
||||||
if (!dri->image->validateUsage(bo->image, dri_use)) {
|
if (!dri2_validate_usage(bo->image, dri_use)) {
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
dri->image->destroyImage(bo->image);
|
dri2_destroy_image(bo->image);
|
||||||
free(bo);
|
free(bo);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -812,13 +809,13 @@ gbm_dri_bo_import(struct gbm_device *gbm,
|
|||||||
bo->base.gbm = gbm;
|
bo->base.gbm = gbm;
|
||||||
bo->base.v0.format = gbm_format;
|
bo->base.v0.format = gbm_format;
|
||||||
|
|
||||||
dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_WIDTH,
|
dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_WIDTH,
|
||||||
(int*)&bo->base.v0.width);
|
(int*)&bo->base.v0.width);
|
||||||
dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HEIGHT,
|
dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_HEIGHT,
|
||||||
(int*)&bo->base.v0.height);
|
(int*)&bo->base.v0.height);
|
||||||
dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_STRIDE,
|
dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_STRIDE,
|
||||||
(int*)&bo->base.v0.stride);
|
(int*)&bo->base.v0.stride);
|
||||||
dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HANDLE,
|
dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_HANDLE,
|
||||||
&bo->base.v0.handle.s32);
|
&bo->base.v0.handle.s32);
|
||||||
|
|
||||||
return &bo->base;
|
return &bo->base;
|
||||||
@@ -961,7 +958,7 @@ gbm_dri_bo_create(struct gbm_device *gbm,
|
|||||||
/* Find how many acceptable modifiers there are for our rate. If there
|
/* Find how many acceptable modifiers there are for our rate. If there
|
||||||
* are none, fall back to no compression, as it is not mandatory to use
|
* are none, fall back to no compression, as it is not mandatory to use
|
||||||
* the specified compression rate. */
|
* the specified compression rate. */
|
||||||
if (!dri->image->queryCompressionModifiers(dri->screen, format, comp,
|
if (!dri2_query_compression_modifiers(dri->screen, format, comp,
|
||||||
0, NULL, &count_comp) ||
|
0, NULL, &count_comp) ||
|
||||||
count_comp == 0) {
|
count_comp == 0) {
|
||||||
if (comp == __DRI_FIXED_RATE_COMPRESSION_NONE) {
|
if (comp == __DRI_FIXED_RATE_COMPRESSION_NONE) {
|
||||||
@@ -970,7 +967,7 @@ gbm_dri_bo_create(struct gbm_device *gbm,
|
|||||||
}
|
}
|
||||||
|
|
||||||
comp = __DRI_FIXED_RATE_COMPRESSION_NONE;
|
comp = __DRI_FIXED_RATE_COMPRESSION_NONE;
|
||||||
if (!dri->image->queryCompressionModifiers(dri->screen, format, comp,
|
if (!dri2_query_compression_modifiers(dri->screen, format, comp,
|
||||||
0, NULL, &count_comp)) {
|
0, NULL, &count_comp)) {
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
goto failed;
|
goto failed;
|
||||||
@@ -989,7 +986,7 @@ gbm_dri_bo_create(struct gbm_device *gbm,
|
|||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!dri->image->queryCompressionModifiers(dri->screen, format, comp,
|
if (!dri2_query_compression_modifiers(dri->screen, format, comp,
|
||||||
count_comp, mods_comp,
|
count_comp, mods_comp,
|
||||||
&count_comp)) {
|
&count_comp)) {
|
||||||
errno = ENOMEM;
|
errno = ENOMEM;
|
||||||
@@ -1023,9 +1020,9 @@ gbm_dri_bo_create(struct gbm_device *gbm,
|
|||||||
free(mods_filtered);
|
free(mods_filtered);
|
||||||
mods_filtered = NULL;
|
mods_filtered = NULL;
|
||||||
|
|
||||||
dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HANDLE,
|
dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_HANDLE,
|
||||||
&bo->base.v0.handle.s32);
|
&bo->base.v0.handle.s32);
|
||||||
dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_STRIDE,
|
dri2_query_image(bo->image, __DRI_IMAGE_ATTRIB_STRIDE,
|
||||||
(int *) &bo->base.v0.stride);
|
(int *) &bo->base.v0.stride);
|
||||||
|
|
||||||
return &bo->base;
|
return &bo->base;
|
||||||
@@ -1066,7 +1063,7 @@ gbm_dri_bo_map(struct gbm_bo *_bo,
|
|||||||
mtx_unlock(&dri->mutex);
|
mtx_unlock(&dri->mutex);
|
||||||
|
|
||||||
/* GBM flags and DRI flags are the same, so just pass them on */
|
/* GBM flags and DRI flags are the same, so just pass them on */
|
||||||
return dri->image->mapImage(dri->context, bo->image, x, y,
|
return dri2_map_image(dri->context, bo->image, x, y,
|
||||||
width, height, flags, (int *)stride,
|
width, height, flags, (int *)stride,
|
||||||
map_data);
|
map_data);
|
||||||
}
|
}
|
||||||
@@ -1087,7 +1084,7 @@ gbm_dri_bo_unmap(struct gbm_bo *_bo, void *map_data)
|
|||||||
if (!dri->context || !dri->image->unmapImage)
|
if (!dri->context || !dri->image->unmapImage)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
dri->image->unmapImage(dri->context, bo->image, map_data);
|
dri2_unmap_image(dri->context, bo->image, map_data);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Not all DRI drivers use direct maps. They may queue up DMA operations
|
* Not all DRI drivers use direct maps. They may queue up DMA operations
|
||||||
|
Reference in New Issue
Block a user