mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-05 00:20:11 +01:00
gallium/dri: Add P030 format
Acked-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19639>
This commit is contained in:
parent
e253729e03
commit
4ea4147935
11 changed files with 18 additions and 0 deletions
|
|
@ -2775,6 +2775,7 @@ dri2_num_fourcc_format_planes(EGLint format)
|
|||
case DRM_FORMAT_P010:
|
||||
case DRM_FORMAT_P012:
|
||||
case DRM_FORMAT_P016:
|
||||
case DRM_FORMAT_P030:
|
||||
return 2;
|
||||
|
||||
case DRM_FORMAT_YUV410:
|
||||
|
|
|
|||
|
|
@ -593,6 +593,10 @@ static const struct dri2_format_mapping dri2_format_table[] = {
|
|||
__DRI_IMAGE_COMPONENTS_Y_UV, PIPE_FORMAT_P016, 2,
|
||||
{ { 0, 0, 0, __DRI_IMAGE_FORMAT_R16 },
|
||||
{ 1, 1, 1, __DRI_IMAGE_FORMAT_GR1616 } } },
|
||||
{ DRM_FORMAT_P030, __DRI_IMAGE_FORMAT_NONE,
|
||||
__DRI_IMAGE_COMPONENTS_Y_UV, PIPE_FORMAT_P030, 2,
|
||||
{ { 0, 0, 0, __DRI_IMAGE_FORMAT_R16 },
|
||||
{ 1, 1, 1, __DRI_IMAGE_FORMAT_GR1616 } } },
|
||||
|
||||
{ DRM_FORMAT_NV16, __DRI_IMAGE_FORMAT_NONE,
|
||||
__DRI_IMAGE_COMPONENTS_Y_UV, PIPE_FORMAT_NV12, 2,
|
||||
|
|
|
|||
|
|
@ -258,6 +258,7 @@ update_shader_samplers(struct st_context *st,
|
|||
case PIPE_FORMAT_P010:
|
||||
case PIPE_FORMAT_P012:
|
||||
case PIPE_FORMAT_P016:
|
||||
case PIPE_FORMAT_P030:
|
||||
case PIPE_FORMAT_Y210:
|
||||
case PIPE_FORMAT_Y212:
|
||||
case PIPE_FORMAT_Y216:
|
||||
|
|
|
|||
|
|
@ -190,6 +190,7 @@ st_get_sampler_views(struct st_context *st,
|
|||
case PIPE_FORMAT_P010:
|
||||
case PIPE_FORMAT_P012:
|
||||
case PIPE_FORMAT_P016:
|
||||
case PIPE_FORMAT_P030:
|
||||
/* we need one additional R16G16 view: */
|
||||
tmpl.format = PIPE_FORMAT_RG1616_UNORM;
|
||||
tmpl.swizzle_g = PIPE_SWIZZLE_Y; /* tmpl from Y plane is R16 */
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ is_format_supported(struct pipe_screen *screen, enum pipe_format format,
|
|||
case PIPE_FORMAT_P010:
|
||||
case PIPE_FORMAT_P012:
|
||||
case PIPE_FORMAT_P016:
|
||||
case PIPE_FORMAT_P030:
|
||||
supported = screen->is_format_supported(screen, PIPE_FORMAT_R16_UNORM,
|
||||
PIPE_TEXTURE_2D, nr_samples,
|
||||
nr_storage_samples, usage) &&
|
||||
|
|
@ -312,6 +313,7 @@ st_bind_egl_image(struct gl_context *ctx,
|
|||
case PIPE_FORMAT_P010:
|
||||
case PIPE_FORMAT_P012:
|
||||
case PIPE_FORMAT_P016:
|
||||
case PIPE_FORMAT_P030:
|
||||
texFormat = MESA_FORMAT_R_UNORM16;
|
||||
texObj->RequiredTextureImageUnits = 2;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@ st_get_external_sampler_key(struct st_context *st, struct gl_program *prog)
|
|||
case PIPE_FORMAT_P010:
|
||||
case PIPE_FORMAT_P012:
|
||||
case PIPE_FORMAT_P016:
|
||||
case PIPE_FORMAT_P030:
|
||||
key.lower_nv12 |= (1 << unit);
|
||||
break;
|
||||
case PIPE_FORMAT_IYUV:
|
||||
|
|
|
|||
|
|
@ -392,6 +392,7 @@ st_get_sampler_view_format(const struct st_context *st,
|
|||
case PIPE_FORMAT_P010:
|
||||
case PIPE_FORMAT_P012:
|
||||
case PIPE_FORMAT_P016:
|
||||
case PIPE_FORMAT_P030:
|
||||
format = PIPE_FORMAT_R16_UNORM;
|
||||
break;
|
||||
case PIPE_FORMAT_Y210:
|
||||
|
|
|
|||
|
|
@ -421,6 +421,7 @@ PIPE_FORMAT_Y16_U16_V16_444_UNORM , planar3, 1, 1, 1, , , , , xy
|
|||
PIPE_FORMAT_P010 , planar2, 1, 1, 1, , , , , xyzw, yuv
|
||||
PIPE_FORMAT_P012 , planar2, 1, 1, 1, , , , , xyzw, yuv
|
||||
PIPE_FORMAT_P016 , planar2, 1, 1, 1, , , , , xyzw, yuv
|
||||
PIPE_FORMAT_P030 , planar2, 1, 1, 1, , , , , xyzw, yuv
|
||||
|
||||
PIPE_FORMAT_Y210 , subsampled, 2, 1, 1, x64 , , , , xyz1, yuv
|
||||
PIPE_FORMAT_Y212 , subsampled, 2, 1, 1, x64 , , , , xyz1, yuv
|
||||
|
|
|
|||
|
Can't render this file because it contains an unexpected character in line 8 and column 3.
|
|
|
@ -1391,6 +1391,7 @@ util_format_get_plane_format(enum pipe_format format, unsigned plane)
|
|||
case PIPE_FORMAT_P010:
|
||||
case PIPE_FORMAT_P012:
|
||||
case PIPE_FORMAT_P016:
|
||||
case PIPE_FORMAT_P030:
|
||||
case PIPE_FORMAT_Y16_U16V16_422_UNORM:
|
||||
return !plane ? PIPE_FORMAT_R16_UNORM : PIPE_FORMAT_R16G16_UNORM;
|
||||
default:
|
||||
|
|
@ -1411,6 +1412,7 @@ util_format_get_plane_width(enum pipe_format format, unsigned plane,
|
|||
case PIPE_FORMAT_P010:
|
||||
case PIPE_FORMAT_P012:
|
||||
case PIPE_FORMAT_P016:
|
||||
case PIPE_FORMAT_P030:
|
||||
case PIPE_FORMAT_Y8_U8_V8_422_UNORM:
|
||||
case PIPE_FORMAT_Y8_U8V8_422_UNORM:
|
||||
case PIPE_FORMAT_Y16_U16_V16_420_UNORM:
|
||||
|
|
@ -1434,6 +1436,7 @@ util_format_get_plane_height(enum pipe_format format, unsigned plane,
|
|||
case PIPE_FORMAT_P010:
|
||||
case PIPE_FORMAT_P012:
|
||||
case PIPE_FORMAT_P016:
|
||||
case PIPE_FORMAT_P030:
|
||||
case PIPE_FORMAT_Y16_U16_V16_420_UNORM:
|
||||
return !plane ? height : (height + 1) / 2;
|
||||
case PIPE_FORMAT_YV16:
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ def has_access(format):
|
|||
'p010',
|
||||
'p012',
|
||||
'p016',
|
||||
'p030',
|
||||
'y210',
|
||||
'y212',
|
||||
'y216',
|
||||
|
|
|
|||
|
|
@ -475,6 +475,7 @@ enum pipe_format {
|
|||
PIPE_FORMAT_P010,
|
||||
PIPE_FORMAT_P012,
|
||||
PIPE_FORMAT_P016,
|
||||
PIPE_FORMAT_P030,
|
||||
|
||||
PIPE_FORMAT_Y210,
|
||||
PIPE_FORMAT_Y212,
|
||||
|
|
@ -623,6 +624,7 @@ pipe_format_to_chroma_format(enum pipe_format format)
|
|||
case PIPE_FORMAT_P010:
|
||||
case PIPE_FORMAT_P012:
|
||||
case PIPE_FORMAT_P016:
|
||||
case PIPE_FORMAT_P030:
|
||||
case PIPE_FORMAT_Y16_U16_V16_420_UNORM:
|
||||
return PIPE_VIDEO_CHROMA_FORMAT_420;
|
||||
case PIPE_FORMAT_UYVY:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue