diff mbox series

[v5,09/10] drm/framebuffer/tgl: Format modifier for Intel Gen 12 render compression with Clear Color

Message ID 20191023000922.32247-1-radhakrishna.sripada@intel.com (mailing list archive)
State New, archived
Headers show
Series None | expand

Commit Message

Sripada, Radhakrishna Oct. 23, 2019, 12:09 a.m. UTC
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.

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>
---
 include/uapi/drm/drm_fourcc.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Comments

Chery, Nanley G Oct. 24, 2019, midnight UTC | #1
Hi RK,

> -----Original Message-----
> From: Sripada, Radhakrishna <radhakrishna.sripada@intel.com> 
> Sent: Tuesday, October 22, 2019 5:09 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>; Antognolli, Rafael <rafael.antognolli@intel.com>; Chery, Nanley G <nanley.g.chery@intel.com>
> Subject: [PATCH v5 09/10] drm/framebuffer/tgl: Format modifier for Intel Gen 12 render compression with Clear Color
> 
> 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.
> 
> 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>
> ---
>  include/uapi/drm/drm_fourcc.h | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h
> index 1aa6d468c048..6b4d36e0ccd0 100644
> --- a/include/uapi/drm/drm_fourcc.h
> +++ b/include/uapi/drm/drm_fourcc.h
> @@ -434,6 +434,24 @@ extern "C" {
>   */
>  #define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS fourcc_mod_code(INTEL, 7)
>  
> +/*
> + * Intel color control surfaces Clear Color(CCS_CC) for Gen-12 render compression.

A couple nit-picks here:
- It's not clear to me why "clear color" is capitalized but "color control surfaces" is not.
- It also isn't clear why "surfaces" is plural here but singular in the Y_TILED_CCS comment.
- A space is missing between "Color" and "(CCS_CC)". 
- Perhaps insert a "with" between "color control surface" and "clear color"?

> + *
> + * The main surface is Y-tiled and is at plane index 0 whereas CCS_CC is linear
> + * and at index 1. The clear color is stored at index 2, and the pitch should

I thought "CCS_CC" would be referring to the CCS with clear color, not the CCS
by itself. I can't find this term in the BSpec. Perhaps we shouldn't create a
new one here to avoid confusion?
 
-Nanley

> + * 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_CC 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.20.1
> 
>
diff mbox series

Patch

diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h
index 1aa6d468c048..6b4d36e0ccd0 100644
--- a/include/uapi/drm/drm_fourcc.h
+++ b/include/uapi/drm/drm_fourcc.h
@@ -434,6 +434,24 @@  extern "C" {
  */
 #define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS fourcc_mod_code(INTEL, 7)
 
+/*
+ * Intel color control surfaces Clear Color(CCS_CC) for Gen-12 render compression.
+ *
+ * The main surface is Y-tiled and is at plane index 0 whereas CCS_CC 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_CC 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
  *