mbox series

[0/2] drm/tegra: handle implicit scanout modifiers

Message ID 20230120105858.214440-1-diogo.ivo@tecnico.ulisboa.pt
Headers show
Series drm/tegra: handle implicit scanout modifiers | expand

Message

Diogo Ivo Jan. 20, 2023, 10:58 a.m. UTC
Hello!

This patch series adds support for correctly displaying tiled
framebuffers when no modifiers are reported by userspace.

Patch 1 adds the sector_layout parameter to the SET/GET_TILING
IOCTLs so that userspace can set this field appropriately.

Patch 2 adds handling of the case where the buffer object
passed to create a framebuffer is allocated with non-linear
tiling but no modifier is reported.

Diogo Ivo (2):
  drm/tegra: add sector layout to SET/GET_TILING IOCTLs
  drm/tegra: add scanout support for implicit tiling parameters

 drivers/gpu/drm/tegra/drm.c  | 29 ++++++++++++++++++
 drivers/gpu/drm/tegra/fb.c   | 59 ++++++++++++++++++++++++++++++++++--
 include/uapi/drm/tegra_drm.h | 16 ++++++----
 3 files changed, 96 insertions(+), 8 deletions(-)

Comments

Thierry Reding Jan. 24, 2023, 2:25 p.m. UTC | #1
On Fri, Jan 20, 2023 at 10:58:56AM +0000, Diogo Ivo wrote:
> Hello!
> 
> This patch series adds support for correctly displaying tiled
> framebuffers when no modifiers are reported by userspace.
> 
> Patch 1 adds the sector_layout parameter to the SET/GET_TILING
> IOCTLs so that userspace can set this field appropriately.
> 
> Patch 2 adds handling of the case where the buffer object
> passed to create a framebuffer is allocated with non-linear
> tiling but no modifier is reported.
> 
> Diogo Ivo (2):
>   drm/tegra: add sector layout to SET/GET_TILING IOCTLs
>   drm/tegra: add scanout support for implicit tiling parameters
> 
>  drivers/gpu/drm/tegra/drm.c  | 29 ++++++++++++++++++
>  drivers/gpu/drm/tegra/fb.c   | 59 ++++++++++++++++++++++++++++++++++--
>  include/uapi/drm/tegra_drm.h | 16 ++++++----
>  3 files changed, 96 insertions(+), 8 deletions(-)

We really don't want to use SET_TILING and GET_TILING IOCTLs anymore.
These only exist for backwards compatibility with very old userspace.
New code should use standard DRM/KMS mechanisms to deal with
framebuffer modifiers.

Thierry
Diogo Ivo Jan. 30, 2023, 2:49 p.m. UTC | #2
On Tue, Jan 24, 2023 at 03:25:09PM +0100, Thierry Reding wrote:
> On Fri, Jan 20, 2023 at 10:58:56AM +0000, Diogo Ivo wrote:
> > Hello!
> > 
> > This patch series adds support for correctly displaying tiled
> > framebuffers when no modifiers are reported by userspace.
> > 
> > Patch 1 adds the sector_layout parameter to the SET/GET_TILING
> > IOCTLs so that userspace can set this field appropriately.
> > 
> > Patch 2 adds handling of the case where the buffer object
> > passed to create a framebuffer is allocated with non-linear
> > tiling but no modifier is reported.
> > 
> > Diogo Ivo (2):
> >   drm/tegra: add sector layout to SET/GET_TILING IOCTLs
> >   drm/tegra: add scanout support for implicit tiling parameters
> > 
> >  drivers/gpu/drm/tegra/drm.c  | 29 ++++++++++++++++++
> >  drivers/gpu/drm/tegra/fb.c   | 59 ++++++++++++++++++++++++++++++++++--
> >  include/uapi/drm/tegra_drm.h | 16 ++++++----
> >  3 files changed, 96 insertions(+), 8 deletions(-)
> 
> We really don't want to use SET_TILING and GET_TILING IOCTLs anymore.
> These only exist for backwards compatibility with very old userspace.
> New code should use standard DRM/KMS mechanisms to deal with
> framebuffer modifiers.

Hello,

Thank you for your review! This implementation is basically a copy of
what vc4 already does when importing resources with no modifiers
specified by userspace.

I looked into the DRM/KMS infrastructure and did not find a mechanism
to do this, but perhaps I am missing something; if this is the case,
I would be happy to submit a more fitting implementation, since handling
these implicit modifiers allows us to lift the restriction of linear
scanout buffers.

Best regards,
Diogo