[PATCH driver/intel] Allow copy_front() to fail and clean up gracefully if it does
Egbert Eich
eich at suse.com
Thu Sep 25 06:16:23 PDT 2014
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?
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.
Cheers,
Egbert.
More information about the xorg-devel
mailing list