I don't really know what the point of fbIsVirtual was.
Apps that use ShadowFBInit need to repaint when entering
the VT.  We didn't have the EnableDisableFBAccess stuff
when I wrote shadowfb and the refresh at EnterVT was to
catch the copy from the old root window backing pixmap.
With EnableDisableFBAccess handling exposures, it shouldn't
be needed anymore but we definitely don't want to 
block EnableDisableFBAccess like the code is doing.

It seems like having ShadowFBInit call ShadowFBInit2 with
FALSE is the correct behavior.  Experimentation shows
this to remove the corruption.

                        Mark.


On Mon, 17 Feb 2003, Alan Hourihane wrote:

> On Sun, Feb 16, 2003 at 06:57:27 -0500, Mark Vojkovich wrote:
> > On Sun, 16 Feb 2003, Guido Guenther wrote:
> > 
> > > On Sun, Feb 16, 2003 at 05:28:27PM -0500, Mark Vojkovich wrote:
> > > [..snip..]
> > > >       - Removal of old fullscreen update code (when VT switching)
> > > >   Does that correspond with the breakage?
> > > Yeah! Especially the above point looks suspicious. I'll see if I can
> > > check out a version prior to this and see if it works later this week.
> > > Thanks a lot,
> > >  -- Guido
> > 
> >   Those modifications did:
> > 
> >  static Bool
> > @@ -206,17 +271,9 @@ ShadowEnterVT(int index, int flags)
> >  {
> >      ScrnInfoPtr pScrn = xf86Screens[index];
> >      ShadowScreenPtr pPriv = GET_SCREEN_PRIVATE(pScrn->pScreen);
> > -    BoxRec box;
> >  
> >      if((*pPriv->EnterVT)(index, flags)) {
> >         pPriv->vtSema = TRUE;
> > -
> > -       box.x1 = box.y1 = 0;
> > -       box.x2 = pScrn->pScreen->width;
> > -       box.y2 = pScrn->pScreen->height;
> > -
> > -       (*pPriv->refresh)(pScrn, 1, &box);
> > -
> >          return TRUE;
> >      }
> > 
> >   Which appears to prevent the shadowfb code from repainting the
> > screen when entering the VT.  I don't know why that modification was 
> > made.  It will clearly leave a messed up screen when switching back.
> > I've just reproed that on x86.
> > 
> >    Does anyone know why that was removed?  It seems erroneous. 
> 
> Thinking some more,
> 
> The above code should probably be put back and wrapped with
> 
> if (fbIsVirtual) {
>       ....
>       ...
> }
> 
> Is Nolan Leake around here to comment ?
> 
> Alan.
> _______________________________________________
> Devel mailing list
> [EMAIL PROTECTED]
> http://XFree86.Org/mailman/listinfo/devel
> 

_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to