diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 523ca94de77..3e9b486eecf 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -2169,7 +2169,15 @@ dri2_num_fourcc_format_planes(EGLint format) case DRM_FORMAT_RG88: case DRM_FORMAT_GR88: case DRM_FORMAT_R16: + case DRM_FORMAT_R16F: + case DRM_FORMAT_R32F: case DRM_FORMAT_GR1616: + case DRM_FORMAT_GR1616F: + case DRM_FORMAT_GR3232F: + case DRM_FORMAT_BGR161616: + case DRM_FORMAT_BGR161616F: + case DRM_FORMAT_BGR323232F: + case DRM_FORMAT_ABGR32323232F: case DRM_FORMAT_RGB332: case DRM_FORMAT_BGR233: case DRM_FORMAT_XRGB4444: diff --git a/src/gallium/frontends/dri/dri_helpers.c b/src/gallium/frontends/dri/dri_helpers.c index 9f23f6c779d..c6cf873069d 100644 --- a/src/gallium/frontends/dri/dri_helpers.c +++ b/src/gallium/frontends/dri/dri_helpers.c @@ -457,6 +457,22 @@ static const struct dri2_format_mapping dri2_format_table[] = { PIPE_FORMAT_RG88_UNORM, 1, }, { DRM_FORMAT_GR1616, __DRI_IMAGE_FORMAT_GR1616, PIPE_FORMAT_RG1616_UNORM, 1, }, + { DRM_FORMAT_R16F, PIPE_FORMAT_R16_FLOAT, + PIPE_FORMAT_R16_FLOAT, 1 }, + { DRM_FORMAT_R32F, PIPE_FORMAT_R32_FLOAT, + PIPE_FORMAT_R32_FLOAT, 1 }, + { DRM_FORMAT_GR1616F, PIPE_FORMAT_R16G16_FLOAT, + PIPE_FORMAT_R16G16_FLOAT, 1 }, + { DRM_FORMAT_GR3232F, PIPE_FORMAT_R32G32_FLOAT, + PIPE_FORMAT_R32G32_FLOAT, 1 }, + { DRM_FORMAT_BGR161616, PIPE_FORMAT_R16G16B16_UNORM, + PIPE_FORMAT_R16G16B16_UNORM, 1 }, + { DRM_FORMAT_BGR161616F, PIPE_FORMAT_R16G16B16_FLOAT, + PIPE_FORMAT_R16G16B16_FLOAT, 1 }, + { DRM_FORMAT_BGR323232F, PIPE_FORMAT_R32G32B32_FLOAT, + PIPE_FORMAT_R32G32B32_FLOAT, 1 }, + { DRM_FORMAT_ABGR32323232F, PIPE_FORMAT_R32G32B32A32_FLOAT, + PIPE_FORMAT_R32G32B32A32_FLOAT, 1 }, /* * YUV formats: diff --git a/src/loader/loader_dri_helper.c b/src/loader/loader_dri_helper.c index 7d8ea3f65c9..1d200bc3266 100644 --- a/src/loader/loader_dri_helper.c +++ b/src/loader/loader_dri_helper.c @@ -68,6 +68,14 @@ static const struct { { PIPE_FORMAT_R16G16B16A16_UNORM, DRM_FORMAT_ABGR16161616 }, { PIPE_FORMAT_R16G16B16X16_FLOAT, DRM_FORMAT_XBGR16161616F }, { PIPE_FORMAT_R16G16B16A16_FLOAT, DRM_FORMAT_ABGR16161616F }, + { PIPE_FORMAT_R16_FLOAT, DRM_FORMAT_R16F }, + { PIPE_FORMAT_R32_FLOAT, DRM_FORMAT_R32F }, + { PIPE_FORMAT_R16G16_FLOAT, DRM_FORMAT_GR1616F }, + { PIPE_FORMAT_R32G32_FLOAT, DRM_FORMAT_GR3232F }, + { PIPE_FORMAT_R16G16B16_UNORM, DRM_FORMAT_BGR161616 }, + { PIPE_FORMAT_R16G16B16_FLOAT, DRM_FORMAT_BGR161616F }, + { PIPE_FORMAT_R32G32B32_FLOAT, DRM_FORMAT_BGR323232F }, + { PIPE_FORMAT_R32G32B32A32_FLOAT, DRM_FORMAT_ABGR32323232F }, }; enum pipe_format