Re: [PATCH] drm/i915/display: Disable AuxCCS framebuffers if built for Xe
On Wed, 2024-02-28 at 16:02 +0200, Juha-Pekka Heikkila wrote: > AuxCCS framebuffers don't work on Xe driver hence disable them > from plane capabilities until they are fixed. FlatCCS framebuffers > work and they are left enabled. CCS is left untouched for i915 > driver. > Fixes: 44e694958b95 ("drm/xe/display: Implement display support") > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > Signed-off-by: Juha-Pekka Heikkila > --- > drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c > b/drivers/gpu/drm/i915/display/skl_universal_plane.c > index e941e2e4fd14..860574d04f88 100644 > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > @@ -2295,6 +2295,9 @@ static u8 skl_get_plane_caps(struct drm_i915_private > *i915, > if (HAS_4TILE(i915)) > caps |= INTEL_PLANE_CAP_TILING_4; > > + if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915)) > + return caps; > + > if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { > caps |= INTEL_PLANE_CAP_CCS_RC; > if (DISPLAY_VER(i915) >= 12)
Re: [PATCH] drm/i915/display: Disable AuxCCS framebuffers if built for Xe
On Wed, 28 Feb 2024, Juha-Pekka Heikkila wrote: > AuxCCS framebuffers don't work on Xe driver hence disable them > from plane capabilities until they are fixed. FlatCCS framebuffers > work and they are left enabled. CCS is left untouched for i915 > driver. > > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > Signed-off-by: Juha-Pekka Heikkila Acked-by: Jani Nikula > --- > drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c > b/drivers/gpu/drm/i915/display/skl_universal_plane.c > index e941e2e4fd14..860574d04f88 100644 > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > @@ -2295,6 +2295,9 @@ static u8 skl_get_plane_caps(struct drm_i915_private > *i915, > if (HAS_4TILE(i915)) > caps |= INTEL_PLANE_CAP_TILING_4; > > + if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915)) > + return caps; > + > if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { > caps |= INTEL_PLANE_CAP_CCS_RC; > if (DISPLAY_VER(i915) >= 12) -- Jani Nikula, Intel
Re: [PATCH] drm/i915/display: Disable AuxCCS framebuffers if built for Xe
On Thu, 2024-02-29 at 16:44 +, Souza, Jose wrote: > On Wed, 2024-02-28 at 06:04 -0800, José Roberto de Souza wrote: > > On Wed, 2024-02-28 at 16:02 +0200, Juha-Pekka Heikkila wrote: > > > AuxCCS framebuffers don't work on Xe driver hence disable them > > > from plane capabilities until they are fixed. FlatCCS framebuffers > > > work and they are left enabled. CCS is left untouched for i915 > > > driver. > > > > > > > Reviewed-by: José Roberto de Souza > > This needs a Fixes tag so it gets backported to Linux 6.8. Tested on Xe KMD and fixed the issue at least on ADL-P, you can also add: Tested-by: José Roberto de Souza thank you > > > > > > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > > > Signed-off-by: Juha-Pekka Heikkila > > > --- > > > drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++ > > > 1 file changed, 3 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > b/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > index e941e2e4fd14..860574d04f88 100644 > > > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > @@ -2295,6 +2295,9 @@ static u8 skl_get_plane_caps(struct > > > drm_i915_private *i915, > > > if (HAS_4TILE(i915)) > > > caps |= INTEL_PLANE_CAP_TILING_4; > > > > > > + if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915)) > > > + return caps; > > > + > > > if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { > > > caps |= INTEL_PLANE_CAP_CCS_RC; > > > if (DISPLAY_VER(i915) >= 12) > > >
Re: [PATCH] drm/i915/display: Disable AuxCCS framebuffers if built for Xe
On Wed, 2024-02-28 at 06:04 -0800, José Roberto de Souza wrote: > On Wed, 2024-02-28 at 16:02 +0200, Juha-Pekka Heikkila wrote: > > AuxCCS framebuffers don't work on Xe driver hence disable them > > from plane capabilities until they are fixed. FlatCCS framebuffers > > work and they are left enabled. CCS is left untouched for i915 > > driver. > > > > Reviewed-by: José Roberto de Souza This needs a Fixes tag so it gets backported to Linux 6.8. > > > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > > Signed-off-by: Juha-Pekka Heikkila > > --- > > drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c > > b/drivers/gpu/drm/i915/display/skl_universal_plane.c > > index e941e2e4fd14..860574d04f88 100644 > > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > > @@ -2295,6 +2295,9 @@ static u8 skl_get_plane_caps(struct drm_i915_private > > *i915, > > if (HAS_4TILE(i915)) > > caps |= INTEL_PLANE_CAP_TILING_4; > > > > + if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915)) > > + return caps; > > + > > if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { > > caps |= INTEL_PLANE_CAP_CCS_RC; > > if (DISPLAY_VER(i915) >= 12) >
Re: [PATCH] drm/i915/display: Disable AuxCCS framebuffers if built for Xe
On Wed, 2024-02-28 at 16:02 +0200, Juha-Pekka Heikkila wrote: > AuxCCS framebuffers don't work on Xe driver hence disable them > from plane capabilities until they are fixed. FlatCCS framebuffers > work and they are left enabled. CCS is left untouched for i915 > driver. > Reviewed-by: José Roberto de Souza > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > Signed-off-by: Juha-Pekka Heikkila > --- > drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c > b/drivers/gpu/drm/i915/display/skl_universal_plane.c > index e941e2e4fd14..860574d04f88 100644 > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > @@ -2295,6 +2295,9 @@ static u8 skl_get_plane_caps(struct drm_i915_private > *i915, > if (HAS_4TILE(i915)) > caps |= INTEL_PLANE_CAP_TILING_4; > > + if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915)) > + return caps; > + > if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { > caps |= INTEL_PLANE_CAP_CCS_RC; > if (DISPLAY_VER(i915) >= 12)
Re: [PATCH] drm/i915/display: Disable AuxCCS framebuffers if built for Xe
On Mon, 26 Feb 2024, Juha-Pekka Heikkila wrote: > AuxCCS framebuffers don't work on Xe driver hence disable them > from plane capabilities until they are fixed. FlatCCS framebuffers > work and they are left enabled. CCS is left untouched for i915 > driver. > > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > Signed-off-by: Juha-Pekka Heikkila > --- > Let's try adding those ifdefs as IS_ENABLED(I915) will result in > warnings from checkpatch and there was wishes not to break > universal plane into smaller parts. IS_ENABLED(CONFIG_I915) is > always true when building both Xe and i915. Please ignore the checkpatch warning in this case. BR, Jani. > > .../gpu/drm/i915/display/skl_universal_plane.c | 17 + > 1 file changed, 17 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c > b/drivers/gpu/drm/i915/display/skl_universal_plane.c > index e941e2e4fd14..7e0a7283d01d 100644 > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > @@ -2283,6 +2283,15 @@ static bool gen12_plane_has_mc_ccs(struct > drm_i915_private *i915, > return plane_id < PLANE_SPRITE4; > } > > +static bool running_on_i915(void) > +{ > +#ifdef I915 > + return true; > +#else > + return false; > +#endif > +} > + > static u8 skl_get_plane_caps(struct drm_i915_private *i915, >enum pipe pipe, enum plane_id plane_id) > { > @@ -2295,6 +2304,14 @@ static u8 skl_get_plane_caps(struct drm_i915_private > *i915, > if (HAS_4TILE(i915)) > caps |= INTEL_PLANE_CAP_TILING_4; > > + /* > + * FIXME: Below if(running_on_i915()..) is because Xe driver > + * can't use AuxCCS framebuffers. Once they are fixed this need to be > + * removed. > + */ > + if (!running_on_i915() && !HAS_FLAT_CCS(i915)) > + return caps; > + > if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { > caps |= INTEL_PLANE_CAP_CCS_RC; > if (DISPLAY_VER(i915) >= 12) -- Jani Nikula, Intel
Re: [PATCH] drm/i915/display: Disable AuxCCS framebuffers if built for Xe
On 2.2.2024 22.51, Souza, Jose wrote: On Thu, 2024-01-25 at 08:07 -0800, José Roberto de Souza wrote: On Thu, 2024-01-25 at 17:56 +0200, Juha-Pekka Heikkila wrote: On 25.1.2024 17.28, Souza, Jose wrote: On Thu, 2024-01-25 at 17:25 +0200, Juha-Pekka Heikkila wrote: AuxCCS framebuffers don't work on Xe driver hence disable them from plane capabilities until they are fixed. FlatCCS framebuffers work and they are left enabled. CCS is left untouched for i915 deriver. Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 Signed-off-by: Juha-Pekka Heikkila --- drivers/gpu/drm/i915/display/skl_universal_plane.c | 8 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c index 511dc1544854..1521d829525a 100644 --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c @@ -2290,6 +2290,14 @@ static u8 skl_get_plane_caps(struct drm_i915_private *i915, if (HAS_4TILE(i915)) caps |= INTEL_PLANE_CAP_TILING_4; + /* +* FIXME: Below if(IS_ENABLED(CONFIG_I915)..) is because Xe driver +* can't use AuxCCS framebuffers. Once they are fixed this need to be +* removed. +*/ + if (!IS_ENABLED(CONFIG_I915) && !HAS_FLAT_CCS(i915)) + return caps; + functional but looks odd. would rather add a check inside of gen12_plane_has_mc_ccs() or 'if ((!IS_ENABLED(CONFIG_I915) && !HAS_FLAT_CCS(i915)) && gen12_plane_has_mc_ccs(i915, plane_id))' Hi Jose, not sure I understood your idea. Here need to be disabled all versions of aux ccs for Xe, not just mc ccs. ah misplace this this...please ignore. this is fine for something that will be fixed soon. Reviewed-by: José Roberto de Souza ping! something is holding from being merged? Patch results showed things didn't go as Jani had suggested. This would just break ccs for i915. I'll need to rewrite my original patch splitting it into smaller parts and see if I can take into account Ville's comment there. /Juha-Pekka
Re: [PATCH] drm/i915/display: Disable AuxCCS framebuffers if built for Xe
On Thu, 2024-01-25 at 08:07 -0800, José Roberto de Souza wrote: > On Thu, 2024-01-25 at 17:56 +0200, Juha-Pekka Heikkila wrote: > > On 25.1.2024 17.28, Souza, Jose wrote: > > > On Thu, 2024-01-25 at 17:25 +0200, Juha-Pekka Heikkila wrote: > > > > AuxCCS framebuffers don't work on Xe driver hence disable them > > > > from plane capabilities until they are fixed. FlatCCS framebuffers > > > > work and they are left enabled. CCS is left untouched for i915 > > > > deriver. > > > > > > > > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > > > > Signed-off-by: Juha-Pekka Heikkila > > > > --- > > > > drivers/gpu/drm/i915/display/skl_universal_plane.c | 8 > > > > 1 file changed, 8 insertions(+) > > > > > > > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > > b/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > > index 511dc1544854..1521d829525a 100644 > > > > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > > @@ -2290,6 +2290,14 @@ static u8 skl_get_plane_caps(struct > > > > drm_i915_private *i915, > > > > if (HAS_4TILE(i915)) > > > > caps |= INTEL_PLANE_CAP_TILING_4; > > > > > > > > + /* > > > > +* FIXME: Below if(IS_ENABLED(CONFIG_I915)..) is because Xe > > > > driver > > > > +* can't use AuxCCS framebuffers. Once they are fixed this need > > > > to be > > > > +* removed. > > > > +*/ > > > > + if (!IS_ENABLED(CONFIG_I915) && !HAS_FLAT_CCS(i915)) > > > > + return caps; > > > > + > > > > > > functional but looks odd. > > > would rather add a check inside of gen12_plane_has_mc_ccs() or 'if > > > ((!IS_ENABLED(CONFIG_I915) && !HAS_FLAT_CCS(i915)) && > > > gen12_plane_has_mc_ccs(i915, > > > plane_id))' > > > > Hi Jose, > > > > not sure I understood your idea. Here need to be disabled all versions > > of aux ccs for Xe, not just mc ccs. > > ah misplace this this...please ignore. > > this is fine for something that will be fixed soon. > > Reviewed-by: José Roberto de Souza ping! something is holding from being merged? > > > > > > > > > > > > if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { > > > > caps |= INTEL_PLANE_CAP_CCS_RC; > > > > if (DISPLAY_VER(i915) >= 12) > > > > > >
Re: [PATCH] drm/i915/display: Disable AuxCCS framebuffers if built for Xe
On Thu, 2024-01-25 at 17:56 +0200, Juha-Pekka Heikkila wrote: > On 25.1.2024 17.28, Souza, Jose wrote: > > On Thu, 2024-01-25 at 17:25 +0200, Juha-Pekka Heikkila wrote: > > > AuxCCS framebuffers don't work on Xe driver hence disable them > > > from plane capabilities until they are fixed. FlatCCS framebuffers > > > work and they are left enabled. CCS is left untouched for i915 > > > deriver. > > > > > > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > > > Signed-off-by: Juha-Pekka Heikkila > > > --- > > > drivers/gpu/drm/i915/display/skl_universal_plane.c | 8 > > > 1 file changed, 8 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > b/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > index 511dc1544854..1521d829525a 100644 > > > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > > > @@ -2290,6 +2290,14 @@ static u8 skl_get_plane_caps(struct > > > drm_i915_private *i915, > > > if (HAS_4TILE(i915)) > > > caps |= INTEL_PLANE_CAP_TILING_4; > > > > > > + /* > > > + * FIXME: Below if(IS_ENABLED(CONFIG_I915)..) is because Xe driver > > > + * can't use AuxCCS framebuffers. Once they are fixed this need to be > > > + * removed. > > > + */ > > > + if (!IS_ENABLED(CONFIG_I915) && !HAS_FLAT_CCS(i915)) > > > + return caps; > > > + > > > > functional but looks odd. > > would rather add a check inside of gen12_plane_has_mc_ccs() or 'if > > ((!IS_ENABLED(CONFIG_I915) && !HAS_FLAT_CCS(i915)) && > > gen12_plane_has_mc_ccs(i915, > > plane_id))' > > Hi Jose, > > not sure I understood your idea. Here need to be disabled all versions > of aux ccs for Xe, not just mc ccs. ah misplace this this...please ignore. this is fine for something that will be fixed soon. Reviewed-by: José Roberto de Souza > > > > > > if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { > > > caps |= INTEL_PLANE_CAP_CCS_RC; > > > if (DISPLAY_VER(i915) >= 12) > > >
Re: [PATCH] drm/i915/display: Disable AuxCCS framebuffers if built for Xe
On 25.1.2024 17.28, Souza, Jose wrote: On Thu, 2024-01-25 at 17:25 +0200, Juha-Pekka Heikkila wrote: AuxCCS framebuffers don't work on Xe driver hence disable them from plane capabilities until they are fixed. FlatCCS framebuffers work and they are left enabled. CCS is left untouched for i915 deriver. Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 Signed-off-by: Juha-Pekka Heikkila --- drivers/gpu/drm/i915/display/skl_universal_plane.c | 8 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c index 511dc1544854..1521d829525a 100644 --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c @@ -2290,6 +2290,14 @@ static u8 skl_get_plane_caps(struct drm_i915_private *i915, if (HAS_4TILE(i915)) caps |= INTEL_PLANE_CAP_TILING_4; + /* +* FIXME: Below if(IS_ENABLED(CONFIG_I915)..) is because Xe driver +* can't use AuxCCS framebuffers. Once they are fixed this need to be +* removed. +*/ + if (!IS_ENABLED(CONFIG_I915) && !HAS_FLAT_CCS(i915)) + return caps; + functional but looks odd. would rather add a check inside of gen12_plane_has_mc_ccs() or 'if ((!IS_ENABLED(CONFIG_I915) && !HAS_FLAT_CCS(i915)) && gen12_plane_has_mc_ccs(i915, plane_id))' Hi Jose, not sure I understood your idea. Here need to be disabled all versions of aux ccs for Xe, not just mc ccs. if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { caps |= INTEL_PLANE_CAP_CCS_RC; if (DISPLAY_VER(i915) >= 12)
Re: [PATCH] drm/i915/display: Disable AuxCCS framebuffers if built for Xe
On Thu, 2024-01-25 at 17:25 +0200, Juha-Pekka Heikkila wrote: > AuxCCS framebuffers don't work on Xe driver hence disable them > from plane capabilities until they are fixed. FlatCCS framebuffers > work and they are left enabled. CCS is left untouched for i915 > deriver. > > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > Signed-off-by: Juha-Pekka Heikkila > --- > drivers/gpu/drm/i915/display/skl_universal_plane.c | 8 > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c > b/drivers/gpu/drm/i915/display/skl_universal_plane.c > index 511dc1544854..1521d829525a 100644 > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > @@ -2290,6 +2290,14 @@ static u8 skl_get_plane_caps(struct drm_i915_private > *i915, > if (HAS_4TILE(i915)) > caps |= INTEL_PLANE_CAP_TILING_4; > > + /* > + * FIXME: Below if(IS_ENABLED(CONFIG_I915)..) is because Xe driver > + * can't use AuxCCS framebuffers. Once they are fixed this need to be > + * removed. > + */ > + if (!IS_ENABLED(CONFIG_I915) && !HAS_FLAT_CCS(i915)) > + return caps; > + functional but looks odd. would rather add a check inside of gen12_plane_has_mc_ccs() or 'if ((!IS_ENABLED(CONFIG_I915) && !HAS_FLAT_CCS(i915)) && gen12_plane_has_mc_ccs(i915, plane_id))' > if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) { > caps |= INTEL_PLANE_CAP_CCS_RC; > if (DISPLAY_VER(i915) >= 12)