Git init
authorKibum Kim <kb0929.kim@samsung.com>
Fri, 6 Jan 2012 16:09:00 +0000 (01:09 +0900)
committerKibum Kim <kb0929.kim@samsung.com>
Fri, 6 Jan 2012 16:09:00 +0000 (01:09 +0900)
18 files changed:
COPYING [new file with mode: 0644]
ChangeLog [new file with mode: 0755]
Makefile.am [new file with mode: 0755]
README [new file with mode: 0644]
autogen.sh [new file with mode: 0644]
configure.ac [new file with mode: 0755]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0755]
debian/copyright [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/watch [new file with mode: 0644]
debian/x11proto-dri2-dev.install [new file with mode: 0644]
dri2proto.h [new file with mode: 0755]
dri2proto.pc.in [new file with mode: 0644]
dri2proto.txt [new file with mode: 0755]
dri2tokens.h [new file with mode: 0755]
packaging/xorg-x11-proto-dri2proto.spec [new file with mode: 0755]

diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..a99b75a
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,29 @@
+Copyright © 2007 Red Hat, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Soft-
+ware"), to deal in the Software without restriction, including without
+limitation the rights to use, copy, modify, merge, publish, distribute,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, provided that the above copyright
+notice(s) and this permission notice appear in all copies of the Soft-
+ware and that both the above copyright notice(s) and this permission
+notice appear in supporting documentation.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
+RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
+QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
+MANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization of
+the copyright holder.
+
+Authors:
+  Kristian Høgsberg (krh@redhat.com)
diff --git a/ChangeLog b/ChangeLog
new file mode 100755 (executable)
index 0000000..f1adc90
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,257 @@
+commit 41045095bddfe460a76fb560e1d087430d8fd76f
+Author: Francisco Jerez <currojerez@riseup.net>
+Date:   Mon Feb 8 19:24:37 2010 +0100
+
+    Define an event to notify clients about the validity of their buffers.
+    
+    Bumps the protocol and package versions.
+    
+    Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+
+commit bd6f2584d3d55746bb56bf923b35e85adfd0dc3b
+Merge: 84eac7f 9c1a8f1
+Author: Jesse Barnes <jbarnes@virtuousgeek.org>
+Date:   Tue Dec 8 16:03:11 2009 -0800
+
+    Merge branch 'dri2-swapbuffers'
+
+commit 84eac7f37646d36c2644b8f6880c10c249068450
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 22 19:24:47 2009 -0500
+
+    Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES
+    
+    Now that the INSTALL file is generated.
+    Allows running make maintainer-clean.
+
+commit 499241b74322b984bbbee0803513e32b6f83bb31
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date:   Mon Oct 12 13:11:47 2009 -0700
+
+    Add a DRI2DriverVDPAU driver type.
+    
+    Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+    Acked-by: Kristian Høgsberg <krh@bitplanet.net>
+
+commit 0a5e388ae9c1306bb253c161071424e0282ea8f5
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Mon Nov 16 11:13:29 2009 -0500
+
+    README: file created or updated #24206
+    
+    Contains a set of URLs to freedesktop.org.
+
+commit 1b648b29caea1540abcb0ea7c35c45f749e160b4
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 19:45:26 2009 -0500
+
+    Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432
+    
+    ChangeLog filename is known to Automake and requires no further
+    coding in the makefile.
+
+commit 77eefcd20b38392a75e7c71a7e182dcfcaf3e7c3
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 18:31:28 2009 -0500
+
+    Makefile.am: INSTALL file is missing or incorrect #24206
+    
+    The standard GNU file on building/installing  tarball is copied
+    using the XORG_INSTALL macro contained in XORG_DEFAULT_OPTIONS
+    Add INSTALL target
+
+commit 2ddb34caa23048083232e592300cfee7b8c2f04f
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 18:11:36 2009 -0500
+
+    configure.ac: deploy the new XORG_DEFAULT_OPTIONS #24242
+    
+    This macro aggregate a number of existing macros that sets commmon
+    X.Org components configuration options. It shields the configuration file from
+    future changes.
+
+commit 363595cd28af5ff820e0790525108685bebf7275
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 13:55:25 2009 -0500
+
+    configure.ac: AM_MAINTAINER_MODE missing #24238
+    
+    This turns off maintainer mode build rules in tarballs.
+    Works in conjunction with autogen.sh --enable-maintainer-mode
+
+commit 9e8c94f5a55b0ba97cc1f8b34c1d58e50ea2c7f8
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sat Nov 14 18:26:46 2009 -0500
+
+    .gitignore: use common defaults with custom section # 24239
+    
+    Using common defaults will reduce errors and maintenance.
+    Only the very small or inexistent custom section need periodic maintenance
+    when the structure of the component changes. Do not edit defaults.
+
+commit 9c1a8f1d074bd7b87c4edf8b689c13c93fba9aaa
+Author: Jesse Barnes <jbarnes@jbarnes-desktop.localdomain>
+Date:   Thu Nov 12 17:23:03 2009 +0000
+
+    Fix cut & paste error: Extension Requests -> Extension Events
+
+commit 7c7e9bbf4ab6177e9623f3c4d667ed83789167b4
+Author: Jesse Barnes <jbarnes@jbarnes-desktop.localdomain>
+Date:   Thu Nov 12 15:26:40 2009 +0000
+
+    Add DRI2 event support for DRI2BufferSwapComplete
+
+commit f9e6b17debd2f69821bd8d412cccf02dd9ba17af
+Author: Jesse Barnes <jbarnes@jbarnes-desktop.localdomain>
+Date:   Wed Nov 11 15:26:40 2009 -0800
+
+    Pad out DRI2 swap buffers reply
+
+commit 516a1ff1f8ceca9ddefce21303e65d873aeeba14
+Author: Jesse Barnes <jbarnes@jbarnes-desktop.localdomain>
+Date:   Tue Nov 10 12:12:07 2009 -0800
+
+    Add DRI2SwapInterval protocol
+    
+    Needed to handle swap interval in the direct rendered case.
+
+commit 5e059038a95b5bad7f41a2019beaad913ed29502
+Author: Jesse Barnes <jbarnes@virtuousgeek.org>
+Date:   Thu Oct 29 12:45:48 2009 -0700
+
+    Bump package version to 2.2
+
+commit 1102a9199db8aa08e891f808f8921a5d312e3197
+Author: Jesse Barnes <jbarnes@virtuousgeek.org>
+Date:   Fri Oct 2 22:23:09 2009 -0700
+
+    Fix DRI2SwapBuffers reply length
+    
+    Length should be a CARD32 and match the endianness annotation.
+    
+    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+
+commit 29c7fcbf10508ec822ad528928b72702e4c9af01
+Author: Jesse Barnes <jbarnes@virtuousgeek.org>
+Date:   Thu Oct 1 22:13:34 2009 -0700
+
+    Add swap interval and synchronization support
+    
+    Based on SGI_video_sync, SGI_swap_control and OML_sync_control, add swap
+    interval and synchronization support to DRI2.  Useful for throttling rendering
+    and basic performance metrics.
+    
+    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+
+commit 00c15f92c1f294d762f2052f1d775c393ebd2432
+Author: Jesse Barnes <jbarnes@jbarnes-x200.(none)>
+Date:   Mon Jun 8 16:12:50 2009 -0700
+
+    Update protocol description for swapbuffers
+
+commit aaee5f8af4f0fe63498cd8ae507f8d33edba280c
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Wed Jun 3 17:36:43 2009 -0400
+
+    Make swapbuffers an async request
+    
+    The protocol now require a DRI2GetBuffersWithFormat request to follow the
+    swapbuffer request so.
+
+commit 9b5ef83c0b9ef0239ac82adfa9a816f195074dcb
+Author: Jesse Barnes <jbarnes@virtuousgeek.org>
+Date:   Fri May 1 14:41:55 2009 -0700
+
+    Add SwapBuffers request
+    
+    Add a SwapBuffers request for requesting a front<->back swap.  Returns a
+    whole new set of buffers to the client to allow for triple buffering
+    etc.
+
+commit 66c56ab10d917e3f47f93178d7eac6430970d3c4
+Author: Ian Romanick <idr@freedesktop.org>
+Date:   Mon Apr 20 21:16:24 2009 -0700
+
+    Add protocol for DRI2GetBuffersWithFormat
+    
+    This function replaces DRI2GetBuffers.
+    
+    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
+    Reviewed-by: Kristian Høgsberg <krh@redhat.com>
+
+commit a223ab5e6a215d86e4bf072369b331506f689f83
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Mon Apr 20 14:08:19 2009 -0400
+
+    Bump to 2.0 and release
+
+commit f46b6ca29b2da54cf6e6db57d464bea9476594c6
+Author: Julien Cristau <jcristau@debian.org>
+Date:   Fri Jan 9 06:07:59 2009 +0100
+
+    Distribute the protocol documentation
+
+commit ac787752bf67f8f1ea8167191e5fb9d7fbbe7c7f
+Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
+Date:   Tue Jan 27 20:06:28 2009 -0200
+
+    Janitor: Correct make distcheck and dont distribute autogen.sh
+
+commit 65c7097d549ada25d11738b15996b18c9e57a847
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Mon Dec 1 20:57:40 2008 -0500
+
+    Bump to 1.99.3 and back out the value bitmask from the CopyRegion request.
+
+commit f7b737bef90df4430ac491d65accc7742bc6ca38
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Mon Dec 1 14:01:42 2008 -0500
+
+    Bump version to 1.99.2.
+
+commit 8cab3f0e6f551220bd11074779f4ccec1e948e00
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Tue Oct 14 23:19:15 2008 -0400
+
+    Add protocol documentation, update to DRI2CopyRegion request.
+
+commit abb1edc487543c26856afdbe6a7e2c088a1e82ee
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Tue Aug 12 12:52:33 2008 -0400
+
+    Update to 1.99.1 - drop sarea and perform swap buffer in X server.
+    
+    Still to resolve is the swap buffer request.  It should probably be
+    broken into two requests, one to post the swap request and one to wait
+    for it to be completed.  Also, need to find a good solution to
+    CopySubBuffer that doesn't require a roundtrip per rectangle.
+    
+    Don't need to solve all this for 2.0, though, can add requests later on.
+
+commit b9d7a0c1b0f5b40dfe8ca7a33693198bf91244ca
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Wed Apr 2 19:11:32 2008 -0400
+
+    Adjust pkg-config cflags to match other proto modules.
+
+commit b515bee843d5ab91fc0fe30b8eb13aadd69b5131
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Wed Mar 26 16:00:05 2008 -0400
+
+    Add reemitDrawableInfo protocol.
+    
+    Also, remove the screen number where it's redundant and rename
+    drmDrawable in the create drawable request to just 'handle' now that
+    we don't rely on drm drawables.
+
+commit d2c2ffde8f3762af30ea6953d8a10b487f78733e
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Wed Mar 12 17:50:34 2008 -0400
+
+    Fix typo in xDRI2QueryVersionReq req type field.
+
+commit 672baf47cc5dfcdad4e70b4745e3316b209089a3
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Tue Mar 11 00:12:55 2008 -0400
+
+    Initial commit.
diff --git a/Makefile.am b/Makefile.am
new file mode 100755 (executable)
index 0000000..5990273
--- /dev/null
@@ -0,0 +1,20 @@
+dri2dir = $(includedir)/X11/extensions
+dri2_HEADERS = dri2proto.h dri2tokens.h
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = dri2proto.pc
+
+dist_doc_DATA = dri2proto.txt
+
+
+MAINTAINERCLEANFILES = ChangeLog INSTALL
+
+.PHONY: ChangeLog INSTALL
+
+INSTALL:
+       $(INSTALL_CMD)
+
+ChangeLog:
+       $(CHANGELOG_CMD)
+
+dist-hook: ChangeLog INSTALL
diff --git a/README b/README
new file mode 100644 (file)
index 0000000..1115e51
--- /dev/null
+++ b/README
@@ -0,0 +1,30 @@
+                       Direct Rendering Infrastructure 2 Extension
+
+This extension defines a protocol to securely allow user applications to access
+the video hardware without requiring data to be passed through the X server.
+
+Extension name: DRI2
+
+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/proto/dri2proto
+
+        http://cgit.freedesktop.org/xorg/proto/dri2proto
+
+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
+
diff --git a/autogen.sh b/autogen.sh
new file mode 100644 (file)
index 0000000..904cd67
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+
+autoreconf -v --install || exit 1
+cd $ORIGDIR || exit $?
+
+$srcdir/configure --enable-maintainer-mode "$@"
diff --git a/configure.ac b/configure.ac
new file mode 100755 (executable)
index 0000000..d671f5a
--- /dev/null
@@ -0,0 +1,13 @@
+AC_PREREQ([2.60])
+AC_INIT([DRI2Proto], [2.6], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AM_INIT_AUTOMAKE([foreign dist-bzip2])
+AM_MAINTAINER_MODE
+
+# Require xorg-macros: XORG_DEFAULT_OPTIONS
+m4_ifndef([XORG_MACROS_VERSION],
+          [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.3)
+XORG_DEFAULT_OPTIONS
+
+AC_OUTPUT([Makefile
+           dri2proto.pc])
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..b0bfaac
--- /dev/null
@@ -0,0 +1,108 @@
+x11proto-dri2 (2.3-6slp2) unstable; urgency=low
+
+  * update dri2 proto 
+  * Git: 165.213.180.234:slp/pkgs/xorg/proto/x11proto-dri2
+  * Tag: x11proto-dri2_2.3-6slp2
+
+ -- SooChan Lim <sc1.lim@samsung.com>  Mon, 10 Oct 2011 16:09:13 +0900
+
+x11proto-dri2 (2.3-5slp2) unstable; urgency=low
+
+  * change proto
+  * Git: 165.213.180.234:slp/pkgs/xorg/proto/x11proto-dri2
+  * Tag: x11proto-dri2_2.3-5slp2
+
+ -- SooChan Lim <sc1.lim@samsung.com>  Fri, 03 Jun 2011 19:02:14 +0900
+
+x11proto-dri2 (2.3-4slp2) unstable; urgency=low
+
+  * add invalidate types
+  * Git: 165.213.180.234:slp/pkgs/xorg/proto/x11proto-dri2
+  * Tag: x11proto-dri2_2.3-4slp2
+
+ -- SooChan Lim <sc1.lim@samsung.com>  Fri, 03 Jun 2011 14:15:21 +0900
+
+x11proto-dri2 (2.3-3slp2) unstable; urgency=low
+
+  * [X11R7.6] upgrade package
+  * Git: 165.213.180.234:slp/pkgs/xorg/proto/x11proto-dri2
+  * Tag: x11proto-dri2_2.3-3slp2
+
+ -- SooChan Lim <sc1.lim@samsung.com>  Mon, 03 Jan 2011 19:43:14 +0900
+
+x11proto-dri2 (2.3-2slp2) unstable; urgency=low
+
+  * [X11R7.6] upgrade package
+  * Git: 165.213.180.234:/git/slp/pkgs/xorg/proto/x11proto-dri2
+  * Tag: x11proto-dri2_2.3-2slp2  
+
+ -- SooChan Lim <sc1.lim@samsung.com>  Mon, 03 Jan 2011 19:39:34 +0900
+
+x11proto-dri2 (2.3-1) unstable; urgency=low
+
+  * New upstream release.
+  * Add myself to Uploaders.
+  * B-D explicitly on debhelper (>= 5), which matches debian/compat.
+  * B-D on pkg-config, needed for PKG_PROG_PKG_CONFIG (pulled through
+    XORG_DEFAULT_OPTIONS in configure.ac).
+  * Bump Standards-Version from 3.8.2 to 3.8.4 (no changes needed).
+
+ -- Cyril Brulebois <kibi@debian.org>  Tue, 06 Apr 2010 15:23:52 +0200
+
+x11proto-dri2 (2.2-2) unstable; urgency=low
+
+  * Bump xutils-dev build dependencies to 1:7.5~1 for util-macros 1.3.0
+    (closes: #574497).
+
+ -- Brice Goglin <bgoglin@debian.org>  Sun, 21 Mar 2010 10:14:39 +0100
+
+x11proto-dri2 (2.2-1) unstable; urgency=low
+
+  [ Timo Aaltonen ]
+  * New upstream release. (LP: #377090, closes: #569259)
+
+  [ Julien Cristau ]
+  * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no
+    good reason.  Thanks, Colin Watson!
+  * Remove myself from Uploaders
+
+  [ Brice Goglin ]
+  * Add myself to Uploaders.
+
+ -- Brice Goglin <bgoglin@debian.org>  Thu, 11 Feb 2010 13:55:45 +0100
+
+x11proto-dri2 (2.1-1) unstable; urgency=low
+
+  * New upstream release.
+  * Bump Standards-Version to 3.8.2.
+
+ -- Julien Cristau <jcristau@debian.org>  Fri, 19 Jun 2009 17:30:30 +0200
+
+x11proto-dri2 (2.0-1) unstable; urgency=low
+
+  * New upstream release.
+  * Add build-dep on xutils-dev >= 1:7.4+4.
+  * Install the upstream changelog.
+  * Bump Standards-Version to 3.8.1.
+  * Bump dh compat to 5 to make lintian happy.
+
+ -- Julien Cristau <jcristau@debian.org>  Mon, 08 Jun 2009 16:50:28 +0200
+
+x11proto-dri2 (1.99.3-1) unstable; urgency=low
+
+  [ Timo Aaltonen ]
+  * New upstream release.
+
+  [ Julien Cristau ]
+  * debian/rules: drop some useless code (we don't need to set CFLAGS or set
+    the architecture, we don't build anything).
+  * Install dri2proto.txt.
+  * debian/copyright: update copyright year.
+
+ -- Julien Cristau <jcristau@debian.org>  Fri, 09 Jan 2009 06:57:20 +0100
+
+x11proto-dri2 (1.1-1) unstable; urgency=low
+
+  * Initial release.
+
+ -- Julien Cristau <jcristau@debian.org>  Thu, 05 Jun 2008 22:14:02 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/debian/control b/debian/control
new file mode 100755 (executable)
index 0000000..d9b663e
--- /dev/null
@@ -0,0 +1,25 @@
+Source: x11proto-dri2
+Section: x11
+Priority: optional
+Maintainer: SooChan Lim <sc1.lim@samsung.com>, Sangjin Lee <lsj119@samsung.com>, Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>, Debian X Strike Force <debian-x@lists.debian.org>
+Uploaders: SooChan Lim <sc1.lim@samsugn.com>, Julien Cristau <jcristau@debian.org>
+Build-Depends: debhelper, autoconf, automake, xutils-dev
+Standards-Version: 3.8.4
+Vcs-Git: git://git.debian.org/git/pkg-xorg/proto/x11proto-dri2
+Vcs-Browser: http://git.debian.org/?p=pkg-xorg/proto/x11proto-dri2.git
+
+Package: x11proto-dri2-dev
+Architecture: all
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Pre-Depends: x11-common (>= 1:7.0.0)
+Description: X11 DRI2 extension wire protocol
+ This package provides development headers describing the wire protocol
+ for the DRI2 extension, used to organise direct rendering support
+ for 3D clients, and replace the XFree86-DRI extension.
+ .
+ More information about X.Org can be found at:
+ <URL:http://www.X.org>
+ <URL:http://xorg.freedesktop.org>
+ <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
+ .
+ This package is built from the X.org dri2proto proto module.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..4fd701d
--- /dev/null
@@ -0,0 +1,34 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/proto/
+
+Packaging by Julien Cristau <jcristau@debian.org>.
+
+Copyright © 2008 Red Hat, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Soft-
+ware"), to deal in the Software without restriction, including without
+limitation the rights to use, copy, modify, merge, publish, distribute,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, provided that the above copyright
+notice(s) and this permission notice appear in all copies of the Soft-
+ware and that both the above copyright notice(s) and this permission
+notice appear in supporting documentation.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
+RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
+QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
+MANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization of
+the copyright holder.
+
+Authors:
+  Kristian Høgsberg (krh@redhat.com)
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..dcbe4dd
--- /dev/null
@@ -0,0 +1,87 @@
+#!/usr/bin/make -f
+# debian/rules for the Debian x11proto-dri2 package.
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>
+# Copyright © 2005 Daniel Stone <daniel@fooishbar.org>
+# Copyright © 2005 David Nusinow <dnusinow@debian.org>
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+PACKAGE = x11proto-dri2-dev
+
+.PHONY: autogen
+autogen: autogen-stamp
+autogen-stamp:
+       dh_testdir
+
+       autoreconf -vfi
+       touch autogen-stamp
+
+.PHONY: configure
+configure: configure-stamp
+configure-stamp: autogen-stamp
+       dh_testdir
+
+       test -d obj-$(DEB_BUILD_GNU_TYPE) || mkdir obj-$(DEB_BUILD_GNU_TYPE)
+       cd obj-$(DEB_BUILD_GNU_TYPE) && \
+       ../configure --prefix=/usr --mandir=\$${prefix}/share/man \
+                    --infodir=\$${prefix}/share/info --disable-shared \
+                    $(confflags) CFLAGS="$(CFLAGS)" 
+       touch configure-stamp
+
+build: build-stamp
+build-stamp: configure-stamp
+       dh_testdir
+
+       cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE)
+
+       touch build-stamp
+
+clean:
+       dh_testdir
+       dh_testroot
+       rm -f *-stamp
+
+       rm -f config.cache config.log config.status config.guess config.sub
+       rm -f */config.cache */config.log */config.status */config.guess */config.sub
+       rm -f conftest* */conftest*
+       rm -rf autom4te.cache */autom4te.cache
+       rm -rf obj-*
+       rm -f aclocal.m4 configure install-sh missing
+       rm -f Makefile.in
+
+       dh_clean
+
+install: build
+       dh_testdir
+       dh_testroot
+       dh_clean -k
+       dh_installdirs
+
+       cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+
+# Build architecture-independent files here.
+binary-indep: build install
+       dh_testdir
+       dh_testroot
+
+#      dh_installdocs dri2proto.txt
+#      dh_installman
+       dh_install --sourcedir=debian/tmp --list-missing
+#      dh_installchangelogs
+       dh_link
+       dh_strip
+       dh_compress
+       dh_fixperms
+       dh_installdeb
+       dh_shlibdeps
+       dh_gencontrol
+       dh_md5sums
+       dh_builddeb
+
+# Build architecture-dependent files here.
+binary-arch: build install
+# Nothing to do
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/debian/watch b/debian/watch
new file mode 100644 (file)
index 0000000..5e97c39
--- /dev/null
@@ -0,0 +1,2 @@
+version=3
+http://xorg.freedesktop.org/releases/individual/proto/ dri2proto-(.*)\.tar\.gz
diff --git a/debian/x11proto-dri2-dev.install b/debian/x11proto-dri2-dev.install
new file mode 100644 (file)
index 0000000..d75d93f
--- /dev/null
@@ -0,0 +1,2 @@
+usr/include/X11/extensions/*
+usr/lib/pkgconfig/dri2proto.pc
diff --git a/dri2proto.h b/dri2proto.h
new file mode 100755 (executable)
index 0000000..cd82afb
--- /dev/null
@@ -0,0 +1,333 @@
+/*
+ * Copyright © 2008 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Soft-
+ * ware"), to deal in the Software without restriction, including without
+ * limitation the rights to use, copy, modify, merge, publish, distribute,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, provided that the above copyright
+ * notice(s) and this permission notice appear in all copies of the Soft-
+ * ware and that both the above copyright notice(s) and this permission
+ * notice appear in supporting documentation.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
+ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
+ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
+ * MANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder shall
+ * not be used in advertising or otherwise to promote the sale, use or
+ * other dealings in this Software without prior written authorization of
+ * the copyright holder.
+ *
+ * Authors:
+ *   Kristian Høgsberg (krh@redhat.com)
+ */
+
+#ifndef _DRI2_PROTO_H_
+#define _DRI2_PROTO_H_
+
+#define DRI2_NAME                      "DRI2"
+#define DRI2_MAJOR                     1
+#define DRI2_MINOR                     3
+
+#define DRI2NumberErrors               0
+#define DRI2NumberEvents               2
+#define DRI2NumberRequests             13
+
+#define X_DRI2QueryVersion             0
+#define X_DRI2Connect                  1
+#define X_DRI2Authenticate             2
+#define X_DRI2CreateDrawable           3
+#define X_DRI2DestroyDrawable          4
+#define X_DRI2GetBuffers               5
+#define X_DRI2CopyRegion               6
+#define X_DRI2GetBuffersWithFormat     7
+#define X_DRI2SwapBuffers              8
+#define X_DRI2GetMSC                   9
+#define X_DRI2WaitMSC                  10
+#define X_DRI2WaitSBC                  11
+#define X_DRI2SwapInterval             12
+
+/*
+ * Events
+ */
+#define DRI2_BufferSwapComplete        0
+#define DRI2_InvalidateBuffers 1
+
+typedef struct {
+    CARD32  attachment B32;
+    CARD32  name B32;
+    CARD32  pitch B32;
+    CARD32  cpp B32;
+    CARD32  flags B32;
+} xDRI2Buffer;
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  majorVersion B32;
+    CARD32  minorVersion B32;
+} xDRI2QueryVersionReq;
+#define sz_xDRI2QueryVersionReq   12
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  majorVersion B32;
+    CARD32  minorVersion B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+} xDRI2QueryVersionReply;
+#define sz_xDRI2QueryVersionReply      32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  window B32;
+    CARD32  driverType B32;
+} xDRI2ConnectReq;
+#define sz_xDRI2ConnectReq     12
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  driverNameLength B32;
+    CARD32  deviceNameLength B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+} xDRI2ConnectReply;
+#define sz_xDRI2ConnectReply   32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  window B32;
+    CARD32  magic B32;
+} xDRI2AuthenticateReq;
+#define sz_xDRI2AuthenticateReq   12
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  authenticated B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+    CARD32  pad6 B32;
+} xDRI2AuthenticateReply;
+#define sz_xDRI2AuthenticateReply      32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+} xDRI2CreateDrawableReq;
+#define sz_xDRI2CreateDrawableReq   8
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+} xDRI2DestroyDrawableReq;
+#define sz_xDRI2DestroyDrawableReq   8
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+    CARD32  count B32;
+} xDRI2GetBuffersReq;
+#define sz_xDRI2GetBuffersReq   12
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  width B32;
+    CARD32  height B32;
+    CARD32  count B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+} xDRI2GetBuffersReply;
+#define sz_xDRI2GetBuffersReply        32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+    CARD32  region B32;
+    CARD32  dest B32;
+    CARD32  src B32;
+} xDRI2CopyRegionReq;
+#define sz_xDRI2CopyRegionReq   20
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+    CARD32  pad6 B32;
+    CARD32  pad7 B32;
+} xDRI2CopyRegionReply;
+#define sz_xDRI2CopyRegionReply        32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+    CARD32  target_msc_hi B32;
+    CARD32  target_msc_lo B32;
+    CARD32  divisor_hi B32;
+    CARD32  divisor_lo B32;
+    CARD32  remainder_hi B32;
+    CARD32  remainder_lo B32;
+} xDRI2SwapBuffersReq;
+#define sz_xDRI2SwapBuffersReq  32
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  swap_hi B32;
+    CARD32  swap_lo B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+} xDRI2SwapBuffersReply;
+#define sz_xDRI2SwapBuffersReply 32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+} xDRI2GetMSCReq;
+#define sz_xDRI2GetMSCReq 8
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+    CARD32  target_msc_hi B32;
+    CARD32  target_msc_lo B32;
+    CARD32  divisor_hi B32;
+    CARD32  divisor_lo B32;
+    CARD32  remainder_hi B32;
+    CARD32  remainder_lo B32;
+} xDRI2WaitMSCReq;
+#define sz_xDRI2WaitMSCReq 32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+    CARD32  target_sbc_hi B32;
+    CARD32  target_sbc_lo B32;
+} xDRI2WaitSBCReq;
+#define sz_xDRI2WaitSBCReq 16
+
+typedef struct {
+    CARD8   type;
+    CARD8   pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  ust_hi B32;
+    CARD32  ust_lo B32;
+    CARD32  msc_hi B32;
+    CARD32  msc_lo B32;
+    CARD32  sbc_hi B32;
+    CARD32  sbc_lo B32;
+} xDRI2MSCReply;
+#define sz_xDRI2MSCReply 32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+    CARD32  interval B32;
+} xDRI2SwapIntervalReq;
+#define sz_xDRI2SwapIntervalReq 12
+
+typedef struct {
+    CARD8 type;
+    CARD8 pad;
+    CARD16 sequenceNumber B16;
+    CARD16 event_type B16;
+    CARD16 pad2;
+    CARD32 drawable B32;
+    CARD32 ust_hi B32;
+    CARD32 ust_lo B32;
+    CARD32 msc_hi B32;
+    CARD32 msc_lo B32;
+    CARD32 sbc_hi B32;
+    CARD32 sbc_lo B32;
+} xDRI2BufferSwapComplete;
+#define sz_xDRI2BufferSwapComplete 32
+
+typedef struct {
+    CARD8 type;
+    CARD8 pad;
+    CARD16 sequenceNumber B16;
+    CARD16 event_type B16;
+    CARD16 pad2;
+    CARD32 drawable B32;
+    CARD32 ust_hi B32;
+    CARD32 ust_lo B32;
+    CARD32 msc_hi B32;
+    CARD32 msc_lo B32;
+    CARD32 sbc B32;
+} xDRI2BufferSwapComplete2;
+#define sz_xDRI2BufferSwapComplete2 32
+
+typedef struct {
+    CARD8 type;
+    CARD8 pad;
+    CARD16 sequenceNumber B16;
+    CARD32 drawable B32;
+    CARD32 pad1 B32;
+    CARD32 pad2 B32;
+    CARD32 pad3 B32;
+    CARD32 pad4 B32;
+    CARD32 pad5 B32;
+    CARD32 pad6 B32;
+} xDRI2InvalidateBuffers;
+#define sz_xDRI2InvalidateBuffers 32
+
+#endif
diff --git a/dri2proto.pc.in b/dri2proto.pc.in
new file mode 100644 (file)
index 0000000..647416e
--- /dev/null
@@ -0,0 +1,9 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+Name: DRI2Proto
+Description: DRI2 extension headers
+Version: @PACKAGE_VERSION@
+Cflags: -I${includedir}
diff --git a/dri2proto.txt b/dri2proto.txt
new file mode 100755 (executable)
index 0000000..df763c7
--- /dev/null
@@ -0,0 +1,878 @@
+                         The DRI2 Extension
+                             Version 2.0
+                             2008-09-04
+      
+                         Kristian Høgsberg
+                           krh@redhat.com
+                            Red Hat, Inc
+
+
+1. Introduction
+
+The DRI2 extension is designed to associate and access auxillary
+rendering buffers with an X drawable.
+
+DRI2 is a essentially a helper extension to support implementation of
+direct rendering drivers/libraries/technologies.
+
+The main consumer of this extension will be a direct rendering OpenGL
+driver, but the DRI2 extension is not designed to be OpenGL specific.
+Direct rendering implementations of OpenVG, Xv, cairo and other
+graphics APIs should find the functionality exposed by this extension
+helpful and hopefully sufficient.
+
+Relation to XF86DRI
+
+
+1.1. Acknowledgements
+
+Kevin E. Martin <kem@redhat.com>
+Keith Packard <keithp@keithp.com>
+Eric Anholt <eric@anholt.net>
+Keith Whitwell <keith@tungstengraphics.com>
+Jerome Glisse <glisse@freedesktop.org>
+Ian Romanick <ian.d.romanick@intel.com>
+Michel Dänzer <michel@tungstengraphics.com>
+Jesse Barnes <jbarnes@virtuousgeek.org>
+
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+
+2. DRI2 Concepts
+
+
+2.1. Attachment points
+
+Stolen from OpenGL FBOs, I guess.
+
+
+2.2. Kernel rendering manager
+
+This specification assumes a rendering architechture, where an
+underlying kernel rendering manager that can provide 32 bit integer
+handles to video memory buffers.  These handles can be passed between
+processes, which, through a direct rendering driver, submit rendering
+to the kernel rendering manager, targeting and/or sourcing from these
+buffers.  This extension provides a means to communicate about such
+buffers as associated with an X drawable.
+
+The details of how the a direct rendering driver use the buffer names
+and submit the rendering requests is outside the scope of this
+specification.  However, Appendix B does discuss implementation of
+this specification on the Graphics Execution Manager (GEM).
+
+
+2.3. Request ordering
+
+No ordering between swap buffers and X rendering.  X rendering to src
+buffers will block if they have a vblank pending.
+
+
+2.4 Authentication model
+
+The purpose of the DRM authentication scheme is to grant access to the
+kernel rendering manager buffers created by the X server if, and only
+if, the client has access to the X server.  This is achieved in a
+three-step protocol:
+
+       1) The client gets a token from the kernel rendering manager
+       that uniquely identifies it.  The token is a 32 bit integer.
+
+       2) The client passes the token to the X server in the
+       DRI2Authenticate request.  This request is a round trip to
+       make sure the X server has received and processed the
+       authentication before the client starts accessing the DRM.
+
+       3) The X server authorizes the client by passing the token to
+       the kernel rendering manager.
+
+A kernel rendering manager can choose not to implement any
+authentication and just allow access to all buffers.
+
+
+2.5 Rendering to the X front buffer
+
+OpenGL allows the client to render to the front buffer, either by
+using a single-buffered configuration or but explicitly setting the
+draw buffer to GL_FRONT_LEFT.  Not allowed!
+
+The client must ask for a fake front buffer, render to that and then
+use DRI2CopyRegion to copy contents back and forth between the fake
+front buffer and the real front buffer.  When X and direct rendering
+to a front buffer is interleaved, it is the responsibility of the
+application to synchronize access using glXWaitGL and glXWaitX.  A
+DRI2 implementation of direct rendering GLX, should use these enty
+points to copy contents back and forth to as necessary to ensure
+consistent rendering.
+
+The client may also use the DRI2SwapBuffers function to request a swap
+of the front and back buffers.  If the display server supports it, this
+operation may be preferred, since it may be easier and/or more performant
+for the server to perform a simple buffer swap rather than a blit.
+
+2.6 Synchronizing rendering
+
+DRI2 provides several methods for synchronizing drawing with various events.
+The protocol for these methods is based on the SGI_video_sync and
+OML_sync_control GLX extensions.  Using the DRI2WaitMSC request, a client
+can wait for a specific frame count or divisor/remainder before continuing
+its processing.  With the DRI2WaitSBC request, clients can block until a given
+swap count is reached (as incremented by DRI2SwapBuffers).  Finally, using
+DRI2SwapBuffers, clients can limit their frame rate by specifying a swap
+interval using the swap interval call (currently only available through GLX)
+or by using the OML swap buffers routine.
+
+2.7 Events
+
+DRI2 provides an event to indicate when a DRI2SwapBuffers request has
+been completed.  This can be used to throttle drawing on the client
+side and tie into application main loops.
+
+Another event is generated when the validity of the requested buffers
+changes.
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+
+3. Data Types
+
+The server side region support specified in the Xfixes extension
+version 2 is used in the CopyRegion request.
+
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+
+4. Errors
+
+No errors are defined by the DRI2 extension.
+
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+5. Events
+
+The only events provided by DRI2 are DRI2_BufferSwapComplete
+and DRI2InvalidateBuffers.
+
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+
+6. Protocol Types
+
+DRI2DRIVER { DRI2DriverDRI
+            DRI2DriverVDPAU }
+
+       These values describe the type of driver the client will want
+       to load.  The server sends back the name of the driver to use
+       for the screen in question.
+
+DRI2ATTACHMENT { DRI2BufferFrontLeft
+                DRI2BufferBackLeft
+                DRI2BufferFrontRight
+                DRI2BufferBackRight
+                DRI2BufferDepth
+                DRI2BufferStencil
+                DRI2BufferAccum
+                DRI2BufferFakeFrontLeft
+                DRI2BufferFakeFrontRight
+                DRI2BufferDepthStencil
+                DRI2BufferHiz }
+
+       These values describe various attachment points for DRI2
+       buffers.
+
+DRI2BUFFER { attachment: CARD32
+            name: CARD32
+            pitch: CARD32
+            cpp: CARD32
+            flags: CARD32 }
+
+       The DRI2BUFFER describes an auxillary rendering buffer
+       associated with an X drawable.  'attachment' describes the
+       attachment point for the buffer, 'name' is the name of the
+       underlying kernel buffer,
+
+
+DRI2ATTACH_FORMAT { attachment: CARD32
+                   format:     CARD32 }
+
+       The DRI2ATTACH_FORMAT describes an attachment and the associated
+       format.  'attachment' describes the attachment point for the buffer,
+       'format' describes an opaque, device-dependent format for the buffer.
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+
+7. Extension Initialization
+
+The name of this extension is "DRI2".
+
+┌───
+    DRI2QueryVersion
+       client-major-version:   CARD32
+       client-minor-version:   CARD32
+      ▶
+       major-version:          CARD32
+       minor-version:          CARD32
+└───
+
+       The client sends the highest supported version to the server
+       and the server sends the highest version it supports, but no
+       higher than the requested version. Major versions changes can
+       introduce incompatibilities in existing functionality, minor
+       version changes introduce only backward compatible changes.
+       It is the clients responsibility to ensure that the server
+       supports a version which is compatible with its expectations.
+
+       Backwards compatible changes included addition of new
+       requests, but also new value types in the DRI2CopyRegion
+       request.  When new values are introduced, the minor version
+       will be increased so the client can know which values the X
+       server understands from the version number.
+
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+
+8. Extension Requests
+
+┌───
+    DRI2Connect
+       window: WINDOW
+       driverType: DRI2DRIVER
+      ▶
+       driver: STRING
+       device: STRING
+└───
+
+       Returns the driver name and device file to use for the
+       specified driver type for the screen associated with 'window'.
+
+       'type' identifies the type of driver to query for.
+
+       'driver' is the name of the driver to load.  The client is
+       assumed to know where to look for the drivers and what to do
+       with it.
+
+       'device' is the filename of the DRM device file.
+
+       If the client is not local, or the request driver type is
+       unknown or not available, 'driver' and 'device' will be empty
+       strings.  We are not using an regular X
+       error here to indicate failure, which will allow the client
+       fall back to other options more easily.
+
+       ISSUE: We could add the list of supported attachments and the
+       supported DRI2CopyRegion values here (just the bitmask of all
+       supported values).
+       
+┌───
+    DRI2Authenticate
+       window: WINDOW
+       token: CARD32
+      ▶
+        authenticated: CARD32
+└───
+       Errors: Window
+
+       Request that the X server authenticates 'token', allowing the
+       client to access the DRM buffers created by the X server on
+       the screen associated with 'window'.
+
+       Authentication shouldn't fail at this point, except if an
+       invalid token is passed, in which case authenticated is False.
+
+┌───
+    DRI2GetBuffers
+       drawable: DRAWABLE
+       attachments: LISTofDRI2ATTACHMENTS
+      ▶      
+       width, height: CARD32
+       buffers: LISTofDRI2BUFFER
+└───
+       Errors: Window
+
+       Get buffers for the provided attachment points for the given
+       drawable.
+
+       If the DDX driver does not support one or more of the
+       specified attachment points, a Value error is generated, with
+       the first unsupported attachment point as the error value.
+
+       'width' and 'height' describes the dimensions of the drawable.
+
+       'buffers' is a list of DRI2BUFFER for the given DRI2
+       attachment points.
+
+┌───
+    DRI2CopyRegion
+       drawable: DRAWABLE
+       region: REGION
+       source: DRI2ATTACHMENT
+       destination: DRI2ATTACHMENT
+      ▶      
+└───
+       Errors: Window, Value
+
+       Schedule a copy from one DRI2 buffer to another.
+
+       The DRICopyRegion request has a reply but it is empty.  The
+       reply is there to let the direct rendering client wait until
+       the server has seen the request before proceeding with
+       rendering the next frame.
+
+┌───
+    DRI2SwapBuffers
+       drawable: DRAWABLE
+      ▶      
+       count: two CARD32s
+└───
+       Errors: Window
+
+       Schedule a swap of the front and back buffers with the display
+       server.
+
+       Returns the swap count value when the swap will actually occur (e.g.
+       the last queued swap count + (pending swap count * swap interval)).
+
+       This request is only available with protocol version 1.2 or
+       later.
+
+┌───
+    DRI2GetBuffersWithFormat
+       drawable: DRAWABLE
+       attachments: LISTofDRI2ATTACH_FORMAT
+      ▶
+       width, height: CARD32
+       buffers: LISTofDRI2BUFFER
+└───
+       Errors: Window
+
+       Get buffers for the provided attachment points with the specified
+       formats for the given drawable.
+
+       If the DDX driver does not support one or more of the
+       specified attachment points or formats, a Value error is generated,
+       with the first unsupported attachment point as the error value.
+
+       'width' and 'height' describes the dimensions of the drawable.
+
+       'buffers' is a list of DRI2BUFFER for the given DRI2
+       attachment points.
+
+       This request is only available with protocol version 1.1 or
+       later.
+
+┌───
+    DRI2GetMSC
+       drawable: DRAWABLE
+      ▶
+       ust, msc, sbc: CARD64
+└───
+       Errors: Window
+
+       Get the current media stamp counter (MSC) and swap buffer count (SBC)
+       along with the unadjusted system time (UST) when the MSC was last
+       incremented.
+
+       This request is only available with protocol version 1.2 or
+       later.
+
+┌───
+    DRI2WaitMSC
+       drawable: DRAWABLE
+       target_msc: two CARD32s
+       divisor: two CARD32s
+       remainder: two CARD32s
+      ▶
+       ust, msc, sbc: CARD64
+└───
+       Errors: Window
+
+       Blocks the client until either the frame count reaches target_msc or,
+       if the frame count is already greater than target_msc when the request
+       is received, until the frame count % divisor = remainder.  If divisor
+       is 0, the client will be unblocked if the frame count is greater than
+       or equal to the target_msc.
+
+       Returns the current media stamp counter (MSC) and swap buffer count
+       (SBC) along with the unadjusted system time (UST) when the MSC was last
+       incremented.
+
+       This request is only available with protocol version 1.2 or
+       later.
+
+┌───
+    DRI2WaitSBC
+       drawable: DRAWABLE
+       target_sbc: two CARD32s
+      ▶
+       ust, msc, sbc: CARD64
+└───
+       Errors: Window
+
+       Blocks the client until the swap buffer count reaches target_sbc.  If
+       the swap buffer count is already greater than or equal to target_sbc
+       when the request is recieved, this request will return immediately.
+
+       If target_sbc is 0, this request will block the client until all
+       previous DRI2SwapBuffers requests have completed.
+
+       Returns the current media stamp counter (MSC) and swap buffer count
+       (SBC) along with the unadjusted system time (UST) when the MSC was last
+       incremented.
+
+       This request is only available with protocol version 1.2 or
+       later.
+
+┌───
+    DRI2SwapInterval
+       drawable: DRAWABLE
+       interval: CARD32
+      ▶
+└───
+       Errors: Window
+
+       Sets the swap interval for DRAWABLE.  This will throttle
+       DRI2SwapBuffers requests to swap at most once per interval frames,
+       which is useful useful for limiting the frame rate.
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+9. Extension Events
+
+┌───
+    DRI2BufferSwapComplete
+      ▶
+       event_type: CARD16
+       drawable: CARD32
+       ust: CARD64
+       msc: CARD64
+       sbc: CARD64
+└───
+
+       This event reports the status of the last DRI2SwapBuffers event to
+       the client.  The event type should be one of DRI2_EXCHANGE_COMPLETE,
+       indicating a successful buffer exchange, DRI2_BLIT_COMPLETE, indicating
+       the swap was performed with a blit, and DRI2_FLIP_COMPLETE, indicating
+       a full page flip was completed.
+
+┌───
+    DRI2InvalidateBuffers
+      ▶
+       drawable: CARD32
+└───
+
+       This event is generated when the buffers the client had
+       requested for 'drawable' (with DRI2GetBuffers or
+       DRI2GetBuffersWithFormat) become inappropriate because they
+       don't match the drawable dimensions anymore, or a buffer swap
+       has been performed.
+
+       Note that the server is only required to warn the client once
+       about this condition, until the client takes care of bringing
+       them back up-to-date with another GetBuffers request.
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+10. Extension Versioning
+
+The DRI2 extension has undergone a number of revisions before
+
+       1.0: Released, but never used.  Relied on a number of
+               constructs from the XF86DRI extension, such as a
+               shared memory area (SAREA) to communicate changes in
+               cliprects and window sizes, and
+
+       1.99.1: Move the swap buffer functionality into the X server,
+               introduce SwapBuffer request to copy back buffer
+               contents to the X drawable.
+
+       1.99.2: Rethink the SwapBuffer request as an asynchronous
+               request to copy a region between DRI2 buffers.  Drop
+               CreateDrawable and DestroyDrawable, update Connect to
+               support different driver types and to send the
+               authentication group.
+
+       1.99.3: Drop the bitmask argument intended to indicate
+               presence of optional arguments for CopyRegion.
+
+       2.0: Awesomeness!
+
+       2.1: True excellence.  Added DRI2GetBuffersWithFormat to allow
+             more flexible object creation.
+
+       2.2: Approaching perfection.  Added requests for swapbuffers,
+             MSC and SBC related requests, and events.
+
+       2.3: Added the DRI2InvalidateBuffers event.
+
+       2.6: Enlightenment attained.  Added the DRI2BufferHiz attachment.
+
+Compatibility up to 2.0 is not preserved, but was also never released.
+
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+
+11. Relationship with other extensions
+
+As an extension designed to support other extensions, there is
+naturally some interactions with other extensions.
+
+
+11.1 GLX
+
+The GL auxilary buffers map directly to the DRI2 buffers... eh
+
+
+11.2 DBE
+
+The DBE back buffer must correspond to the DRI2_BUFFER_FRONT_LEFT
+DRI2 buffer for servers that support both DBE and DRI2.
+
+
+11.3 XvMC / Xv
+
+We might add a DRI2_BUFFER_YUV to do vsynced colorspace conversion
+blits.  Maybe... not really sure.
+
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+
+Appendix A. Protocol Encoding
+
+Syntactic Conventions
+
+This document uses the same syntactic conventions as the core X
+protocol encoding document.
+
+
+A.1 Common Types
+
+┌───
+    DRI2DRIVER
+       0x0     DRI2DriverDRI
+       0x1     DRI2DriverVDPAU
+└───
+
+┌───
+    DRI2ATTACHMENT
+       0x0     DRI2BufferFrontLeft
+       0x1     DRI2BufferBackLeft
+       0x2     DRI2BufferFrontRight
+       0x3     DRI2BufferBackRight
+       0x4     DRI2BufferDepth
+       0x5     DRI2BufferStencil
+       0x6     DRI2BufferAccum
+       0x7     DRI2BufferFakeFrontLeft
+       0x8     DRI2BufferFakeFrontRight
+       0x9     DRI2BufferDepthStencil
+       0xa     DRI2BufferHiz
+└───
+       Used to encode the possible attachment points.  The attachment
+       DRI2BufferDepthStencil is only available with protocol version 1.1 or
+       later.
+
+┌───
+    DRI2BUFFER
+       4       CARD32  attachment
+       4       CARD32  name
+       4       CARD32  pitch
+       4       CARD32  cpp
+       4       CARD32  flags
+└───
+       A DRI2 buffer specifies the attachment, the kernel memory
+       manager name, the pitch and chars per pixel for a buffer
+       attached to a given drawable.
+
+┌───
+    DRI2ATTACH_FORMAT
+       4       CARD32  attachment
+       4       CARD32  format
+└───
+       Used to describe the attachment and format requested from the server.
+       This data type is only available with protocol version 1.1 or
+       later.
+
+A.2 Protocol Requests
+
+┌───
+    DRI2QueryVersion
+       1       CARD8                   major opcode
+       1       0                       DRI2 opcode
+       2       3                       length
+       4       CARD32                  major version
+       4       CARD32                  minor version
+      ▶
+       1       1                       Reply
+        1                              unused
+       2       CARD16                  sequence number
+       4       0                       reply length
+       4       CARD32                  major version
+        4      CARD32                  minor version
+       16                              unused  
+└───
+
+┌───
+    DRI2Connect
+       1       CARD8                   major opcode
+       1       1                       DRI2 opcode
+       2       3                       length
+       4       WINDOW                  window
+       4       CARD32                  driver type
+      ▶
+       1       1                       Reply
+        1                              unused
+       2       CARD16                  sequence number
+       4       (n+m+p+q)/4             reply length
+       4       n                       driver name length
+       4       m                       device name length
+       16                              unused
+       n       CARD8                   driver name
+       p                               unused, p=pad(n)
+       m       CARD8                   device name
+       q                               unused, q=pad(m)
+└───
+
+┌───
+    DRI2Authenticate
+       1       CARD8                   major opcode
+       1       2                       DRI2 opcode
+       2       3                       length
+       4       WINDOW                  window
+       4       CARD32                  authentication token
+      ▶
+       1       1                       Reply
+        1                              unused
+       2       CARD16                  sequence number
+       4       0                       reply length
+       4       CARD32                  authenticated
+       20                              unused  
+└───
+
+┌───
+    DRI2GetBuffers
+       1       CARD8                   major opcode
+       1       3                       DRI2 opcode
+       2       3                       length
+       4       DRAWABLE                drawable
+       4       n                       number of attachments
+       4n      LISTofDRI2ATTACHMENTS   attachments
+      ▶      
+       1       1                       Reply
+        1                              unused
+       2       CARD16                  sequence number
+       4       0                       reply length
+       4       CARD32                  width of drawable
+       4       CARD32                  height of drawable
+       4       CARD32                  buffer count
+       12                              unused  
+       5n      LISTofDRI2BUFFER        buffers
+└───
+
+┌───
+    DRI2CopyRegion
+       1       CARD8                   major opcode
+       1       4                       DRI2 opcode
+       2       3                       length
+       4       DRAWABLE                drawable
+       4       REGION                  region
+       4       DRI2ATTACHMENT          source
+       4       DRI2ATTACHMENT          destination
+      ▶      
+       1       1                       Reply
+        1                              unused
+       2       CARD16                  sequence number
+       4       0                       reply length
+       24                              unused  
+└───
+
+┌───
+    DRI2GetBuffersWithFormat
+       1       CARD8                   major opcode
+       1       3                       DRI2 opcode
+       2       3                       length
+       4       DRAWABLE                drawable
+       4       n                       number of attachments
+       8n      LISTofDRI2ATTACH_FORMAT attachments and formats
+      ▶
+       1       1                       Reply
+       1                               unused
+       2       CARD16                  sequence number
+       4       0                       reply length
+       4       CARD32                  width of drawable
+       4       CARD32                  height of drawable
+       4       CARD32                  buffer count
+       12                              unused  
+       5n      LISTofDRI2BUFFER        buffers
+└───
+
+┌───
+    DRI2SwapBuffers
+       1       CARD8                   major opcode
+       1       7                       DRI2 opcode
+       2       8                       length
+       4       DRAWABLE                drawable
+      ▶      
+       1       1                       Reply
+        1                              unused
+       2       CARD16                  sequence number
+       4       0                       reply length
+       4       CARD32                  buffer count
+       4       CARD32                  unused
+       4       CARD32                  unused
+       4       CARD32                  unused
+       4       CARD32                  unused
+       4       CARD32                  unused
+       4       CARD32                  unused
+       5n      LISTofDRI2BUFFER        buffers
+└───
+
+┌───
+    DRI2SwapBuffers
+       1       CARD8                   major opcode
+       1       7                       DRI2 opcode
+       2       8                       length
+       4       DRAWABLE                drawable
+       4       CARD32                  target_msc_hi
+       4       CARD32                  target_msc_lo
+       4       CARD32                  divisor_hi
+       4       CARD32                  divisor_lo
+       4       CARD32                  remainder_hi
+       4       CARD32                  remainder_lo
+      ▶      
+       1       1                       Reply
+        1                              unused
+       2       CARD16                  sequence number
+       4       0                       reply length
+       4       CARD32                  swap_hi
+       4       CARD32                  swap_lo
+       5n      LISTofDRI2BUFFER        buffers
+└───
+
+┌───
+    DRI2GetMSC
+       1       CARD8                   major opcode
+       1       7                       DRI2 opcode
+       2       8                       length
+       4       DRAWABLE                drawable
+      ▶
+       1       1                       Reply
+        1                              unused
+       2       CARD16                  sequence number
+       4       0                       reply length
+       4       CARD32                  ust_hi
+       4       CARD32                  ust_lo
+       4       CARD32                  msc_hi
+       4       CARD32                  msc_lo
+       4       CARD32                  sbc_hi
+       4       CARD32                  sbc_lo
+└───
+
+┌───
+    DRI2WaitMSC
+       1       CARD8                   major opcode
+       1       7                       DRI2 opcode
+       2       8                       length
+       4       DRAWABLE                drawable
+       4       CARD32                  target_msc_hi
+       4       CARD32                  target_msc_lo
+       4       CARD32                  divisor_hi
+       4       CARD32                  divisor_lo
+       4       CARD32                  remainder_hi
+       4       CARD32                  remainder_lo
+      ▶
+       1       1                       Reply
+        1                              unused
+       2       CARD16                  sequence number
+       4       0                       reply length
+       4       CARD32                  ust_hi
+       4       CARD32                  ust_lo
+       4       CARD32                  msc_hi
+       4       CARD32                  msc_lo
+       4       CARD32                  sbc_hi
+       4       CARD32                  sbc_lo
+└───
+
+┌───
+    DRI2WaitSBC
+       1       CARD8                   major opcode
+       1       7                       DRI2 opcode
+       2       8                       length
+       4       DRAWABLE                drawable
+       4       CARD32                  swap_hi
+       4       CARD32                  swap_lo
+     ▶
+       1       1                       Reply
+        1                              unused
+       2       CARD16                  sequence number
+       4       0                       reply length
+       4       CARD32                  ust_hi
+       4       CARD32                  ust_lo
+       4       CARD32                  msc_hi
+       4       CARD32                  msc_lo
+       4       CARD32                  sbc_hi
+       4       CARD32                  sbc_lo
+└───
+
+┌───
+    DRI2SwapInterval
+       1       CARD8                   major opcode
+       1       7                       DRI2 opcode
+       2       8                       length
+       4       DRAWABLE                drawable
+       4       CARD32                  interval
+     ▶
+└───
+
+A.3 Protocol Events
+
+The DRI2 extension specifies DRI2_BufferSwapComplete and
+DRI2_InvalidateBuffers events.
+
+┌───
+    DRI2_BufferSwapComplete
+       1       CARD8                   type
+       1       CARD8                   extension
+       2       CARD16                  sequenceNumber
+       2       CARD16                  event_type
+       4       DRAWABLE                drawable
+       4       CARD32                  ust_hi
+       4       CARD32                  ust_lo
+       4       CARD32                  msc_hi
+       4       CARD32                  msc_lo
+       4       CARD32                  sbc_hi
+       4       CARD32                  sbc_lo
+└───
+
+
+┌───
+    DRI2_InvalidateBuffers
+       1       CARD8                   type
+       1       CARD8                   extension
+       2       CARD16                  sequenceNumber
+       4       DRAWABLE                drawable
+       4       CARD32                  unused
+       4       CARD32                  unused
+       4       CARD32                  unused
+       4       CARD32                  unused
+       4       CARD32                  unused
+       4       CARD32                  unused
+└───
+
+A.4 Protocol Errors
+
+The DRI2 extension specifies no errors.
+
+
+                            ⚙ ⚙ ⚙  ⚙ ⚙ ⚙
+
+
+Appendix B. Implementation on GEM
+
+Where to begin...
diff --git a/dri2tokens.h b/dri2tokens.h
new file mode 100755 (executable)
index 0000000..16c9008
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright © 2008 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Soft-
+ * ware"), to deal in the Software without restriction, including without
+ * limitation the rights to use, copy, modify, merge, publish, distribute,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, provided that the above copyright
+ * notice(s) and this permission notice appear in all copies of the Soft-
+ * ware and that both the above copyright notice(s) and this permission
+ * notice appear in supporting documentation.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
+ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
+ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
+ * MANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder shall
+ * not be used in advertising or otherwise to promote the sale, use or
+ * other dealings in this Software without prior written authorization of
+ * the copyright holder.
+ *
+ * Authors:
+ *   Kristian Høgsberg (krh@redhat.com)
+ */
+
+#ifndef _DRI2_TOKENS_H_
+#define _DRI2_TOKENS_H_
+
+#define DRI2BufferFrontLeft            0
+#define DRI2BufferBackLeft             1
+#define DRI2BufferFrontRight           2
+#define DRI2BufferBackRight            3
+#define DRI2BufferDepth                        4
+#define DRI2BufferStencil              5
+#define DRI2BufferAccum                        6
+#define DRI2BufferFakeFrontLeft                7
+#define DRI2BufferFakeFrontRight       8
+#define DRI2BufferDepthStencil         9
+#define DRI2BufferHiz                  10
+
+#define DRI2DriverDRI                  0
+#define DRI2DriverVDPAU                        1
+
+/* Event sub-types for the swap complete event */
+#define DRI2_EXCHANGE_COMPLETE         0x1
+#define DRI2_BLIT_COMPLETE             0x2
+#define DRI2_FLIP_COMPLETE             0x3
+
+#endif
diff --git a/packaging/xorg-x11-proto-dri2proto.spec b/packaging/xorg-x11-proto-dri2proto.spec
new file mode 100755 (executable)
index 0000000..9008eaa
--- /dev/null
@@ -0,0 +1,47 @@
+Name:       xorg-x11-proto-dri2proto
+Summary:    X.Org X11 Protocol dri2proto
+Version:    2.6
+Release:    1.8
+Group:      Development/System
+License:    MIT
+URL:        http://www.x.org
+Source0:    http://xorg.freedesktop.org/releases/individual/proto/dri2proto-%{version}.tar.gz
+Provides:   dri2proto
+BuildRequires: pkgconfig(xorg-macros)
+
+%description
+Description: %{summary}
+
+
+
+%prep
+%setup -q -n dri2proto-%{version}
+
+%build
+
+%reconfigure --disable-static \
+    --libdir=%{_datadir}
+
+# Call make instruction with smp support
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+
+%clean
+rm -rf %{buildroot}
+
+
+
+
+
+
+%files
+%defattr(-,root,root,-)
+%{_includedir}/X11/extensions/dri2proto.h
+%{_includedir}/X11/extensions/dri2tokens.h
+%{_datadir}/pkgconfig/dri2proto.pc
+
+