[Openchrome-devel] fix typo in alloc check plus possible improvement
James Simmons
jsimmons
Mon Dec 5 09:32:24 PST 2011
> > Oops. Does the cursor still show up for the VX900 when this patch is
> > applied? I applied the patch
>
> Unfortunately, I don't have a VX900 but on my VX800 there was no improvement
> or degradation. Most of the time for me the HW cursor works, but sometimes a
> square with nearly random content (sometimes it seems to be distorted parts of
> some images) is shown.
I have noticed that distorted image as well.
> Oh, btw. today I recognized that the cursor's memory should be freed during
> VIACloseScreen(). Currently I get a "VIA Double Alloc" message in the
> subsequent VIAScreenInit().
Just toke a t look at xf86_cursors_fini. Nope it only handles the
xf86_cursor layer above the RandR crtc code so the cursor memory is not
freed. Now that I moved the cursor buffer object into the xf86Crtc private
data area I can release that memory on crtc destory. Nope xf86CrtcDestory
is never called. Okay the checkin over the weekend should fix that.
> > > 2. Changeset 1022 changed viaIsOffscreen so it can be used for EXA
> > > PixmapIsOffscreen function. But it did not actually use it for
> > > this
> > > purpose. This possible improvement is done by the attached patch
> > > use_viaExaIsOffscreen.patch.
> > >
> > > Maybe you've had good reasons not to do 2. If so, I'm quite interested
> > > in this reason... ;-)
> >
> > The reason is that from looking at the exa xorg code you also need to
> > provide exaPrepareAccess and exaFinishAccess.
>
> Ah, OK! Actually I didn't have a look at the exa xorg code, yet, and the
> comments in my local exa.h only say that PrepareAccess() and FinishAccess()
> are called before, respectively after, PixmapIsOffscreen(), not that these
> functions need to be provided by the driver... And, at least for me, the patch
> attached with my last mail "seems to work" ;-) .
I have a few more details to work out with the new buffer manager code but
I do plan to get around to cleaning up the EXA layer.
You can try the latest code. I did noticed one regression when you log out
of the a desktop. Thinking about it now I bet the issues is the secodn run
at the buffer manager initialization. I will take a crack at it in the
next few days.
More information about the Openchrome-devel
mailing list