[igt-dev] [PATCH i-g-t v4 02/16] include/drm-uapi: Introduce new Tile 4 format
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Mon Feb 21 07:15:27 UTC 2022
On Fri, Feb 18, 2022 at 02:39:22PM +0530, Jeevan B wrote:
> This tiling layout uses 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.
>
> Signed-off-by: Jeevan B <jeevan.b at intel.com>
> ---
> include/drm-uapi/drm_fourcc.h | 11 +++++++++++
> include/drm-uapi/i915_drm.h | 3 ++-
> 2 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/include/drm-uapi/drm_fourcc.h b/include/drm-uapi/drm_fourcc.h
> index 91b6a0fd..318b50fa 100644
> --- a/include/drm-uapi/drm_fourcc.h
> +++ b/include/drm-uapi/drm_fourcc.h
> @@ -559,6 +559,17 @@ extern "C" {
> */
> #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)
> +
> /*
> * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
> *
> diff --git a/include/drm-uapi/i915_drm.h b/include/drm-uapi/i915_drm.h
> index 9c9e1afa..75206fc3 100644
> --- a/include/drm-uapi/i915_drm.h
> +++ b/include/drm-uapi/i915_drm.h
> @@ -1522,13 +1522,14 @@ struct drm_i915_gem_caching {
> #define I915_TILING_NONE 0
> #define I915_TILING_X 1
> #define I915_TILING_Y 2
> +#define I915_TILING_4 3
> /*
> * Do not add new tiling types here. The I915_TILING_* values are for
> * de-tiling fence registers that no longer exist on modern platforms. Although
> * the hardware may support new types of tiling in general (e.g., Tile4), we
> * do not need to add them to the uapi that is specific to now-defunct ioctls.
> */
Looks comment + change are in a contradiction.
I think we should rework tiling a bit in IGT to break away from I915_TILING_*.
Newer gens supports different tilings and it would be good if we would have
single point of information what is supported on devid we're on.
--
Zbigniew
> -#define I915_TILING_LAST I915_TILING_Y
> +#define I915_TILING_LAST I915_TILING_4
>
> #define I915_BIT_6_SWIZZLE_NONE 0
> #define I915_BIT_6_SWIZZLE_9 1
> --
> 2.17.1
>
More information about the igt-dev
mailing list