(Fwd) Re: FW: Win32 XServer

Suhaib Siddiqi ssiddiqi@inspirepharm.com
Thu Nov 18 04:03:00 GMT 1999


> Forwarded message:
> From:     Self <KendallB>
> To: John Fortin <fortinj@ibm.net>
> Subject: Re: FW: Win32 XServer
> Date: Wed, 17 Nov 1999 21:04:16 -0800
>
> Hi John,
>
> > >  1. Forget about trying to get XF86_SVGA working
> direct to hardware
> > >     (at least initially; go back and try later if you
> really wish).
> >
> > 	Agreed..
>
> Well that is a relief. It seems to me that Suhaib is hell bent on
> getting XF86_SVGA to run natively under Win32 like it
> does on OS/2. A
> noble goal but a fruitless one given the bad design of Windows.

That what Mike and John refered to as negativve attitude.

As I suggested that instead of keep telling volunteer FRUITLESS
efforts, why not contribute.

If I would not have taken a "hell bent on getting XF86_SVGA to run
on Win32" atitude, XFree86 porting project would never had been
started.

My concept of doing a XF86 port along the line of Holger's approach
might be totally wrong, but someone needs to prove me wrong by
contributing, not by negative comments.

>
> > >  2. Don't try to directly program the hardware for
> graphics, mouse or
> > >     keyboard. Instead write the proper OS support
> functions for the X
> > >     event mechanims that talk to the Win32 event
> mechanism and/or
> > >     DirectInput.
> >
> > 	Mostly done
>
> Excellent. Sounds like you guys are coming a long way.
> Can you build
> this stuff without Cygwin, or does it still rely on
> Cygwin for it's
> Unix'isms?


Please note the name of project "CYGWIN-XFREE".
Not sure why you are so much opposed to Cygwin.  It is a marvelous
tool.

Now even Exceed supports Cygwin for X developers Kit (Exceed XDK).

I prefer to take a step by step approach.  Non-cygwin support MIGHT
be added later on.  I have already supplied you patches for
libraries and clients for MSVC.  This should allow developers to X
develop products without using cygwin1.dll.



>
> > >  3. Start out with an unaccelerated server (you can
> base it on
> > >    XF86_SVGA since the framework is all there), that uses
> > >    DirectDraw to draw directly on the video memory surface.
> >
> > 	Well, back buffer, then blit to primary.  back
> buffer is created
> > in user memory with a constant pointer so I don't have
> to lock the
> > backing surface...  Only the primary gets locked during
> the blit.
>
> The performance of such a server will not be what you
> would wish, due
> to the fact that all the blitting from system memory to
> video memory
> will be done in software. Hence the performance hit would
> be quite
> large (especially if screen->screen and solid fills are done with
> DirectX primitives to the framebuffer).


Mike's idea is to have an unaccelerated server working first.  This
would be a test-case and would allow us to make further progress.
I agree with Mike.  It is a very approach.

>
> If you do your locking right, you should have no problem
> rendering
> directly to the framebuffer. Disregard what the DirectX
> docs tell you
> about this; unless you are doing blending and need high speed
> framebuffer reads, direct framebuffer writes will be faster.
>
> Also note that if the performance issue is a problem, the XFree86
> server has a 'shadow buffer' mechanism built right in, so you can
> choose to have all drawing done to a system memory buffer
> at runtime
> (ie: then you can profile which is faster and choose the
> best one).
>
> > >  5. When the above all works, you can then use the
> DirectDraw BitBlt
> > >     functions to do solid blits, transparent blits
> and solid color
> > >     fills to get some form of acceleration. The blits
> and color fills
> > >     will make a *huge* difference, and at that point
> you will have a
> > >     *very* useable server.
> >
> > 	To be done at a later time..
>
> Once you get the basic stuff working, adding
> screen->screen blits and
> solid fills will be very easy. The performance benefit
> would also be
> very much worth it.
>


We would certainly look into it, but first have at least one
X-server working.

Suhaib


> > >  6. To make things faster, you can use GDI to draw on
> the primary
> > >     surface which would allow you to accelerate text,
> line drawing
> > >     and pattern fills.
> >
> > 	Personally, I don't like using the GDI. Since I
> have a buffer I
> > can 	access, I would almost rather use
> home-grown utilities.
> > However, I am not unwilling to be persuaded...
>
> The main issue here with using GDI is that you will get access to
> some stuff that can be accelerated in the graphics
> hardware, that you
> can't access via DirectX services. Using GDI for drawing
> lines will
> beat the pants of any software line drawing function
> (assuming you
> are rendering direct to the framebuffer). Text, lines and pattern
> fills will be the things you can speed up big time this
> way. Other
> stuff you can do in software using XAA...
>
> Regards,
>
> +---------------------------------------------------------------+
> |   SciTech Software - Building Truly Plug'n'Play Software!     |
> +---------------------------------------------------------------+
> | Kendall Bennett          | Email: KendallB@scitechsoft.com    |
> | Director of Engineering  | Phone: (530) 894 8400              |
> | SciTech Software, Inc.   | Fax  : (530) 894 9069              |
> | 505 Wall Street          | ftp  : ftp.scitechsoft.com         |
> | Chico, CA 95928, USA     | www  : http://www.scitechsoft.com  |
> +---------------------------------------------------------------+
>



More information about the Cygwin-xfree mailing list