Go to file
Zhigang Gong 430bc16ca0 GLX: Enable glx support.
If we are using MESA as our GL library, then both xserver's
GLX and glamor are link to the same library. As xserver's
GLX has its own _glapi_get/set_context/dispatch etc, and it
is a simplified version derived from mesa thus is not
sufficient for mesa/egl's dri loader which is used by glamor.

Then if glx module is loaded before glamoregl module, the
initialization of mesa/egl/opengl will not be correct, and
will fail at a very early stage, most likely fail to map
the element buffer.

Two methodis to fix this problem, first is to modify the xserver's
glx's glapi.c to fit mesa's requirement. The second is to put
a glamor.conf as below, to the system's xorg.conf path.

Section "Module"
        Load  "glamoregl"
EndSection

Then glamor will be loaded firstly, and the mesa's libglapi.so
will be used. As current xserver's dispatch table is the same
as mesa's, then the glx's dri loader can work without problem.

We took the second method as it don't need any change to xorg.:)
Although this is not a graceful implementation as it depends
on the xserver's dispatch table and the mesa's dispatch table
is the same and the context set and get is using the same method.
Anyway it works.

As by default, xserver will enable GLX_USE_TLS. But mesa will not
enable it, you may need to enable that when build mesa.

Three pre-requirements to make this glamor version work:

0. Make sure xserver has commit 66e603, if not please pull the latest
   master branch.
1. Rebuild mesa by enable GLX_USE_TLS.
2. Put the glamor.conf to your system's xorg.conf path and make sure
   it loaded prior to glx module.

Preliminary testing shows indirect glxgears works fine.

If user want to use GLES2 for glamor by using MESA, GLX will not
work correctly.

If you are not using normal MESA, for example PVR's private GLES
implementation, then it should be ok to use GLES2 glamor and the
GLX should work as expected. In this commit, I use gbm to check
whether we are using MESA or non-mesa. Maybe not the best way.

Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
2013-12-18 11:23:48 -08:00
composite composite: Fix COW creation for Xinerama (v2) 2013-12-09 13:20:36 -05:00
config xserver: enable InputClass option "GrabDevice" by default for non-seat0 seats (#69478) 2013-09-25 03:52:54 +10:00
damageext damageext: Die if we can't create the Xinerama resource type 2013-12-09 13:20:37 -05:00
dbe dbe: Fold the window private private into the window private 2013-09-10 13:28:24 -04:00
dix bs: Set the screen's bs support level to WhenMapped 2013-12-09 13:20:36 -05:00
doc doc: Update documentation about Windows platforms support a bit 2012-10-29 12:21:14 +00:00
dri3 dri3: Don't use the major/minor version from the protocol headers 2013-12-13 14:59:03 -05:00
exa Stop including inline assembly .il file for Solaris Studio builds 2013-11-14 13:12:21 +09:00
fb fb: Remove unused compatibility wrappers 2013-09-10 13:29:21 -04:00
glamor GLX: Enable glx support. 2013-12-18 11:23:48 -08:00
glx glx: Add null pointer protection to __glGetProcAddress 2013-12-13 15:07:48 -05:00
hw XQuartz: Use asl_log_descriptor to log stdout/stderr of child processes 2013-12-12 01:30:04 -08:00
include present: Don't use the major/minor version from the protocol headers 2013-12-13 14:59:04 -05:00
m4 XORG_TLS: Pick the first option that works (ie: prefer __thread) 2013-02-14 09:20:47 -08:00
man Correct description of -displayfd option in man page. 2012-10-11 12:53:57 +01:00
mi mieq: Bump default queue size to 512 2013-11-14 16:35:32 +09:00
miext miext/sync: Handle libxshmfence API change 2013-12-02 12:57:11 -08:00
os darwin: Don't leave stdin/stdout closed 2013-12-12 01:30:04 -08:00
present present: Don't use the major/minor version from the protocol headers 2013-12-13 14:59:04 -05:00
pseudoramiX Move pseudoramiX code where it can be shared between Xwin and Xquartz 2013-08-30 12:52:30 +01:00
randr randr: deliver Output and Crtc events of attached output providers. 2013-10-30 08:09:31 -07:00
record Avoid conflicts with Solaris <sys/regset.h> defines that clash with our names 2013-11-12 21:03:53 +09:00
render Abstract cursor refcounting 2013-05-15 19:17:57 +10:00
test test: build the touch test only when building Xorg 2013-11-14 16:35:15 +09:00
Xext damageext: Xineramify (v7) 2013-12-09 13:20:37 -05:00
xfixes fixes: Fix PanoramiXSetWindowShapeRegion for root windows (v2) 2013-12-09 13:20:37 -05:00
Xi Xi: fix logic error when calculating emulated motion events 2013-10-29 13:40:52 +10:00
xkb xkb: don't call atoi(NULL) when parsing argv 2013-07-02 15:12:29 +10:00
.dir-locals.el Add .dir-locals.el 2013-08-17 12:17:36 +02:00
.gitignore doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00
autogen.sh autogen.sh: Honor NOCONFIGURE=1 2012-10-19 13:12:33 +10:00
configure.ac Merge remote-tracking branch 'jeremyhu/master' 2013-12-16 09:27:57 -08:00
COPYING Shadow: Switch the Amiga/Atari bitplane code to the canonical X.Org license 2013-05-14 14:41:00 -07:00
devbook.am devbook.am: maintenance update from docbook.am 2011-09-21 14:07:52 -07:00
docbook.am docbook.am: embed css styles inside the HTML HEAD element 2011-09-21 14:07:49 -07:00
fix-miregion Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-miregion-private Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-patch-whitespace Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
fix-region Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
Makefile.am Add dri3 and present directorys to distribution 2013-11-01 01:45:22 -07:00
manpages.am Xdmx.man: Show actual configured XKB defaults instead of old hardcoded values 2011-06-21 17:54:14 -07:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: clarify documentation 2012-11-05 13:24:57 -06:00
xorg-server.pc.in xfree86: link modules against Xorg symbols on Cygwin 2012-04-05 21:57:07 -05:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage