Wouter Coene wrote:

> A while ago I drew a nice picture that might help you understand the idea:
> 
>                  +----------+ +----------------+
>                  | VGA BIOS | | special driver |
>                  +----------+ +----------------+
>                 - -V- - -V- - - -|- -|- - -|- - -
>                  +----------+    |   |     |
>                  | VGA emu  |    |   |     |
>                  +----------+    |   |     |
>                    V     V       V   V     V
>                  +-----------------------------+
>                  |    display code in user     |
>                  +-----------------------------+
> 
> The idea is to provide the user space with accurate VGA emulation, so
> everything works as expected (I'm especially thinking about guest os'es that
> don't have special driver support (yet); the only drawback they would
> experience is lower performance).

This certainly is required stuff, else you presumably won't be able to
use any Windows since their setup uses VGA.
 
> If, on the other hand, the special driver is loaded, it might as well bypass
> the vga emulator completely, and send whatever it gets to do directly to the
> user-space, leaving Plex86 with stuff such as window moving (which would
> obviously be *much* faster).

This code for the special driver can (and presumably should) be
independent of the VGA-emu.

Our first step is to define the relation between "special driver" and
"display code in user".
 
> Not for the average Joe who needs to run Win9x under WinNT/2k for debugging
> a driver or such. 

If you do assume this as the most likely usage X is'nt a good choice,
on a windows host you will usually find no X-Server.

> And besides: X is *very* slow compared to directly passing
> the information.

If intend to run Plex86 on an Linux-Desktop, directly connecting to
the X-Server seems to be an good choice.

Using an LIBVGA solution in fullscreen-mode certainly will be faster.
But, you cannot use the UNIX and Guest Display in parallel.

On MS-Windows host X11 should not be used, there you will have to
interface directly to the GDI.

On designing the special driver we should keep in mind that the
host-code should be connectable to GDI, LIBVGA (or something similar)
and X11.

Elmar

Reply via email to