This is the mail archive of the cygwin-xfree@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Beta version of new X-server



Thanks to Dr. Peter Busch (pbusch@dfki.de) for providing
code for new X-server and Display drivers for it.

I have uploaded to ftp://sourceware.cygnus.com/pub/cygwin/xfree
the following files

1) ntux_ddx.tar.bz2  (Source code for ntus_ddx.dll.  You will MSVC to
compile it.)

2) xfddx.tar.bz2 (Binary and source code for xfddx Windows NT Virtual
Display Driver.  You will need
MSVC and NT DDK to compile the code.  Binaries are included in the same
archive).

3)xfddx_x_server_binary.tar.bz2 (Binaries of X-server.  You will need
xfddx.tar.bz2 in addition to this archive)

4) xfddx_x_server_src.tar.bz2 (Source code for X-server, only)

Currently Server works only in 256 colors mode.

XFDDX driver access Windows default Display video adapter therefore Cygwin
compilers are not suited
for it.  Without MSVC and NTDDK, please do not atempt to compile the drivers
code.

The Servers were tested on Windows NT and Windows 2000, only.

PLEASE READ THE ATTACHED README FILE before attempting to install the NT
Virtual Display Driver (XFDDX.dll).

Our future enhancements to  Cygwin/XFree servers will make use of Dr. Busch
contributed drivers
and codes.

I am working to use his drivers with Karra's DirectX based X-server.  It
will allow to integrate
DirectX based X-server into Windows Desktop.

Till Firday, I will be busy, therefore I would update Cygwin/XFree URL over
the weekend and add
the README files from Dr. Busch code to FAQ for Cygwin/XFree.

I also plan to merge his source code to XFree86 4.0 source tree, but merged
source tree will be released
after XFree86 4.0 would be officially released this month by XFree86 Inc.

Have Fun!!!

Suhaib


xfddx.readme.txt
(C) peter busch <pbusch@dfki.de>


Description of the xfddx virtual NT display driver


1. What it is
Xfddx is a virtual NT display driver whose purpose is to provide an kernel
mode graphics interface for the Cygwin/XFree X Server project.

2. Installation
This release of xfddx must be installed manually.
Proceed as follows

	- locate your NT installation path (called <WINDIR>, for example C:\winnt)
	- copy xfddx.dll to the <WINDIR>\system32 directory
	- launch the regedit or(regedt32) registry management tool
	- examine the key 
		HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\VIDEO\Video0
		( looks like 
		\REGISTRY\Machine\System\ControlSet003\Services\xxx\Device0
		where xxx is the installed graphics driver )
	- open the 
		HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\xxx\Device0\InstalledDisplayDrivers 
		subkey
	- save the contents of this key for later deinstallation
	- create a textfile named xfddx_aux.cfg in your 
		<WINDIR>\system32 subdirectory
		containing the (first string of) the contents of that key plus
		the extension '.dll' ( example : mga64.dll )
	- change the entry (or the first string in the entry )
		to xfddx				
	- reboot the machine

	- if something goes wrong boot into VGA mode and deinstall xfddx

3. Deinstallation
	- restore the contents of the
		HKEY_LOCAL_MACHINE\CurrentControlSet\Services\xxx\Device0\InstalledDisplayDrivers 
	  key
	- reboot the machine

4. Properties

4.1 Initialization 
After loading the xfddx driver loads the original NT display driver
(described in the xfddx_aux.cfg text file). All NT graphics output is
handled by the original driver.

4.2 Mapping capabilities
The xfddx driver provides a function to map the graphics adaptor video
frame buffer dynamically into the address space of any user mode process
via an Escape (Win 32: ExtEscape) call as described in the xfddx_escape
header file. The mapping is device independent (works even with banked 
frame buffers).
This feature can be used to implement (the output of) a framebuffer X Server
based on the xvfb code.

4.3 X Server GCops graphics calls
The xfddx driver provides a way to handle the X standard GCops calls via
calls to the installed original NT display driver ( inherently using all
accelerator capabilities of the installed graphics adapter available to
the installed NT display driver in a device independent way ). 
In this first version the GC functions are implemented as stubs only.
The GC calls are accessible to user mode processes through the Win32
DrawEscape.

4.4 Extension driver support
To promote extensibility, flexibility and to accelerate develpment cycles,
the xfddx driver can dynamically load/unload extension drivers.
Extension drivers are standard NT display drivers build with the NT DDK
like the xfddx module itself. 
An extension driver must provide the DrvEnableDriver function and may
additionally support other entry points.
Modified GCops routines and extensions (as GLX calls for example) can be
added dynamically by supporting the DrvDrawEscape request in an dynamically
loaded extension driver. 
Multiple extension drivers can be are supported. All extension drivers which
support the DrvEscape and DrvDrawEscape requests are called in their load 
order until one of them returns success and before the the corresponding
xfddx routine is executed.
The extension drivers DrvEnableDriver routines are called with the 
pded->pdrvfn argument pointing to a structure representing the original
NT display driver. If they need access to the functions of the NT display 
driver, they should save away this pointer before initializing the 
pded->pdrvfn field with the address of their DRVFN array.

5. Status and Tests
This is the first version of this driver. It was tested under NT 4 SP3 and
NT SP5 on two different machines with a Matrox G200 and a legacy S3 Trio 64
card (with banked frame buffer) in all available graphics modes except 16
color and monochrome modes ( which are managed by the standard NT VGA driver ).

Test machines were
Machine 1 - Dual Pentium II 333 on an ASUS P2BD Board with Matrox G200, 384MB 
Machine 2 - Single Pedntium 200 on ASUS T2P4 board 64MB

As mentioned above, this version provides the frame buffer mapping facility
and the extension management but the GC routines are implemented as stubs only.

6. How to build
The xfddx sources cannot be included in the Cygwin/XFree code tree since it
cannot be build with gcc.
To build it the NT 4 DDK must be installed. 
	- extract the xfddx.tgz file into <ddk_dir>/src/video/displays/xfddx
	- run the DDK build command




 
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]