blob: 1774107d6348b6a9767b02cbeca5d7e5ad1a6e0f [file] [log] [blame]
Getting MiniGLX up and running
------------------------------
It's necessary to do a bit of work to set up an environment to run miniglx.
For the radeon driver, it's necessary to get the right set of kernel
modules installed before attempting to run any programs:
rmmod radeon agpgart;
insmod agpgart;
insmod $(MESA)/src/kernel/radeonfb/radeonfb.o;
insmod $(MESA)/src/kernel/radeon/radeon.o;
For all drivers, its necessary to reach the compiled libraries, and
tell MiniGLX where to find it's configuration file:
export LD_LIBRARY_PATH=$(MESA)/lib;
export MINIGLX_CONF=$(MESA)/lib/miniglx.conf
------------------------------------------------------------
MiniGLX Example Programs
------------------------
The following programs will work with miniglx:
$(MESA)/tests/miniglx
$(MESA)/xdemos/glxgears
Thanks to the miniglut stub library, most of the mesa glut demos will
work. In particular, the following have been tested. (Note there is
no keyboard or mouse interaction with these demos).
$(MESA)/demos/gears
$(MESA)/demos/geartrain
$(MESA)/demos/morph3d
$(MESA)/demos/isosurf
$(MESA)/demos/texobj
$(MESA)/demos/texcyl
$(MESA)/demos/gloss
$(MESA)/demos/fire
$(MESA)/demos/tunnel
$(MESA)/demos/teapot
$(MESA)/samples/prim
$(MESA)/samples/olympic
$(MESA)/samples/star
$(MESA)/samples/wave
...etc
In fact most of the glut demos seem to work within the constraints of
having no keyboard/mouse interactivity. Furthermore, the use of the
glut wrapper means that these programs don't require recompilation to
run under MiniGLX -- the same binary works with both regular GLX and
MiniGLX.
------------------------------------------------------------
Porting GLX apps to MiniGLX
---------------------------
A quick list of issues encountered in porting existing GLX apps to
MiniGLX. Listed in no particular order.
1) No input events
MiniGLX doesn't provide an input layer, so any X11 input event
handling in the existing app will have to be redone for whatever
input devices exist on the target.
2) No configuration, expose events
Many GLX and Xlib programs wait on an event to ensure the window has
become visible after being mapped. MiniGLX provides no equivalent
facility.
3) Different headers
X11/Xlib.h, GL/GLX.h, etc must not be used if the program is being
compiled against MiniGLX.
The equivalent header is GL/MiniGLX.h.
4) Different library
It may be necessary to link directly against the minGLX libGL.so.
5) Reduced number of Xlib and GLX entrypoints.
By definition (MiniGLX is a subset of GLX), many Xlib and GLX
entrypoints, structures and macros are not present in MiniGLX. It
will be necessary to find and eliminate all references to
non-supported entrypoints.
---------------------------------------------------------------
Bugs in radeonfb.o -- the radeon framebuffer driver.
----------------------------------------------------
Several bugs have been found in the radeonfb.o framebuffer driver.
Most of these are resolved in the version included in the MiniGLX
sources, but some remain:
1) Occasionally, after entering graphics mode, colors appear 'shifted'
or 'translated', particularly in higher resolution modes. This is
definitely a bug in radeonfb.o as this can be provoked even when using
the software dri driver (fb_dri.so). Importance: High. Workaround:
Use 800x600 as it seems to be less frequent at this resolution,
otherwise, restart the application.