Message ID | 20240228140225.858145-1-juhapekka.heikkila@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/display: Disable AuxCCS framebuffers if built for Xe | expand |
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 <jose.souza@intel.com> > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> > --- > 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)
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 <jose.souza@intel.com> 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 <juhapekka.heikkila@gmail.com> > > --- > > 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) >
On Thu, 2024-02-29 at 16:44 +0000, 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 <jose.souza@intel.com> > > 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 <jose.souza@intel.com> thank you > > > > > > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > > > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> > > > --- > > > 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) > > >
On Wed, 28 Feb 2024, Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> 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 <juhapekka.heikkila@gmail.com> Acked-by: Jani Nikula <jani.nikula@intel.com> > --- > 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)
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 <juhapekka.heikkila@gmail.com> > --- > 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)
Hi, On 05/03/2024 16:44, Jani Nikula wrote: > On Wed, 28 Feb 2024, Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> 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. I couldn't find the answer in the below linked issue or in the thread - is it known what exactly is missing/broken to make this work and are there any plans to do it? Or perhaps not if gen12lp is not intended to be supported? Thanks, Tvrtko >> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 >> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> > > Acked-by: Jani Nikula <jani.nikula@intel.com> > > >> --- >> 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) >
On Tue, Jan 28, 2025 at 3:08 PM Tvrtko Ursulin <tursulin@ursulin.net> wrote: > > > Hi, > > On 05/03/2024 16:44, Jani Nikula wrote: > > On Wed, 28 Feb 2024, Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> 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. > > I couldn't find the answer in the below linked issue or in the thread - > is it known what exactly is missing/broken to make this work and are > there any plans to do it? Or perhaps not if gen12lp is not intended to > be supported? As far as I know devices with AuxCCS are not intended to be supported. As for this patch, from display point of view these would work the same as before, just put compressed fb on screen and enable decompression but I figure there are parts missing from gem side to support AuxCCS. /Juha-Pekka > >> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 > >> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> > > > > Acked-by: Jani Nikula <jani.nikula@intel.com> > > > > > >> --- > >> 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) > >
On 28/01/2025 15:55, Juha-Pekka Heikkilä wrote: > On Tue, Jan 28, 2025 at 3:08 PM Tvrtko Ursulin <tursulin@ursulin.net> wrote: >> >> >> Hi, >> >> On 05/03/2024 16:44, Jani Nikula wrote: >>> On Wed, 28 Feb 2024, Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> 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. >> >> I couldn't find the answer in the below linked issue or in the thread - >> is it known what exactly is missing/broken to make this work and are >> there any plans to do it? Or perhaps not if gen12lp is not intended to >> be supported? > > As far as I know devices with AuxCCS are not intended to be supported. > > As for this patch, from display point of view these would work the same > as before, just put compressed fb on screen and enable decompression > but I figure there are parts missing from gem side to support AuxCCS. Right, I can dig in and try to figure out what are those missing GEM bits but I was hoping someone might know straight away to save me that initial digging around. Regards, Tvrtko >>>> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933 >>>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> >>> >>> Acked-by: Jani Nikula <jani.nikula@intel.com> >>> >>> >>>> --- >>>> 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) >>>
On Wed, Jan 29, 2025 at 10:44 AM Tvrtko Ursulin <tursulin@ursulin.net> wrote: > > > On 28/01/2025 15:55, Juha-Pekka Heikkilä wrote: > > On Tue, Jan 28, 2025 at 3:08 PM Tvrtko Ursulin <tursulin@ursulin.net> wrote: > >> > >> > >> Hi, > >> > >> On 05/03/2024 16:44, Jani Nikula wrote: > >>> On Wed, 28 Feb 2024, Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> 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. > >> > >> I couldn't find the answer in the below linked issue or in the thread - > >> is it known what exactly is missing/broken to make this work and are > >> there any plans to do it? Or perhaps not if gen12lp is not intended to > >> be supported? > > > > As far as I know devices with AuxCCS are not intended to be supported. > > > > As for this patch, from display point of view these would work the same > > as before, just put compressed fb on screen and enable decompression > > but I figure there are parts missing from gem side to support AuxCCS. > > Right, I can dig in and try to figure out what are those missing GEM > bits but I was hoping someone might know straight away to save me that > initial digging around. I wonder if Zbigniew would be able to give pointers, he's been working with this stuff at least on igt side. /Juha-Pekka
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)
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 <juhapekka.heikkila@gmail.com> --- drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++ 1 file changed, 3 insertions(+)