include/drm/drm_fourcc.h: Update from Linux v6.0-rc7
Generated from the Linux v6.0-rc7 tag with a sha1 of f76349cf41451c5c42a99f18a9163377e4b364ff. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>main
parent
474894ed17
commit
e2504b921f
|
@ -104,6 +104,12 @@ extern "C" {
|
||||||
/* 8 bpp Red */
|
/* 8 bpp Red */
|
||||||
#define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ') /* [7:0] R */
|
#define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ') /* [7:0] R */
|
||||||
|
|
||||||
|
/* 10 bpp Red */
|
||||||
|
#define DRM_FORMAT_R10 fourcc_code('R', '1', '0', ' ') /* [15:0] x:R 6:10 little endian */
|
||||||
|
|
||||||
|
/* 12 bpp Red */
|
||||||
|
#define DRM_FORMAT_R12 fourcc_code('R', '1', '2', ' ') /* [15:0] x:R 4:12 little endian */
|
||||||
|
|
||||||
/* 16 bpp Red */
|
/* 16 bpp Red */
|
||||||
#define DRM_FORMAT_R16 fourcc_code('R', '1', '6', ' ') /* [15:0] R little endian */
|
#define DRM_FORMAT_R16 fourcc_code('R', '1', '6', ' ') /* [15:0] R little endian */
|
||||||
|
|
||||||
|
@ -308,6 +314,13 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
#define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
|
#define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
|
||||||
|
|
||||||
|
/* 2 plane YCbCr420.
|
||||||
|
* 3 10 bit components and 2 padding bits packed into 4 bytes.
|
||||||
|
* index 0 = Y plane, [31:0] x:Y2:Y1:Y0 2:10:10:10 little endian
|
||||||
|
* index 1 = Cr:Cb plane, [63:0] x:Cr2:Cb2:Cr1:x:Cb1:Cr0:Cb0 [2:10:10:10:2:10:10:10] little endian
|
||||||
|
*/
|
||||||
|
#define DRM_FORMAT_P030 fourcc_code('P', '0', '3', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel packed */
|
||||||
|
|
||||||
/* 3 plane non-subsampled (444) YCbCr
|
/* 3 plane non-subsampled (444) YCbCr
|
||||||
* 16 bits per component, but only 10 bits are used and 6 bits are padded
|
* 16 bits per component, but only 10 bits are used and 6 bits are padded
|
||||||
* index 0: Y plane, [15:0] Y:x [10:6] little endian
|
* index 0: Y plane, [15:0] Y:x [10:6] little endian
|
||||||
|
@ -373,6 +386,12 @@ extern "C" {
|
||||||
|
|
||||||
#define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
|
#define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
|
||||||
|
|
||||||
|
#define fourcc_mod_get_vendor(modifier) \
|
||||||
|
(((modifier) >> 56) & 0xff)
|
||||||
|
|
||||||
|
#define fourcc_mod_is_vendor(modifier, vendor) \
|
||||||
|
(fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_## vendor)
|
||||||
|
|
||||||
#define fourcc_mod_code(vendor, val) \
|
#define fourcc_mod_code(vendor, val) \
|
||||||
((((__u64)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
|
((((__u64)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
|
||||||
|
|
||||||
|
@ -540,7 +559,7 @@ extern "C" {
|
||||||
*
|
*
|
||||||
* The main surface is Y-tiled and is at plane index 0 whereas CCS is linear
|
* The main surface is Y-tiled and is at plane index 0 whereas CCS is linear
|
||||||
* and at index 1. The clear color is stored at index 2, and the pitch should
|
* and at index 1. The clear color is stored at index 2, and the pitch should
|
||||||
* be ignored. The clear color structure is 256 bits. The first 128 bits
|
* be 64 bytes aligned. The clear color structure is 256 bits. The first 128 bits
|
||||||
* represents Raw Clear Color Red, Green, Blue and Alpha color each represented
|
* represents Raw Clear Color Red, Green, Blue and Alpha color each represented
|
||||||
* by 32 bits. The raw clear color is consumed by the 3d engine and generates
|
* by 32 bits. The raw clear color is consumed by the 3d engine and generates
|
||||||
* the converted clear color of size 64 bits. The first 32 bits store the Lower
|
* the converted clear color of size 64 bits. The first 32 bits store the Lower
|
||||||
|
@ -553,6 +572,53 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC fourcc_mod_code(INTEL, 8)
|
#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC fourcc_mod_code(INTEL, 8)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Intel Tile 4 layout
|
||||||
|
*
|
||||||
|
* This is a tiled layout using 4KB tiles in a row-major layout. It has the same
|
||||||
|
* shape as Tile Y at two granularities: 4KB (128B x 32) and 64B (16B x 4). It
|
||||||
|
* only differs from Tile Y at the 256B granularity in between. At this
|
||||||
|
* granularity, Tile Y has a shape of 16B x 32 rows, but this tiling has a shape
|
||||||
|
* of 64B x 8 rows.
|
||||||
|
*/
|
||||||
|
#define I915_FORMAT_MOD_4_TILED fourcc_mod_code(INTEL, 9)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Intel color control surfaces (CCS) for DG2 render compression.
|
||||||
|
*
|
||||||
|
* The main surface is Tile 4 and at plane index 0. The CCS data is stored
|
||||||
|
* outside of the GEM object in a reserved memory area dedicated for the
|
||||||
|
* storage of the CCS data for all RC/RC_CC/MC compressible GEM objects. The
|
||||||
|
* main surface pitch is required to be a multiple of four Tile 4 widths.
|
||||||
|
*/
|
||||||
|
#define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS fourcc_mod_code(INTEL, 10)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Intel color control surfaces (CCS) for DG2 media compression.
|
||||||
|
*
|
||||||
|
* The main surface is Tile 4 and at plane index 0. For semi-planar formats
|
||||||
|
* like NV12, the Y and UV planes are Tile 4 and are located at plane indices
|
||||||
|
* 0 and 1, respectively. The CCS for all planes are stored outside of the
|
||||||
|
* GEM object in a reserved memory area dedicated for the storage of the
|
||||||
|
* CCS data for all RC/RC_CC/MC compressible GEM objects. The main surface
|
||||||
|
* pitch is required to be a multiple of four Tile 4 widths.
|
||||||
|
*/
|
||||||
|
#define I915_FORMAT_MOD_4_TILED_DG2_MC_CCS fourcc_mod_code(INTEL, 11)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Intel Color Control Surface with Clear Color (CCS) for DG2 render compression.
|
||||||
|
*
|
||||||
|
* The main surface is Tile 4 and at plane index 0. The CCS data is stored
|
||||||
|
* outside of the GEM object in a reserved memory area dedicated for the
|
||||||
|
* storage of the CCS data for all RC/RC_CC/MC compressible GEM objects. The
|
||||||
|
* main surface pitch is required to be a multiple of four Tile 4 widths. The
|
||||||
|
* clear color is stored at plane index 1 and the pitch should be 64 bytes
|
||||||
|
* aligned. The format of the 256 bits of clear color data matches the one used
|
||||||
|
* for the I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC modifier, see its description
|
||||||
|
* for details.
|
||||||
|
*/
|
||||||
|
#define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC fourcc_mod_code(INTEL, 12)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
|
* Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
|
||||||
*
|
*
|
||||||
|
@ -590,6 +656,28 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
#define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1)
|
#define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Qualcomm Tiled Format
|
||||||
|
*
|
||||||
|
* Similar to DRM_FORMAT_MOD_QCOM_COMPRESSED but not compressed.
|
||||||
|
* Implementation may be platform and base-format specific.
|
||||||
|
*
|
||||||
|
* Each macrotile consists of m x n (mostly 4 x 4) tiles.
|
||||||
|
* Pixel data pitch/stride is aligned with macrotile width.
|
||||||
|
* Pixel data height is aligned with macrotile height.
|
||||||
|
* Entire pixel data buffer is aligned with 4k(bytes).
|
||||||
|
*/
|
||||||
|
#define DRM_FORMAT_MOD_QCOM_TILED3 fourcc_mod_code(QCOM, 3)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Qualcomm Alternate Tiled Format
|
||||||
|
*
|
||||||
|
* Alternate tiled format typically only used within GMEM.
|
||||||
|
* Implementation may be platform and base-format specific.
|
||||||
|
*/
|
||||||
|
#define DRM_FORMAT_MOD_QCOM_TILED2 fourcc_mod_code(QCOM, 2)
|
||||||
|
|
||||||
|
|
||||||
/* Vivante framebuffer modifiers */
|
/* Vivante framebuffer modifiers */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -842,6 +930,10 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
|
||||||
* and UV. Some SAND-using hardware stores UV in a separate tiled
|
* and UV. Some SAND-using hardware stores UV in a separate tiled
|
||||||
* image from Y to reduce the column height, which is not supported
|
* image from Y to reduce the column height, which is not supported
|
||||||
* with these modifiers.
|
* with these modifiers.
|
||||||
|
*
|
||||||
|
* The DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT modifier is also
|
||||||
|
* supported for DRM_FORMAT_P030 where the columns remain as 128 bytes
|
||||||
|
* wide, but as this is a 10 bpp format that translates to 96 pixels.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) \
|
#define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) \
|
||||||
|
@ -1271,6 +1363,7 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
|
||||||
#define AMD_FMT_MOD_TILE_VER_GFX9 1
|
#define AMD_FMT_MOD_TILE_VER_GFX9 1
|
||||||
#define AMD_FMT_MOD_TILE_VER_GFX10 2
|
#define AMD_FMT_MOD_TILE_VER_GFX10 2
|
||||||
#define AMD_FMT_MOD_TILE_VER_GFX10_RBPLUS 3
|
#define AMD_FMT_MOD_TILE_VER_GFX10_RBPLUS 3
|
||||||
|
#define AMD_FMT_MOD_TILE_VER_GFX11 4
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 64K_S is the same for GFX9/GFX10/GFX10_RBPLUS and hence has GFX9 as canonical
|
* 64K_S is the same for GFX9/GFX10/GFX10_RBPLUS and hence has GFX9 as canonical
|
||||||
|
@ -1286,6 +1379,7 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
|
||||||
#define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25
|
#define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25
|
||||||
#define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26
|
#define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26
|
||||||
#define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27
|
#define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27
|
||||||
|
#define AMD_FMT_MOD_TILE_GFX11_256K_R_X 31
|
||||||
|
|
||||||
#define AMD_FMT_MOD_DCC_BLOCK_64B 0
|
#define AMD_FMT_MOD_DCC_BLOCK_64B 0
|
||||||
#define AMD_FMT_MOD_DCC_BLOCK_128B 1
|
#define AMD_FMT_MOD_DCC_BLOCK_128B 1
|
||||||
|
@ -1352,11 +1446,11 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
|
||||||
#define AMD_FMT_MOD_PIPE_MASK 0x7
|
#define AMD_FMT_MOD_PIPE_MASK 0x7
|
||||||
|
|
||||||
#define AMD_FMT_MOD_SET(field, value) \
|
#define AMD_FMT_MOD_SET(field, value) \
|
||||||
((uint64_t)(value) << AMD_FMT_MOD_##field##_SHIFT)
|
((__u64)(value) << AMD_FMT_MOD_##field##_SHIFT)
|
||||||
#define AMD_FMT_MOD_GET(field, value) \
|
#define AMD_FMT_MOD_GET(field, value) \
|
||||||
(((value) >> AMD_FMT_MOD_##field##_SHIFT) & AMD_FMT_MOD_##field##_MASK)
|
(((value) >> AMD_FMT_MOD_##field##_SHIFT) & AMD_FMT_MOD_##field##_MASK)
|
||||||
#define AMD_FMT_MOD_CLEAR(field) \
|
#define AMD_FMT_MOD_CLEAR(field) \
|
||||||
(~((uint64_t)AMD_FMT_MOD_##field##_MASK << AMD_FMT_MOD_##field##_SHIFT))
|
(~((__u64)AMD_FMT_MOD_##field##_MASK << AMD_FMT_MOD_##field##_SHIFT))
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue