[PATCH driver/intel] Allow copy_front() to fail and clean up gracefully if it does
Chris Wilson
chris at chris-wilson.co.uk
Thu Sep 25 08:10:26 PDT 2014
On Thu, Sep 25, 2014 at 03:16:23PM +0200, Egbert Eich wrote:
> Chris Wilson writes:
> > On Wed, Sep 24, 2014 at 01:23:26PM +0200, Egbert Eich wrote:
> > > Chris Wilson writes:
> > > > On Wed, Sep 24, 2014 at 12:34:29PM +0200, Egbert Eich wrote:
> > > > >
> > > > > For panning one needs to be able to draw into the screen pixmap outside
> > > > > of the area exposed by the crtc.
> > > >
> > > > Note that the screen pixmap still exists and is drawn into by the
> > > > clients. What should happen with the panning is that the CRTC is updated
> > > > through set_mode_major which invalidates the new CRTC location in the big
> > > > screen Pixmap and the contents copied during the next shadow update.
> > > >
> > > > That's the theory at least...
> > >
> > > Ok, so this isn't working. I will look into this as it's easy for me
> > > to trigger this situation.
> >
> > Are you using an OpenGL compositor? So far bare X, awesome, dwm,
> > enlightenment and kwin/xrender behave correctly. But gnome-shell and
> > kwin/gl are broken, which is not an issue with the ddx.
> > -Chris
>
> With that patch from me which you accepted, yes, but even without it,
> a fallback should be used but this doesn't work.
> I found this:
> In sna_pixmap_move_to_gpu() you move a CPU bo to the GPU if available
> and feasable. Shouldn't you check for the proper pitch alignment as well?
Oh, it fails to test for scanout bo, right. That's a nasty little corner
case that only befalls a linear scanout.
> Without it, use_shadow() fails in sna_crtc_attach(), thus fb_get() is
> called for a bo that was previously created for the cpu which may not
> be what is expected by the GPU.
> Quickly hacking in a test for 64bit alignment (which isn't correct for
> all use cases) fixes the panning issue for me.
Good to know, thanks
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the xorg-devel
mailing list