util/format: Add more multi-planar formats.
[mesa.git] / src / util / format / u_format.h
index 1b6f0b882893a316bbcdf01fbc1196a41a1decf4..f13dc9fc0d8d40f8270ba31c79a84fd30ad5a4cc 100644 (file)
@@ -1336,13 +1336,21 @@ util_format_get_plane_format(enum pipe_format format, unsigned plane)
    case PIPE_FORMAT_YV12:
    case PIPE_FORMAT_YV16:
    case PIPE_FORMAT_IYUV:
    case PIPE_FORMAT_YV12:
    case PIPE_FORMAT_YV16:
    case PIPE_FORMAT_IYUV:
+   case PIPE_FORMAT_Y8_U8_V8_422_UNORM:
+   case PIPE_FORMAT_Y8_U8_V8_444_UNORM:
       return PIPE_FORMAT_R8_UNORM;
    case PIPE_FORMAT_NV12:
       return PIPE_FORMAT_R8_UNORM;
    case PIPE_FORMAT_NV12:
+   case PIPE_FORMAT_Y8_U8V8_422_UNORM:
       return !plane ? PIPE_FORMAT_R8_UNORM : PIPE_FORMAT_RG88_UNORM;
    case PIPE_FORMAT_NV21:
       return !plane ? PIPE_FORMAT_R8_UNORM : PIPE_FORMAT_GR88_UNORM;
       return !plane ? PIPE_FORMAT_R8_UNORM : PIPE_FORMAT_RG88_UNORM;
    case PIPE_FORMAT_NV21:
       return !plane ? PIPE_FORMAT_R8_UNORM : PIPE_FORMAT_GR88_UNORM;
+   case PIPE_FORMAT_Y16_U16_V16_420_UNORM:
+   case PIPE_FORMAT_Y16_U16_V16_422_UNORM:
+   case PIPE_FORMAT_Y16_U16_V16_444_UNORM:
+      return PIPE_FORMAT_R16_UNORM;
    case PIPE_FORMAT_P010:
    case PIPE_FORMAT_P016:
    case PIPE_FORMAT_P010:
    case PIPE_FORMAT_P016:
+   case PIPE_FORMAT_Y16_U16V16_422_UNORM:
       return !plane ? PIPE_FORMAT_R16_UNORM : PIPE_FORMAT_R16G16_UNORM;
    default:
       return format;
       return !plane ? PIPE_FORMAT_R16_UNORM : PIPE_FORMAT_R16G16_UNORM;
    default:
       return format;
@@ -1361,6 +1369,11 @@ util_format_get_plane_width(enum pipe_format format, unsigned plane,
    case PIPE_FORMAT_NV21:
    case PIPE_FORMAT_P010:
    case PIPE_FORMAT_P016:
    case PIPE_FORMAT_NV21:
    case PIPE_FORMAT_P010:
    case PIPE_FORMAT_P016:
+   case PIPE_FORMAT_Y8_U8_V8_422_UNORM:
+   case PIPE_FORMAT_Y8_U8V8_422_UNORM:
+   case PIPE_FORMAT_Y16_U16_V16_420_UNORM:
+   case PIPE_FORMAT_Y16_U16_V16_422_UNORM:
+   case PIPE_FORMAT_Y16_U16V16_422_UNORM:
       return !plane ? width : (width + 1) / 2;
    default:
       return width;
       return !plane ? width : (width + 1) / 2;
    default:
       return width;
@@ -1378,6 +1391,7 @@ util_format_get_plane_height(enum pipe_format format, unsigned plane,
    case PIPE_FORMAT_NV21:
    case PIPE_FORMAT_P010:
    case PIPE_FORMAT_P016:
    case PIPE_FORMAT_NV21:
    case PIPE_FORMAT_P010:
    case PIPE_FORMAT_P016:
+   case PIPE_FORMAT_Y16_U16_V16_420_UNORM:
       return !plane ? height : (height + 1) / 2;
    case PIPE_FORMAT_YV16:
    default:
       return !plane ? height : (height + 1) / 2;
    case PIPE_FORMAT_YV16:
    default: