util/format: Handle emulated YUV formats in util_format_get_plane_{height,width}()
Useful to drivers doing the CSC in software, but still needing to account for width/height adjusment based on the subsampling. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Tested-by: Eric R. Smith <eric.smith@collabora.com> Reviewed-by: Eric R. Smith <eric.smith@collabora.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35015>
This commit is contained in:
committed by
Marge Bot
parent
6b54547a0e
commit
ceb79e399e
@@ -1353,6 +1353,19 @@ util_format_get_plane_width(enum pipe_format format, unsigned plane,
|
||||
case PIPE_FORMAT_Y16_U16_V16_420_UNORM:
|
||||
case PIPE_FORMAT_Y16_U16_V16_422_UNORM:
|
||||
case PIPE_FORMAT_Y16_U16V16_422_UNORM:
|
||||
case PIPE_FORMAT_R8_G8B8_420_UNORM:
|
||||
case PIPE_FORMAT_R8_B8G8_420_UNORM:
|
||||
case PIPE_FORMAT_G8_B8R8_420_UNORM:
|
||||
case PIPE_FORMAT_R8_G8B8_422_UNORM:
|
||||
case PIPE_FORMAT_R8_B8G8_422_UNORM:
|
||||
case PIPE_FORMAT_G8_B8R8_422_UNORM:
|
||||
case PIPE_FORMAT_R8_G8_B8_420_UNORM:
|
||||
case PIPE_FORMAT_R8_B8_G8_420_UNORM:
|
||||
case PIPE_FORMAT_G8_B8_R8_420_UNORM:
|
||||
case PIPE_FORMAT_R10_G10B10_420_UNORM:
|
||||
case PIPE_FORMAT_R10_G10B10_422_UNORM:
|
||||
case PIPE_FORMAT_X6G10_X6B10X6R10_420_UNORM:
|
||||
case PIPE_FORMAT_X4G12_X4B12X4R12_420_UNORM:
|
||||
return !plane ? width : (width + 1) / 2;
|
||||
default:
|
||||
return width;
|
||||
@@ -1374,6 +1387,15 @@ util_format_get_plane_height(enum pipe_format format, unsigned plane,
|
||||
case PIPE_FORMAT_P030:
|
||||
case PIPE_FORMAT_Y16_U16_V16_420_UNORM:
|
||||
case PIPE_FORMAT_Y8_U8_V8_440_UNORM:
|
||||
case PIPE_FORMAT_R8_G8B8_420_UNORM:
|
||||
case PIPE_FORMAT_R8_B8G8_420_UNORM:
|
||||
case PIPE_FORMAT_G8_B8R8_420_UNORM:
|
||||
case PIPE_FORMAT_R8_G8_B8_420_UNORM:
|
||||
case PIPE_FORMAT_R8_B8_G8_420_UNORM:
|
||||
case PIPE_FORMAT_G8_B8_R8_420_UNORM:
|
||||
case PIPE_FORMAT_R10_G10B10_420_UNORM:
|
||||
case PIPE_FORMAT_X6G10_X6B10X6R10_420_UNORM:
|
||||
case PIPE_FORMAT_X4G12_X4B12X4R12_420_UNORM:
|
||||
return !plane ? height : (height + 1) / 2;
|
||||
case PIPE_FORMAT_YV16:
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user