[git pull] drm for 5.8-rc1

Thierry Reding thierry.reding at gmail.com
Fri Aug 14 15:34:49 UTC 2020


On Fri, Aug 14, 2020 at 04:44:43PM +0200, Karol Herbst wrote:
> On Fri, Aug 14, 2020 at 4:05 PM Thierry Reding <thierry.reding at gmail.com> wrote:
> >
> > On Thu, Aug 13, 2020 at 10:45:34AM -0700, James Jones wrote:
> > > I'll defer to Thierry, but I think that may be by design.  Tegra format
> > > modifiers were added to get things like this working in the first place,
> > > right?  It's not a regression, is it?
> >
> > I recall that things used to work with or without modifiers at some
> > point. That was basically the point of the "pitch-linear by default"
> > patch, see:
> >
> >     https://gitlab.freedesktop.org/mesa/mesa/-/commit/9603d81df05105857b676f20dff964ef3ab0ecff
> >
> > If we don't force pitch-linear for cases where we don't have modifiers,
> > there's no way we can properly display these as framebuffers because we
> > lack the modifier information at the kernel level.
> >
> 
> I suspect that's related to
> https://gitlab.freedesktop.org/mesa/mesa/commit/c56fe4118a2dd991ff1b2a532c0f234eddd435e9

But we're checking the the PIPE_USAGE_SCANOUT flag specifically for that
type of case, so this should work. On the other hand, it does sound like
that logic might actually work, but for some reason Nouveau then ends up
allocating a linear render buffer and a tiled depth buffer, and that's
the combination that doesn't work. Did I understand that correctly?

So it sounds like there's a few options:

  a) Make Nouveau render without a depth buffer in these cases (not sure
     if that's even possible).

  b) Allocate a linear buffer *in addition* to the normal buffer that
     Nouveau allocates (with whatever it selects as the default layout)
     and then blit from the tiled buffer to the linear buffer everytime
     we need to. I think that'd be basically reproducing the code that
     is controlled by the DRI_PRIME environment variable.

  c) Accept that modifiers are the way to go and rely on them for proper
     functionality. This is obviously a really bad solution because not
     everyone has transitioned to framebuffer modifiers yet. On the
     other hand, this is precisely the kind of use-case that framebuffer
     modifiers were meant to address, so it isn't all that far-fetched
     to make them a requirement.

None of those are really great options... does anyone have any other
ideas?

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20200814/7e5700c7/attachment.sig>


More information about the dri-devel mailing list