On Tue, Feb 15, 2005 at 02:50:23PM -0800, Mark Vojkovich wrote:
>On Tue, 15 Feb 2005, David Dawes wrote:
>
>> On Tue, Feb 15, 2005 at 10:34:16AM -0800, Mark Vojkovich wrote:
>> >On Mon, 14 Feb 2005, David Dawes wrote:
>> >
>> >> On Mon, Feb 14, 2005 at 07:40:40PM -0800, Mark Vojkovich wrote:
>> >> >On Mon, 14 Feb 2005, Mark Vojkovich wrote:
>> >> >
>> >> >> On Mon, 14 Feb 2005, David Dawes wrote:
>> >> >>
>> >> >> > On Mon, Feb 14, 2005 at 04:00:18PM -0800, Mark Vojkovich wrote:
>> >> >> > >   I just updated on my dual-card system and with the update I see
>> >> >> > >a problem restoring the console that I did not see previously.  If
>> >> >> > >I startx on the primary card and then quit, the primary card is 
>> >> >> > >restored
>> >> >> > >correctly.  However, if I startx on both cards and quit, the
>> >> >> > >primary card is not restored correctly.  I have a hard time 
>> >> >> > >imagining
>> >> >> > >how it could be a driver issue since the "nv" driver knows nothing 
>> >> >> > >about
>> >> >> > >the other cards in the layout (nor should it) and does not change
>> >> >> > >its behavior when there is more than one card in the layout.  The
>> >> >> > >core server code, on the other hand, does.
>> >> >> > >
>> >> >> > >   Have there been changes to vgahw, RAC, PCI config code, console
>> >> >> > >code, etc... that may have caused this regression?
>> >> >> >
>> >> >> > Do you know approximately when this problem started?
>> >> >>
>> >> >>   I haven't updated in a long time on that machine.  I'll try to
>> >> >> figure out when, but I'm not sure how to do that reliably.
>> >> >
>> >> >   I can't tell when I last updated on this machine.
>> >>
>> >> Can you go back to 4.4 as a first step, or do you know it was post-4.4?
>> >
>> >   It worked fine with 4.4.  I built sometime after 4.4 but I'm
>> >not sure when.
>> >
>> >
>> >>
>> >> I tried 4.5.0 RC1 with a multi-head config using a Mach64 and i810,
>> >> and didn't see any problem like this.  I can try some other multi-head
>> >> configs later this week.
>> >
>> >
>> >    What OS are you on?  It could be something specific to Linux
>> >console/vt.
>>
>> That quick test was on Linux.  Without further information, I'd
>> suggest trying a snapshot from the last month or so, then work
>> backwards or forwards from there.  What do the console restoration
>> problems look like?
>
>   I'm left with just a blinking cursor.

I've reproduced this with another multi-head combination.  It turns out
that the i810 isn't a good test of font save/restore because it doesn't
overwrite that data during normal operation.

The problem is that the font data isn't getting saved/restored correctly,
as can be seen from the fact that running 'setfont' fixes things up.  A
4.4.99.901 server with 4.4.0 modules worked fine, and I tracked the
problem down to a change to the rac module:

    if (!flag) {
        ENABLE;
        return TRUE;
    }

The problem with this optimisation is that "flag" is only set for
"operating" state requirements, not for "setup" state.  RAC assumes that
setup state operations always need to be wrapped in multi-card
configurations.  To eliminate even this wrapping, additional flag bits
would be needed to describe setup state requirements, such as access to
VGA resources for font save/restore, etc.

David
_______________________________________________
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel

Reply via email to