diff options
author | Christian König <[email protected]> | 2017-01-13 19:11:43 +0100 |
---|---|---|
committer | Christian König <[email protected]> | 2017-03-13 08:51:07 +0100 |
commit | 62cff793785ee203b086e4895bae0f78cc0748d7 (patch) | |
tree | 7b4ac8bf5054629f1377d750a51f3f39dcb9ec80 /src/gallium | |
parent | 920ab07566da8bbc95e12ed36da0c76f342066d9 (diff) |
gallium: add P016 format
Same layout as NV12, but 16bit per channel instead of 8.
Signed-off-by: Christian König <[email protected]>
Reviewed-by: Mark Thompson <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/auxiliary/util/u_format.csv | 2 | ||||
-rw-r--r-- | src/gallium/auxiliary/util/u_format_yuv.c | 19 | ||||
-rw-r--r-- | src/gallium/auxiliary/util/u_format_yuv.h | 19 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_format.h | 2 |
4 files changed, 42 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/util/u_format.csv b/src/gallium/auxiliary/util/u_format.csv index c26d7331d4c..cef530aae7c 100644 --- a/src/gallium/auxiliary/util/u_format.csv +++ b/src/gallium/auxiliary/util/u_format.csv @@ -320,6 +320,8 @@ PIPE_FORMAT_IYUV , other, 1, 1, x8 , x8 , x8 , x8 , xyzw, y PIPE_FORMAT_NV12 , other, 1, 1, x8 , x8 , x8 , x8 , xyzw, yuv PIPE_FORMAT_NV21 , other, 1, 1, x8 , x8 , x8 , x8 , xyzw, yuv +PIPE_FORMAT_P016 , other, 1, 1, x16 , x16 , , , xyzw, yuv + # Usually used to implement IA44 and AI44 formats in video decoding PIPE_FORMAT_A4R4_UNORM , plain, 1, 1, un4 , un4 , , , y00x, rgb, un4, un4 , , , x00y PIPE_FORMAT_R4A4_UNORM , plain, 1, 1, un4 , un4 , , , x00y, rgb, un4, un4 , , , y00x diff --git a/src/gallium/auxiliary/util/u_format_yuv.c b/src/gallium/auxiliary/util/u_format_yuv.c index 16ed8af7ba6..55f8ad68ec7 100644 --- a/src/gallium/auxiliary/util/u_format_yuv.c +++ b/src/gallium/auxiliary/util/u_format_yuv.c @@ -1015,6 +1015,25 @@ util_format_nv21_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, void util_format_nv21_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j) {} +void +util_format_p016_unpack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) {} +void +util_format_p016_pack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) {} +void +util_format_p016_unpack_rgba_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) {} +void +util_format_p016_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height) {} +void +util_format_p016_fetch_rgba_float(float *dst, const uint8_t *src, + unsigned i, unsigned j) {} void util_format_r8g8_r8b8_unorm_unpack_rgba_float(float *dst_row, unsigned dst_stride, diff --git a/src/gallium/auxiliary/util/u_format_yuv.h b/src/gallium/auxiliary/util/u_format_yuv.h index 41524d63f3a..d8e67b45940 100644 --- a/src/gallium/auxiliary/util/u_format_yuv.h +++ b/src/gallium/auxiliary/util/u_format_yuv.h @@ -266,6 +266,25 @@ void util_format_nv21_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j); void +util_format_p016_unpack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); +void +util_format_p016_pack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); +void +util_format_p016_unpack_rgba_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); +void +util_format_p016_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height); +void +util_format_p016_fetch_rgba_float(float *dst, const uint8_t *src, + unsigned i, unsigned j); +void util_format_r8g8_b8g8_unorm_unpack_rgba_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); diff --git a/src/gallium/include/pipe/p_format.h b/src/gallium/include/pipe/p_format.h index b22baa9c650..e4e09d8b435 100644 --- a/src/gallium/include/pipe/p_format.h +++ b/src/gallium/include/pipe/p_format.h @@ -389,6 +389,8 @@ enum pipe_format { PIPE_FORMAT_ASTC_12x10_SRGB = 305, PIPE_FORMAT_ASTC_12x12_SRGB = 306, + PIPE_FORMAT_P016 = 307, + PIPE_FORMAT_COUNT }; |