@@ -558,7 +558,7 @@ extern "C" {
558
558
*
559
559
* The main surface is Y-tiled and is at plane index 0 whereas CCS is linear
560
560
* and at index 1. The clear color is stored at index 2, and the pitch should
561
- * be ignored . The clear color structure is 256 bits. The first 128 bits
561
+ * be 64 bytes aligned . The clear color structure is 256 bits. The first 128 bits
562
562
* represents Raw Clear Color Red, Green, Blue and Alpha color each represented
563
563
* by 32 bits. The raw clear color is consumed by the 3d engine and generates
564
564
* the converted clear color of size 64 bits. The first 32 bits store the Lower
@@ -571,6 +571,53 @@ extern "C" {
571
571
*/
572
572
#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC fourcc_mod_code(INTEL, 8)
573
573
574
+ /*
575
+ * Intel Tile 4 layout
576
+ *
577
+ * This is a tiled layout using 4KB tiles in a row-major layout. It has the same
578
+ * shape as Tile Y at two granularities: 4KB (128B x 32) and 64B (16B x 4). It
579
+ * only differs from Tile Y at the 256B granularity in between. At this
580
+ * granularity, Tile Y has a shape of 16B x 32 rows, but this tiling has a shape
581
+ * of 64B x 8 rows.
582
+ */
583
+ #define I915_FORMAT_MOD_4_TILED fourcc_mod_code(INTEL, 9)
584
+
585
+ /*
586
+ * Intel color control surfaces (CCS) for DG2 render compression.
587
+ *
588
+ * The main surface is Tile 4 and at plane index 0. The CCS data is stored
589
+ * outside of the GEM object in a reserved memory area dedicated for the
590
+ * storage of the CCS data for all RC/RC_CC/MC compressible GEM objects. The
591
+ * main surface pitch is required to be a multiple of four Tile 4 widths.
592
+ */
593
+ #define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS fourcc_mod_code(INTEL, 10)
594
+
595
+ /*
596
+ * Intel color control surfaces (CCS) for DG2 media compression.
597
+ *
598
+ * The main surface is Tile 4 and at plane index 0. For semi-planar formats
599
+ * like NV12, the Y and UV planes are Tile 4 and are located at plane indices
600
+ * 0 and 1, respectively. The CCS for all planes are stored outside of the
601
+ * GEM object in a reserved memory area dedicated for the storage of the
602
+ * CCS data for all RC/RC_CC/MC compressible GEM objects. The main surface
603
+ * pitch is required to be a multiple of four Tile 4 widths.
604
+ */
605
+ #define I915_FORMAT_MOD_4_TILED_DG2_MC_CCS fourcc_mod_code(INTEL, 11)
606
+
607
+ /*
608
+ * Intel Color Control Surface with Clear Color (CCS) for DG2 render compression.
609
+ *
610
+ * The main surface is Tile 4 and at plane index 0. The CCS data is stored
611
+ * outside of the GEM object in a reserved memory area dedicated for the
612
+ * storage of the CCS data for all RC/RC_CC/MC compressible GEM objects. The
613
+ * main surface pitch is required to be a multiple of four Tile 4 widths. The
614
+ * clear color is stored at plane index 1 and the pitch should be 64 bytes
615
+ * aligned. The format of the 256 bits of clear color data matches the one used
616
+ * for the I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC modifier, see its description
617
+ * for details.
618
+ */
619
+ #define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC fourcc_mod_code(INTEL, 12)
620
+
574
621
/*
575
622
* Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
576
623
*
@@ -608,6 +655,28 @@ extern "C" {
608
655
*/
609
656
#define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1)
610
657
658
+ /*
659
+ * Qualcomm Tiled Format
660
+ *
661
+ * Similar to DRM_FORMAT_MOD_QCOM_COMPRESSED but not compressed.
662
+ * Implementation may be platform and base-format specific.
663
+ *
664
+ * Each macrotile consists of m x n (mostly 4 x 4) tiles.
665
+ * Pixel data pitch/stride is aligned with macrotile width.
666
+ * Pixel data height is aligned with macrotile height.
667
+ * Entire pixel data buffer is aligned with 4k(bytes).
668
+ */
669
+ #define DRM_FORMAT_MOD_QCOM_TILED3 fourcc_mod_code(QCOM, 3)
670
+
671
+ /*
672
+ * Qualcomm Alternate Tiled Format
673
+ *
674
+ * Alternate tiled format typically only used within GMEM.
675
+ * Implementation may be platform and base-format specific.
676
+ */
677
+ #define DRM_FORMAT_MOD_QCOM_TILED2 fourcc_mod_code(QCOM, 2)
678
+
679
+
611
680
/* Vivante framebuffer modifiers */
612
681
613
682
/*
@@ -1293,6 +1362,7 @@ drm_fourcc_canonicalize_nvidia_format_mod(uint64_t modifier)
1293
1362
#define AMD_FMT_MOD_TILE_VER_GFX9 1
1294
1363
#define AMD_FMT_MOD_TILE_VER_GFX10 2
1295
1364
#define AMD_FMT_MOD_TILE_VER_GFX10_RBPLUS 3
1365
+ #define AMD_FMT_MOD_TILE_VER_GFX11 4
1296
1366
1297
1367
/*
1298
1368
* 64K_S is the same for GFX9/GFX10/GFX10_RBPLUS and hence has GFX9 as canonical
@@ -1308,6 +1378,7 @@ drm_fourcc_canonicalize_nvidia_format_mod(uint64_t modifier)
1308
1378
#define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25
1309
1379
#define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26
1310
1380
#define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27
1381
+ #define AMD_FMT_MOD_TILE_GFX11_256K_R_X 31
1311
1382
1312
1383
#define AMD_FMT_MOD_DCC_BLOCK_64B 0
1313
1384
#define AMD_FMT_MOD_DCC_BLOCK_128B 1
0 commit comments