[igt-dev] [PATCH i-g-t v4 02/16] include/drm-uapi: Introduce new Tile 4 format
Lisovskiy, Stanislav
stanislav.lisovskiy at intel.com
Tue Feb 22 16:41:37 UTC 2022
On Mon, Feb 21, 2022 at 08:15:27AM +0100, Zbigniew Kempczyński wrote:
> 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
Yes, Jeevan I think, you just need to place it where those I915_TILING_Yf/I915_TILING_Ys
are located. See your previous igt/lib patch.
Otherwise we are not supposed to use those modifiers here.
Stan
>
> > -#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