dri: add [ax]bgr16161616 to format lookup tables
Note: The format __DRI_IMAGE_FORMAT_ABGR16161616 was already in the dri2_format_table, but had been hidden from outside view, for lack of an official DRM fourcc. Since its fourcc has now been assigned, it is safe to reveal the format. Signed-off-by: Manuel Stoeckl <code@mstoeckl.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14580>
This commit is contained in:
parent
7e554e11a1
commit
19f62b4303
|
@ -2665,6 +2665,8 @@ dri2_num_fourcc_format_planes(EGLint format)
|
|||
case DRM_FORMAT_ABGR2101010:
|
||||
case DRM_FORMAT_RGBA1010102:
|
||||
case DRM_FORMAT_BGRA1010102:
|
||||
case DRM_FORMAT_ABGR16161616:
|
||||
case DRM_FORMAT_XBGR16161616:
|
||||
case DRM_FORMAT_XBGR16161616F:
|
||||
case DRM_FORMAT_ABGR16161616F:
|
||||
case DRM_FORMAT_YUYV:
|
||||
|
|
|
@ -446,6 +446,9 @@ static const struct dri2_format_mapping dri2_format_table[] = {
|
|||
{ DRM_FORMAT_ABGR16161616, __DRI_IMAGE_FORMAT_ABGR16161616,
|
||||
__DRI_IMAGE_COMPONENTS_RGBA, PIPE_FORMAT_R16G16B16A16_UNORM, 1,
|
||||
{ { 0, 0, 0, __DRI_IMAGE_FORMAT_ABGR16161616 } } },
|
||||
{ DRM_FORMAT_XBGR16161616, __DRI_IMAGE_FORMAT_XBGR16161616,
|
||||
__DRI_IMAGE_COMPONENTS_RGB, PIPE_FORMAT_R16G16B16X16_UNORM, 1,
|
||||
{ { 0, 0, 0, __DRI_IMAGE_FORMAT_XBGR16161616 } } },
|
||||
{ DRM_FORMAT_ARGB2101010, __DRI_IMAGE_FORMAT_ARGB2101010,
|
||||
__DRI_IMAGE_COMPONENTS_RGBA, PIPE_FORMAT_B10G10R10A2_UNORM, 1,
|
||||
{ { 0, 0, 0, __DRI_IMAGE_FORMAT_ARGB2101010 } } },
|
||||
|
@ -693,11 +696,8 @@ dri2_query_dma_buf_formats(__DRIscreen *_screen, int max, int *formats,
|
|||
const struct dri2_format_mapping *map = &dri2_format_table[i];
|
||||
|
||||
/* The sRGB format is not a real FourCC as defined by drm_fourcc.h, so we
|
||||
* must not leak it out to clients. The ABGR16161616 format wasn't
|
||||
* real until recently. Don't leak it out for now.
|
||||
*/
|
||||
if (dri2_format_table[i].dri_fourcc == __DRI_IMAGE_FOURCC_SARGB8888 ||
|
||||
dri2_format_table[i].dri_fourcc == DRM_FORMAT_ABGR16161616)
|
||||
* must not leak it out to clients. */
|
||||
if (dri2_format_table[i].dri_fourcc == __DRI_IMAGE_FOURCC_SARGB8888)
|
||||
continue;
|
||||
|
||||
if (pscreen->is_format_supported(pscreen, map->pipe_format,
|
||||
|
|
|
@ -1049,6 +1049,16 @@ static const struct {
|
|||
.mesa_format = MESA_FORMAT_RGBX_FLOAT16,
|
||||
.internal_format = GL_RGBA16F,
|
||||
},
|
||||
{
|
||||
.image_format = __DRI_IMAGE_FORMAT_ABGR16161616,
|
||||
.mesa_format = MESA_FORMAT_RGBA_UNORM16,
|
||||
.internal_format = GL_RGBA16,
|
||||
},
|
||||
{
|
||||
.image_format = __DRI_IMAGE_FORMAT_XBGR16161616,
|
||||
.mesa_format = MESA_FORMAT_RGBX_UNORM16,
|
||||
.internal_format = GL_RGBA16,
|
||||
},
|
||||
{
|
||||
.image_format = __DRI_IMAGE_FORMAT_ARGB2101010,
|
||||
.mesa_format = MESA_FORMAT_B10G10R10A2_UNORM,
|
||||
|
|
|
@ -1281,6 +1281,8 @@ dri3_cpp_for_format(uint32_t format) {
|
|||
case __DRI_IMAGE_FORMAT_SABGR8:
|
||||
case __DRI_IMAGE_FORMAT_SXRGB8:
|
||||
return 4;
|
||||
case __DRI_IMAGE_FORMAT_ABGR16161616:
|
||||
case __DRI_IMAGE_FORMAT_XBGR16161616:
|
||||
case __DRI_IMAGE_FORMAT_XBGR16161616F:
|
||||
case __DRI_IMAGE_FORMAT_ABGR16161616F:
|
||||
return 8;
|
||||
|
@ -1343,6 +1345,8 @@ image_format_to_fourcc(int format)
|
|||
case __DRI_IMAGE_FORMAT_ARGB2101010: return DRM_FORMAT_ARGB2101010;
|
||||
case __DRI_IMAGE_FORMAT_XBGR2101010: return DRM_FORMAT_XBGR2101010;
|
||||
case __DRI_IMAGE_FORMAT_ABGR2101010: return DRM_FORMAT_ABGR2101010;
|
||||
case __DRI_IMAGE_FORMAT_ABGR16161616: return DRM_FORMAT_ABGR16161616;
|
||||
case __DRI_IMAGE_FORMAT_XBGR16161616: return DRM_FORMAT_XBGR16161616;
|
||||
case __DRI_IMAGE_FORMAT_XBGR16161616F: return DRM_FORMAT_XBGR16161616F;
|
||||
case __DRI_IMAGE_FORMAT_ABGR16161616F: return DRM_FORMAT_ABGR16161616F;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue