XLibre Xserver
Go to file
Jon Turney f5f4d32ac7 Add Windows-DRI extension
If windowsdriproto headers are available, build a Windows-DRI extension,
which supports requests to enable local clients to directly render GL to a
Windows drawable:

- a query to check if WGL is being used on a screen
- a query to map a fbconfigID to a native pixelformatindex
- a query to map a drawable to a native handle

Windows-DRI can only be useful if we are using WGL, so make an note if WGL
is active on a screen.

Make validGlxDrawable() public

Adjust glxWinSetPixelFormat() so it doesn't require a context, just a
screen and config.

That enables factoring out the deferred drawable creation code as
glxWinDeferredCreateDrawable()

Enhance glxWinDeferredCreateDrawable(), so that pixmaps are placed into a
file mapping, so they exist in memory which can be shared with the direct
rendering process.

Currently, this file mapping is accessed by a name generated from the XID.
This will not be unique across multiple server instances. It would perhaps
be better, although more complicated, to use an anonymous file mapping, and
then duplicate the handle for the direct rendering process.

Use glxWinDeferredCreateDrawable() to ensure the native handle exists for
the Windows-DRI query to map a drawable to native handle.

v2:
Various printf format warning fixes

v3:
Fix format warnings on x86
Move some uninteresting windows-dri output to debug log level

v4:
check for windowsdriproto when  --enable-windowsdri
use windowsdriproto_CFLAGS

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
2016-09-15 20:10:29 +01:00
Xext Xext/shm: Fix usage of F_GETFD to match standard 2016-09-13 10:00:51 -07:00
Xi Hold input lock while calling input device SetProperty callback 2016-09-15 07:50:34 +10:00
composite Remove readmask from screen block/wakeup handler 2016-07-18 15:27:51 -04:00
config config: Hold input lock across udev socket handling 2016-08-16 17:33:59 +10:00
damageext dix: Remove pointless client-state callbacks 2016-05-11 11:21:08 -04:00
dbe Convert top level extensions to new *allocarray functions 2015-04-21 16:57:08 -07:00
dix Hold input lock for deviceProc 2016-09-15 07:50:38 +10:00
doc Remove readmask from screen block/wakeup handler 2016-07-18 15:27:51 -04:00
dri3 dri3: Don't do return client->noClientException 2016-09-02 13:41:24 -04:00
exa Remove readmask from screen block/wakeup handler 2016-07-18 15:27:51 -04:00
fb Fix alphamap interactions with wfb 2015-09-29 12:21:34 -04:00
glamor glamor: Fix crash when master gpu is using glamor and another gpu is hotplugged 2016-09-13 10:26:35 +02:00
glx Add Windows-DRI extension 2016-09-15 20:10:29 +01:00
hw Add Windows-DRI extension 2016-09-15 20:10:29 +01:00
include Add Windows-DRI extension 2016-09-15 20:10:29 +01:00
m4 Add ax_pthread.m4 to m4/ 2016-05-29 19:20:51 -07:00
man Xserver.man: document more transports for -nolisten & -listen options 2015-10-28 14:16:28 -04:00
mi mi: Remove spurious call to OsReleaseSignals from mieqGrowQueue 2016-08-11 21:55:06 -07:00
miext Remove fd_set from Block/Wakeup handler API 2016-07-18 15:27:51 -04:00
os os: Use pthread_setname_np to set thread names if available 2016-09-13 16:55:26 -04:00
present present: Free the fake_present OsTimerPtr 2016-08-15 15:16:48 -04:00
pseudoramiX Convert top level extensions to new *allocarray functions 2015-04-21 16:57:08 -07:00
randr randr: Fix crtc_bounds when using rotation combined with reflection 2016-09-13 10:27:30 +02:00
record record: don't call RecordDeleteContext when AddResource fails 2016-03-08 10:20:04 -05:00
render exa: only draw valid trapezoids 2016-06-17 11:21:30 +02:00
test test: Run some XTS5 integration tests against Xvfb if possible. 2016-09-02 16:24:32 -04:00
xfixes dix: Remove pointless client-state callbacks 2016-05-11 11:21:08 -04:00
xkb xkb: fix check for appending '|' character when applying rules 2016-09-07 15:16:13 +10:00
.dir-locals.el Add .dir-locals.el 2013-08-17 12:17:36 +02:00
.gitignore .gitignore: Add new autotools file 'test-driver' 2014-04-21 13:41:42 -07:00
COPYING modesetting: Merge modesetting's COPYING into the xserver's. 2014-09-15 12:46:02 -07:00
Makefile.am DIST_SUBDIRS needs to include glamor, even if it isn't built 2014-02-13 15:25:56 -08:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
autogen.sh autogen: Set a default subject prefix for patches 2016-02-08 17:41:38 -05:00
configure.ac Add Windows-DRI extension 2016-09-15 20:10:29 +01:00
devbook.am doc: Create a script to filter xmlto output 2015-01-05 14:24:06 -08: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
manpages.am Xorg: Add a suid root wrapper 2014-03-12 08:50:05 +01: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