Message ID | 20210114201314.783648-2-imre.deak@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/gen12: Add display render clear color decompression support | expand |
> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Imre > Deak > Sent: Thursday, January 14, 2021 10:13 PM > To: intel-gfx@lists.freedesktop.org > Cc: Chery, Nanley G <nanley.g.chery@intel.com>; Rafael Antognolli > <rafael.antognolli@intel.com>; Daniel Vetter <daniel.vetter@ffwll.ch>; > Nikula, Jani <jani.nikula@intel.com>; Pandiyan, Dhinakaran > <dhinakaran.pandiyan@intel.com>; Kondapally, Kalyan > <kalyan.kondapally@intel.com> > Subject: [Intel-gfx] [PATCH v7 1/3] drm/framebuffer: Format modifier for > Intel Gen 12 render compression with Clear Color > > From: Radhakrishna Sripada <radhakrishna.sripada@intel.com> > > Gen12 display can decompress surfaces compressed by render engine with > Clear Color, add a new modifier as the driver needs to know the surface was > compressed by render engine. > > V2: Description changes as suggested by Rafael. > V3: Mention the Clear Color size of 64 bits in the comments(DK) > v4: Fix trailing whitespaces > v5: Explain Clear Color in the documentation. > v6: Documentation Nitpicks(Nanley) > > Cc: Ville Syrjala <ville.syrjala@linux.intel.com> > Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> > Cc: Kalyan Kondapally <kalyan.kondapally@intel.com> > Cc: Rafael Antognolli <rafael.antognolli@intel.com> > Cc: Nanley Chery <nanley.g.chery@intel.com> > Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com> > Signed-off-by: Imre Deak <imre.deak@intel.com> > Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> > Acked-by: Jani Nikula <jani.nikula@intel.com> Looks ok to me. Reviewed-by: Mika Kahola <mika.kahola@intel.com> > --- > include/uapi/drm/drm_fourcc.h | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/include/uapi/drm/drm_fourcc.h > b/include/uapi/drm/drm_fourcc.h index 5f42a14481bd..f76de49c768f > 100644 > --- a/include/uapi/drm/drm_fourcc.h > +++ b/include/uapi/drm/drm_fourcc.h > @@ -527,6 +527,25 @@ extern "C" { > */ > #define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS > fourcc_mod_code(INTEL, 7) > > +/* > + * Intel Color Control Surface with Clear Color (CCS) for Gen-12 render > + * compression. > + * > + * 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 > + * be ignored. The clear color structure is 256 bits. The first 128 > +bits > + * 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 > + * the converted clear color of size 64 bits. The first 32 bits store > +the Lower > + * Converted Clear Color value and the next 32 bits store the Higher > +Converted > + * Clear Color value when applicable. The Converted Clear Color values > +are > + * consumed by the DE. The last 64 bits are used to store Color Discard > +Enable > + * and Depth Clear Value Valid which are ignored by the DE. A CCS cache > +line > + * corresponds to an area of 4x1 tiles in the main surface. The main > +surface > + * pitch is required to be a multiple of 4 tile widths. > + */ > +#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC > fourcc_mod_code(INTEL, > +8) > + > /* > * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks > * > -- > 2.25.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> -----Original Message----- > From: Imre Deak <imre.deak@intel.com> > Sent: Thursday, January 14, 2021 12:13 PM > To: intel-gfx@lists.freedesktop.org > Cc: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; Ville Syrjala > <ville.syrjala@linux.intel.com>; Pandiyan, Dhinakaran > <dhinakaran.pandiyan@intel.com>; Kondapally, Kalyan > <kalyan.kondapally@intel.com>; Rafael Antognolli > <rafael.antognolli@intel.com>; Chery, Nanley G > <nanley.g.chery@intel.com>; Daniel Vetter <daniel.vetter@ffwll.ch>; Nikula, > Jani <jani.nikula@intel.com> > Subject: [PATCH v7 1/3] drm/framebuffer: Format modifier for Intel Gen 12 > render compression with Clear Color > > From: Radhakrishna Sripada <radhakrishna.sripada@intel.com> > > Gen12 display can decompress surfaces compressed by render engine with > Clear Color, add a new modifier as the driver needs to know the surface > was compressed by render engine. > > V2: Description changes as suggested by Rafael. > V3: Mention the Clear Color size of 64 bits in the comments(DK) > v4: Fix trailing whitespaces > v5: Explain Clear Color in the documentation. > v6: Documentation Nitpicks(Nanley) > > Cc: Ville Syrjala <ville.syrjala@linux.intel.com> > Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> > Cc: Kalyan Kondapally <kalyan.kondapally@intel.com> > Cc: Rafael Antognolli <rafael.antognolli@intel.com> > Cc: Nanley Chery <nanley.g.chery@intel.com> > Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com> > Signed-off-by: Imre Deak <imre.deak@intel.com> > Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> > Acked-by: Jani Nikula <jani.nikula@intel.com> > --- > include/uapi/drm/drm_fourcc.h | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > Acked-by: Nanley Chery <nanley.g.chery@intel.com> > diff --git a/include/uapi/drm/drm_fourcc.h > b/include/uapi/drm/drm_fourcc.h > index 5f42a14481bd..f76de49c768f 100644 > --- a/include/uapi/drm/drm_fourcc.h > +++ b/include/uapi/drm/drm_fourcc.h > @@ -527,6 +527,25 @@ extern "C" { > */ > #define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS > fourcc_mod_code(INTEL, 7) > > +/* > + * Intel Color Control Surface with Clear Color (CCS) for Gen-12 render > + * compression. > + * > + * 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 > + * be ignored. The clear color structure is 256 bits. The first 128 bits > + * 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 > + * the converted clear color of size 64 bits. The first 32 bits store the Lower > + * Converted Clear Color value and the next 32 bits store the Higher > Converted > + * Clear Color value when applicable. The Converted Clear Color values are > + * consumed by the DE. The last 64 bits are used to store Color Discard > Enable > + * and Depth Clear Value Valid which are ignored by the DE. A CCS cache line > + * corresponds to an area of 4x1 tiles in the main surface. The main surface > + * pitch is required to be a multiple of 4 tile widths. > + */ > +#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC > fourcc_mod_code(INTEL, 8) > + > /* > * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks > * > -- > 2.25.1
diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h index 5f42a14481bd..f76de49c768f 100644 --- a/include/uapi/drm/drm_fourcc.h +++ b/include/uapi/drm/drm_fourcc.h @@ -527,6 +527,25 @@ extern "C" { */ #define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS fourcc_mod_code(INTEL, 7) +/* + * Intel Color Control Surface with Clear Color (CCS) for Gen-12 render + * compression. + * + * 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 + * be ignored. The clear color structure is 256 bits. The first 128 bits + * 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 + * the converted clear color of size 64 bits. The first 32 bits store the Lower + * Converted Clear Color value and the next 32 bits store the Higher Converted + * Clear Color value when applicable. The Converted Clear Color values are + * consumed by the DE. The last 64 bits are used to store Color Discard Enable + * and Depth Clear Value Valid which are ignored by the DE. A CCS cache line + * corresponds to an area of 4x1 tiles in the main surface. The main surface + * pitch is required to be a multiple of 4 tile widths. + */ +#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC fourcc_mod_code(INTEL, 8) + /* * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks *