mbox series

[v2,0/4] Fixes for damage clips handling

Message ID 20220823112920.352563-1-jouni.hogander@intel.com (mailing list archive)
Headers show
Series Fixes for damage clips handling | expand

Message

Hogander, Jouni Aug. 23, 2022, 11:29 a.m. UTC
Currently damage clips handling is broken for planes when using big
framebuffer + offset in case kms driver adjusts drm_plane_state.src
coords. This is because damage clips are using coords relative to
original coords from user-space.

This patchset is fixing this by using original
coords from user-space instead of drm_plane_state.src when iterating
damage_clips.

v2: Modify drm unit tests accordingly

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Mika Kahola <mika.kahola@intel.com>
Cc: Maíra Canal <mairacanal@riseup.net>

Jouni Högander (4):
  drm: Use original src rect while initializing damage iterator
  drm/i915/display: Use original src in psr2 sel fetch area calculation
  drm/i915/display: Use drm helper instead of own loop for damage clips
  drm/tests: Set also mock plane src_x, src_y, src_w and src_h

 drivers/gpu/drm/drm_damage_helper.c           | 11 ++++++----
 drivers/gpu/drm/i915/display/intel_psr.c      | 20 +++++++------------
 .../gpu/drm/tests/drm_damage_helper_test.c    |  5 +++++
 3 files changed, 19 insertions(+), 17 deletions(-)

Comments

Ville Syrjala Sept. 13, 2022, 9:04 a.m. UTC | #1
On Tue, Aug 23, 2022 at 02:29:16PM +0300, Jouni Högander wrote:
> Currently damage clips handling is broken for planes when using big
> framebuffer + offset in case kms driver adjusts drm_plane_state.src
> coords. This is because damage clips are using coords relative to
> original coords from user-space.
> 
> This patchset is fixing this by using original
> coords from user-space instead of drm_plane_state.src when iterating
> damage_clips.
> 
> v2: Modify drm unit tests accordingly
> 
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: José Roberto de Souza <jose.souza@intel.com>
> Cc: Mika Kahola <mika.kahola@intel.com>
> Cc: Maíra Canal <mairacanal@riseup.net>
> 
> Jouni Högander (4):
>   drm: Use original src rect while initializing damage iterator
>   drm/i915/display: Use original src in psr2 sel fetch area calculation
>   drm/i915/display: Use drm helper instead of own loop for damage clips
>   drm/tests: Set also mock plane src_x, src_y, src_w and src_h

Do these need to be applied into the same tree, or can
the drm vs. i915 stuff go in separately?

> 
>  drivers/gpu/drm/drm_damage_helper.c           | 11 ++++++----
>  drivers/gpu/drm/i915/display/intel_psr.c      | 20 +++++++------------
>  .../gpu/drm/tests/drm_damage_helper_test.c    |  5 +++++
>  3 files changed, 19 insertions(+), 17 deletions(-)
> 
> -- 
> 2.34.1
Hogander, Jouni Sept. 13, 2022, 10:47 a.m. UTC | #2
On Tue, 2022-09-13 at 12:04 +0300, Ville Syrjälä wrote:
> On Tue, Aug 23, 2022 at 02:29:16PM +0300, Jouni Högander wrote:
> > Currently damage clips handling is broken for planes when using big
> > framebuffer + offset in case kms driver adjusts drm_plane_state.src
> > coords. This is because damage clips are using coords relative to
> > original coords from user-space.
> > 
> > This patchset is fixing this by using original
> > coords from user-space instead of drm_plane_state.src when
> > iterating
> > damage_clips.
> > 
> > v2: Modify drm unit tests accordingly
> > 
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Jani Nikula <jani.nikula@intel.com>
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Cc: José Roberto de Souza <jose.souza@intel.com>
> > Cc: Mika Kahola <mika.kahola@intel.com>
> > Cc: Maíra Canal <mairacanal@riseup.net>
> > 
> > Jouni Högander (4):
> >   drm: Use original src rect while initializing damage iterator
> >   drm/i915/display: Use original src in psr2 sel fetch area
> > calculation
> >   drm/i915/display: Use drm helper instead of own loop for damage
> > clips
> >   drm/tests: Set also mock plane src_x, src_y, src_w and src_h
> 
> Do these need to be applied into the same tree, or can
> the drm vs. i915 stuff go in separately?

Patch 1 and 2 are needed to fix that bigfb handling for i915. Patch 4
is also needed to prevent breaking tests. Patch 3 is more like cleanup.

I think i915 patches could go via i915 tree. This just means that i915
bigfb handling isn't fixed by either of the sets alone.
 
> 
> > 
> >  drivers/gpu/drm/drm_damage_helper.c           | 11 ++++++----
> >  drivers/gpu/drm/i915/display/intel_psr.c      | 20 +++++++--------
> > ----
> >  .../gpu/drm/tests/drm_damage_helper_test.c    |  5 +++++
> >  3 files changed, 19 insertions(+), 17 deletions(-)
> > 
> > -- 
> > 2.34.1
>
Thomas Zimmermann Sept. 13, 2022, 10:54 a.m. UTC | #3
Hi

Am 13.09.22 um 12:47 schrieb Hogander, Jouni:
> On Tue, 2022-09-13 at 12:04 +0300, Ville Syrjälä wrote:
>> On Tue, Aug 23, 2022 at 02:29:16PM +0300, Jouni Högander wrote:
>>> Currently damage clips handling is broken for planes when using big
>>> framebuffer + offset in case kms driver adjusts drm_plane_state.src
>>> coords. This is because damage clips are using coords relative to
>>> original coords from user-space.
>>>
>>> This patchset is fixing this by using original
>>> coords from user-space instead of drm_plane_state.src when
>>> iterating
>>> damage_clips.
>>>
>>> v2: Modify drm unit tests accordingly
>>>
>>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> Cc: Jani Nikula <jani.nikula@intel.com>
>>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>> Cc: José Roberto de Souza <jose.souza@intel.com>
>>> Cc: Mika Kahola <mika.kahola@intel.com>
>>> Cc: Maíra Canal <mairacanal@riseup.net>
>>>
>>> Jouni Högander (4):
>>>    drm: Use original src rect while initializing damage iterator
>>>    drm/i915/display: Use original src in psr2 sel fetch area
>>> calculation
>>>    drm/i915/display: Use drm helper instead of own loop for damage
>>> clips
>>>    drm/tests: Set also mock plane src_x, src_y, src_w and src_h
>>
>> Do these need to be applied into the same tree, or can
>> the drm vs. i915 stuff go in separately?
> 
> Patch 1 and 2 are needed to fix that bigfb handling for i915. Patch 4
> is also needed to prevent breaking tests. Patch 3 is more like cleanup.
> 
> I think i915 patches could go via i915 tree. This just means that i915
> bigfb handling isn't fixed by either of the sets alone.

I have a number of updates for damage handling that I want to get 
reviewed soon. Could you please merge your patchset via drm-misc-next?

Best regards
Thomas

>   
>>
>>>
>>>   drivers/gpu/drm/drm_damage_helper.c           | 11 ++++++----
>>>   drivers/gpu/drm/i915/display/intel_psr.c      | 20 +++++++--------
>>> ----
>>>   .../gpu/drm/tests/drm_damage_helper_test.c    |  5 +++++
>>>   3 files changed, 19 insertions(+), 17 deletions(-)
>>>
>>> -- 
>>> 2.34.1
>>
>
Thomas Zimmermann Sept. 13, 2022, 10:56 a.m. UTC | #4
Am 13.09.22 um 12:54 schrieb Thomas Zimmermann:
> Hi
> 
> Am 13.09.22 um 12:47 schrieb Hogander, Jouni:
>> On Tue, 2022-09-13 at 12:04 +0300, Ville Syrjälä wrote:
>>> On Tue, Aug 23, 2022 at 02:29:16PM +0300, Jouni Högander wrote:
>>>> Currently damage clips handling is broken for planes when using big
>>>> framebuffer + offset in case kms driver adjusts drm_plane_state.src
>>>> coords. This is because damage clips are using coords relative to
>>>> original coords from user-space.
>>>>
>>>> This patchset is fixing this by using original
>>>> coords from user-space instead of drm_plane_state.src when
>>>> iterating
>>>> damage_clips.
>>>>
>>>> v2: Modify drm unit tests accordingly
>>>>
>>>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>>>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>>> Cc: Jani Nikula <jani.nikula@intel.com>
>>>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>>> Cc: José Roberto de Souza <jose.souza@intel.com>
>>>> Cc: Mika Kahola <mika.kahola@intel.com>
>>>> Cc: Maíra Canal <mairacanal@riseup.net>
>>>>
>>>> Jouni Högander (4):
>>>>    drm: Use original src rect while initializing damage iterator
>>>>    drm/i915/display: Use original src in psr2 sel fetch area
>>>> calculation
>>>>    drm/i915/display: Use drm helper instead of own loop for damage
>>>> clips
>>>>    drm/tests: Set also mock plane src_x, src_y, src_w and src_h
>>>
>>> Do these need to be applied into the same tree, or can
>>> the drm vs. i915 stuff go in separately?
>>
>> Patch 1 and 2 are needed to fix that bigfb handling for i915. Patch 4
>> is also needed to prevent breaking tests. Patch 3 is more like cleanup.
>>
>> I think i915 patches could go via i915 tree. This just means that i915
>> bigfb handling isn't fixed by either of the sets alone.
> 
> I have a number of updates for damage handling that I want to get 
> reviewed soon. Could you please merge your patchset via drm-misc-next?

Or at least patches 1 and 4.

> 
> Best regards
> Thomas
> 
>>>
>>>>
>>>>   drivers/gpu/drm/drm_damage_helper.c           | 11 ++++++----
>>>>   drivers/gpu/drm/i915/display/intel_psr.c      | 20 +++++++--------
>>>> ----
>>>>   .../gpu/drm/tests/drm_damage_helper_test.c    |  5 +++++
>>>>   3 files changed, 19 insertions(+), 17 deletions(-)
>>>>
>>>> -- 
>>>> 2.34.1
>>>
>>
>
Ville Syrjala Sept. 13, 2022, 12:16 p.m. UTC | #5
On Tue, Sep 13, 2022 at 12:56:49PM +0200, Thomas Zimmermann wrote:
> 
> 
> Am 13.09.22 um 12:54 schrieb Thomas Zimmermann:
> > Hi
> > 
> > Am 13.09.22 um 12:47 schrieb Hogander, Jouni:
> >> On Tue, 2022-09-13 at 12:04 +0300, Ville Syrjälä wrote:
> >>> On Tue, Aug 23, 2022 at 02:29:16PM +0300, Jouni Högander wrote:
> >>>> Currently damage clips handling is broken for planes when using big
> >>>> framebuffer + offset in case kms driver adjusts drm_plane_state.src
> >>>> coords. This is because damage clips are using coords relative to
> >>>> original coords from user-space.
> >>>>
> >>>> This patchset is fixing this by using original
> >>>> coords from user-space instead of drm_plane_state.src when
> >>>> iterating
> >>>> damage_clips.
> >>>>
> >>>> v2: Modify drm unit tests accordingly
> >>>>
> >>>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> >>>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >>>> Cc: Jani Nikula <jani.nikula@intel.com>
> >>>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >>>> Cc: José Roberto de Souza <jose.souza@intel.com>
> >>>> Cc: Mika Kahola <mika.kahola@intel.com>
> >>>> Cc: Maíra Canal <mairacanal@riseup.net>
> >>>>
> >>>> Jouni Högander (4):
> >>>>    drm: Use original src rect while initializing damage iterator
> >>>>    drm/i915/display: Use original src in psr2 sel fetch area
> >>>> calculation
> >>>>    drm/i915/display: Use drm helper instead of own loop for damage
> >>>> clips
> >>>>    drm/tests: Set also mock plane src_x, src_y, src_w and src_h
> >>>
> >>> Do these need to be applied into the same tree, or can
> >>> the drm vs. i915 stuff go in separately?
> >>
> >> Patch 1 and 2 are needed to fix that bigfb handling for i915. Patch 4
> >> is also needed to prevent breaking tests. Patch 3 is more like cleanup.
> >>
> >> I think i915 patches could go via i915 tree. This just means that i915
> >> bigfb handling isn't fixed by either of the sets alone.
> > 
> > I have a number of updates for damage handling that I want to get 
> > reviewed soon. Could you please merge your patchset via drm-misc-next?
> 
> Or at least patches 1 and 4.

Went with the 50/50 split. Everything pushed now. Thanks.