mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 15:48:36 +02:00
gbm/dri: Use PIPE_FORMAT_* instead of using __DRI_IMAGE_*
__DRI_IMAGE formats are not well defined for big endian. This patch has no functionnal change and prepare the work to better support big endian. Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31707>
This commit is contained in:
parent
c6d7ab7c1f
commit
3814dee11a
3 changed files with 29 additions and 29 deletions
|
|
@ -123,7 +123,7 @@ dri2_drm_config_is_compatible(struct dri2_egl_display *dri2_dpy,
|
|||
const struct util_format_description *fmt_c =
|
||||
util_format_description(gl_config->color_format);
|
||||
const struct util_format_description *fmt_s =
|
||||
util_format_description(visual->dri_image_format);
|
||||
util_format_description(visual->pipe_format);
|
||||
|
||||
if (util_is_format_compatible(fmt_c, fmt_s) ||
|
||||
util_is_format_compatible(fmt_s, fmt_c))
|
||||
|
|
@ -504,7 +504,7 @@ drm_add_configs_for_visuals(_EGLDisplay *disp)
|
|||
for (unsigned j = 0; j < num_visuals; j++) {
|
||||
struct dri2_egl_config *dri2_conf;
|
||||
|
||||
if (visuals[j].dri_image_format != gl_config->color_format)
|
||||
if (visuals[j].pipe_format != gl_config->color_format)
|
||||
continue;
|
||||
|
||||
const EGLint attr_list[] = {
|
||||
|
|
|
|||
|
|
@ -305,33 +305,33 @@ dri_screen_create_sw(struct gbm_dri_device *dri, bool driver_name_is_inferred)
|
|||
}
|
||||
|
||||
static const struct gbm_dri_visual gbm_dri_visuals_table[] = {
|
||||
{ GBM_FORMAT_R8, __DRI_IMAGE_FORMAT_R8 },
|
||||
{ GBM_FORMAT_R16, __DRI_IMAGE_FORMAT_R16 },
|
||||
{ GBM_FORMAT_GR88, __DRI_IMAGE_FORMAT_GR88 },
|
||||
{ GBM_FORMAT_GR1616, __DRI_IMAGE_FORMAT_GR1616 },
|
||||
{ GBM_FORMAT_ARGB1555, __DRI_IMAGE_FORMAT_ARGB1555 },
|
||||
{ GBM_FORMAT_RGB565, __DRI_IMAGE_FORMAT_RGB565 },
|
||||
{ GBM_FORMAT_XRGB8888, __DRI_IMAGE_FORMAT_XRGB8888 },
|
||||
{ GBM_FORMAT_ARGB8888, __DRI_IMAGE_FORMAT_ARGB8888 },
|
||||
{ GBM_FORMAT_XBGR8888, __DRI_IMAGE_FORMAT_XBGR8888 },
|
||||
{ GBM_FORMAT_ABGR8888, __DRI_IMAGE_FORMAT_ABGR8888 },
|
||||
{ GBM_FORMAT_XRGB2101010, __DRI_IMAGE_FORMAT_XRGB2101010 },
|
||||
{ GBM_FORMAT_ARGB2101010, __DRI_IMAGE_FORMAT_ARGB2101010 },
|
||||
{ GBM_FORMAT_XBGR2101010, __DRI_IMAGE_FORMAT_XBGR2101010 },
|
||||
{ GBM_FORMAT_ABGR2101010, __DRI_IMAGE_FORMAT_ABGR2101010 },
|
||||
{ GBM_FORMAT_XBGR16161616, __DRI_IMAGE_FORMAT_XBGR16161616 },
|
||||
{ GBM_FORMAT_ABGR16161616, __DRI_IMAGE_FORMAT_ABGR16161616 },
|
||||
{ GBM_FORMAT_XBGR16161616F, __DRI_IMAGE_FORMAT_XBGR16161616F },
|
||||
{ GBM_FORMAT_ABGR16161616F, __DRI_IMAGE_FORMAT_ABGR16161616F },
|
||||
{ GBM_FORMAT_R8, PIPE_FORMAT_R8_UNORM },
|
||||
{ GBM_FORMAT_R16, PIPE_FORMAT_R16_UNORM },
|
||||
{ GBM_FORMAT_GR88, PIPE_FORMAT_RG88_UNORM },
|
||||
{ GBM_FORMAT_GR1616, PIPE_FORMAT_RG1616_UNORM },
|
||||
{ GBM_FORMAT_ARGB1555, PIPE_FORMAT_B5G5R5A1_UNORM },
|
||||
{ GBM_FORMAT_RGB565, PIPE_FORMAT_B5G6R5_UNORM },
|
||||
{ GBM_FORMAT_XRGB8888, PIPE_FORMAT_BGRX8888_UNORM },
|
||||
{ GBM_FORMAT_ARGB8888, PIPE_FORMAT_BGRA8888_UNORM },
|
||||
{ GBM_FORMAT_XBGR8888, PIPE_FORMAT_RGBX8888_UNORM },
|
||||
{ GBM_FORMAT_ABGR8888, PIPE_FORMAT_RGBA8888_UNORM },
|
||||
{ GBM_FORMAT_XRGB2101010, PIPE_FORMAT_B10G10R10X2_UNORM },
|
||||
{ GBM_FORMAT_ARGB2101010, PIPE_FORMAT_B10G10R10A2_UNORM },
|
||||
{ GBM_FORMAT_XBGR2101010, PIPE_FORMAT_R10G10B10X2_UNORM },
|
||||
{ GBM_FORMAT_ABGR2101010, PIPE_FORMAT_R10G10B10A2_UNORM },
|
||||
{ GBM_FORMAT_XBGR16161616, PIPE_FORMAT_R16G16B16X16_UNORM },
|
||||
{ GBM_FORMAT_ABGR16161616, PIPE_FORMAT_R16G16B16A16_UNORM },
|
||||
{ GBM_FORMAT_XBGR16161616F, PIPE_FORMAT_R16G16B16X16_FLOAT },
|
||||
{ GBM_FORMAT_ABGR16161616F, PIPE_FORMAT_R16G16B16A16_FLOAT },
|
||||
};
|
||||
|
||||
static int
|
||||
gbm_format_to_dri_format(uint32_t gbm_format)
|
||||
gbm_format_to_pipe_format(uint32_t gbm_format)
|
||||
{
|
||||
gbm_format = core->v0.format_canonicalize(gbm_format);
|
||||
for (size_t i = 0; i < ARRAY_SIZE(gbm_dri_visuals_table); i++) {
|
||||
if (gbm_dri_visuals_table[i].gbm_format == gbm_format)
|
||||
return gbm_dri_visuals_table[i].dri_image_format;
|
||||
return gbm_dri_visuals_table[i].pipe_format;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
@ -349,7 +349,7 @@ gbm_dri_is_format_supported(struct gbm_device *gbm,
|
|||
return 0;
|
||||
|
||||
format = core->v0.format_canonicalize(format);
|
||||
if (gbm_format_to_dri_format(format) == 0)
|
||||
if (gbm_format_to_pipe_format(format) == 0)
|
||||
return 0;
|
||||
|
||||
/* If there is no query, fall back to the small table which was originally
|
||||
|
|
@ -385,7 +385,7 @@ gbm_dri_get_format_modifier_plane_count(struct gbm_device *gbm,
|
|||
return -1;
|
||||
|
||||
format = core->v0.format_canonicalize(format);
|
||||
if (gbm_format_to_dri_format(format) == 0)
|
||||
if (gbm_format_to_pipe_format(format) == 0)
|
||||
return -1;
|
||||
|
||||
if (!dri2_query_dma_buf_format_modifier_attribs(dri->screen, format, modifier,
|
||||
|
|
@ -861,7 +861,7 @@ gbm_dri_bo_create(struct gbm_device *gbm,
|
|||
{
|
||||
struct gbm_dri_device *dri = gbm_dri_device(gbm);
|
||||
struct gbm_dri_bo *bo;
|
||||
int dri_format;
|
||||
int pipe_format;
|
||||
unsigned dri_use = 0;
|
||||
uint64_t *mods_comp = NULL;
|
||||
uint64_t *mods_filtered = NULL;
|
||||
|
|
@ -881,8 +881,8 @@ gbm_dri_bo_create(struct gbm_device *gbm,
|
|||
bo->base.v0.height = height;
|
||||
bo->base.v0.format = format;
|
||||
|
||||
dri_format = gbm_format_to_dri_format(format);
|
||||
if (dri_format == 0) {
|
||||
pipe_format = gbm_format_to_pipe_format(format);
|
||||
if (pipe_format == 0) {
|
||||
errno = EINVAL;
|
||||
goto failed;
|
||||
}
|
||||
|
|
@ -989,7 +989,7 @@ gbm_dri_bo_create(struct gbm_device *gbm,
|
|||
}
|
||||
|
||||
bo->image = dri_create_image_with_modifiers(dri->screen, width, height,
|
||||
dri_format, dri_use,
|
||||
pipe_format, dri_use,
|
||||
mods_filtered ? mods_filtered : modifiers,
|
||||
mods_filtered ? count_filtered : count,
|
||||
bo);
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ struct gbm_dri_bo;
|
|||
|
||||
struct gbm_dri_visual {
|
||||
uint32_t gbm_format;
|
||||
int dri_image_format;
|
||||
int pipe_format;
|
||||
};
|
||||
|
||||
struct gbm_dri_device {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue