x11proto-dri2: Changes to 'debian-unstable'
.gitignore | 78 +++++++++++++-
ChangeLog | 160 ++++++++++++++++++++++++++++++
Makefile.am | 9 -
README | 30 +++++
configure.ac | 13 +-
debian/changelog | 6 +
dri2proto.h | 114 +++++++++++++++++++++
dri2proto.txt | 288 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
dri2tokens.h | 6 +
9 files changed, 674 insertions(+), 30 deletions(-)
New commits:
commit 00d436e3d600a5378a3ef72e840cbddc7b0b3447
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date: Sat Jan 9 02:28:07 2010 +0200
Update the changelogs.
diff --git a/ChangeLog b/ChangeLog
index 6a11395..403f4e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,163 @@
+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
diff --git a/debian/changelog b/debian/changelog
index 2dc9fec..cdcdabe 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+x11proto-dri2 (2.2-1) UNRELEASED; urgency=low
+
+ * New upstream release. (LP: #377090)
+
+ -- Timo Aaltonen <tjaalton@ubuntu.com> Sat, 09 Jan 2010 02:26:40 +0200
+
x11proto-dri2 (2.1-1) unstable; urgency=low
* New upstream release.
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.
diff --git a/Makefile.am b/Makefile.am
index 2b252f2..153b422 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,6 +6,8 @@ pkgconfig_DATA = dri2proto.pc
EXTRA_DIST = dri2proto.pc.in dri2proto.txt
+MAINTAINERCLEANFILES = ChangeLog INSTALL
+
.PHONY: ChangeLog INSTALL
INSTALL:
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>
diff --git a/configure.ac b/configure.ac
index d8f6bc8..fc96197 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
AC_PREREQ([2.57])
-AC_INIT([DRI2Proto], [2.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([DRI2Proto], [2.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
diff --git a/dri2proto.h b/dri2proto.h
index 8d76079..ba10eb4 100644
--- a/dri2proto.h
+++ b/dri2proto.h
@@ -35,7 +35,7 @@
#define DRI2_NAME "DRI2"
#define DRI2_MAJOR 1
-#define DRI2_MINOR 1
+#define DRI2_MINOR 2
#define DRI2NumberErrors 0
#define DRI2NumberEvents 0
diff --git a/dri2proto.txt b/dri2proto.txt
index e931bfb..d10e372 100644
--- a/dri2proto.txt
+++ b/dri2proto.txt
@@ -128,7 +128,8 @@ No errrors defined by the DRI2 extension.
5. Protocol Types
-DRI2DRIVER { DRI2DriverDRI }
+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
@@ -386,6 +387,7 @@ A.1 Common Types
┌───
DRI2DRIVER
0x0 DRI2DriverDRI
+ 0x1 DRI2DriverVDPAU
└───
┌───
diff --git a/dri2tokens.h b/dri2tokens.h
index d56e4fb..d560271 100644
--- a/dri2tokens.h
+++ b/dri2tokens.h
@@ -45,5 +45,6 @@
#define DRI2BufferDepthStencil 9
#define DRI2DriverDRI 0
+#define DRI2DriverVDPAU 1
#endif
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.
diff --git a/README b/README
new file mode 100644
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
+
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.
diff --git a/Makefile.am b/Makefile.am
index 731ccc5..2b252f2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,10 +6,6 @@ pkgconfig_DATA = dri2proto.pc
EXTRA_DIST = dri2proto.pc.in dri2proto.txt
-EXTRA_DIST += ChangeLog
-
-MAINTAINERCLEANFILES = ChangeLog
-
.PHONY: ChangeLog INSTALL
INSTALL:
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
diff --git a/Makefile.am b/Makefile.am
index d26a4a5..731ccc5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -10,9 +10,12 @@ EXTRA_DIST += ChangeLog
MAINTAINERCLEANFILES = ChangeLog
-.PHONY: ChangeLog
+.PHONY: ChangeLog INSTALL
+
+INSTALL:
+ $(INSTALL_CMD)
ChangeLog:
$(CHANGELOG_CMD)
-dist-hook: ChangeLog
+dist-hook: ChangeLog INSTALL
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.
diff --git a/configure.ac b/configure.ac
index afc8170..d8f6bc8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,11 +3,11 @@ AC_INIT([DRI2Proto], [2.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
-# Require xorg-macros: XORG_CHANGELOG
-m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.2 or later before running autoconf/autogen])])
-XORG_MACROS_VERSION(1.2)
-XORG_RELEASE_VERSION
-XORG_CHANGELOG
+# 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])
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
diff --git a/configure.ac b/configure.ac
index 2d8fdc8..afc8170 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,7 @@
AC_PREREQ([2.57])
AC_INIT([DRI2Proto], [2.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
+AM_MAINTAINER_MODE
# Require xorg-macros: XORG_CHANGELOG
m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.2 or later before running autoconf/autogen])])
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.
diff --git a/.gitignore b/.gitignore
index 12c40fc..507f5dd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,14 +1,78 @@
-Makefile
-Makefile.in
+#
+# X.Org module default exclusion patterns
+# The next section if for module specific patterns
+#
+# Do not edit the following section
+# GNU Build System (Autotools)
aclocal.m4
-dri2proto.pc
-autom4te.cache
+autom4te.cache/
+autoscan.log
+ChangeLog
+compile
+config.guess
+config.h
+config.h.in
config.log
+config-ml.in
+config.py
config.status
+config.status.lineno
+config.sub
configure
+configure.scan
+depcomp
+.deps/
+INSTALL
install-sh
+.libs/
+libtool
+libtool.m4
+ltmain.sh
+lt~obsolete.m4
+ltoptions.m4
+ltsugar.m4
+ltversion.m4
+Makefile
+Makefile.in
+mdate-sh
missing
+mkinstalldirs
+*.pc
+py-compile
+stamp-h?
+symlink-tree
+texinfo.tex
+ylwrap
+
+# Do not edit the following section
+# Edit Compile Debug Document Distribute
*~
-dri2proto-*.tar.*
-ChangeLog
-tags
+*.[0-9]
+*.[0-9]x
+*.bak
+*.bin
+core
+*.dll
+*.exe
+*-ISO*.bdf
+*-JIS*.bdf
+*-KOI8*.bdf
+*.kld
+*.ko
+*.ko.cmd
+*.lai
+*.l[oa]
+*.[oa]
+*.obj
+*.patch
+*.so
+*.pcf.gz
+*.pdb
+*.tar.bz2
+*.tar.gz
+#
+# Add & Override patterns for dri2proto
+#
+# Edit the following section as needed
+# For example, !report.pc overrides *.pc. See 'man gitignore'
+#
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
diff --git a/dri2proto.txt b/dri2proto.txt
index 0b382ff..35bad41 100644
--- a/dri2proto.txt
+++ b/dri2proto.txt
@@ -440,7 +440,7 @@ The name of this extension is "DRI2".
⚙ ⚙ ⚙ ⚙ ⚙ ⚙
-9. Extension Requests
+9. Extension Events
┌───
DRI2BufferSwapComplete
commit 7c7e9bbf4ab6177e9623f3c4d667ed83789167b4
Author: Jesse Barnes <jbarnes@jbarnes-desktop.localdomain>
Date: Thu Nov 12 15:26:40 2009 +0000
Add DRI2 event support for DRI2BufferSwapComplete
diff --git a/dri2proto.h b/dri2proto.h
index 377bdb9..43152c2 100644
--- a/dri2proto.h
+++ b/dri2proto.h
@@ -38,8 +38,8 @@
#define DRI2_MINOR 2
#define DRI2NumberErrors 0
-#define DRI2NumberEvents 0
-#define DRI2NumberRequests 8
+#define DRI2NumberEvents 1
+#define DRI2NumberRequests 13
#define X_DRI2QueryVersion 0
#define X_DRI2Connect 1
@@ -55,6 +55,11 @@
#define X_DRI2WaitSBC 11
#define X_DRI2SwapInterval 12
+/*
+ * Events
+ */
+#define DRI2_BufferSwapComplete 0
+
typedef struct {
CARD32 attachment B32;
CARD32 name B32;
@@ -279,4 +284,19 @@ typedef struct {
} xDRI2SwapIntervalReq;
#define sz_xDRI2SwapIntervalReq 12
+typedef struct {
+ CARD8 type;
+ CARD8 pad;
+ CARD16 sequenceNumber B16;
+ CARD16 event_type B16;
+ 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
+
#endif
diff --git a/dri2proto.txt b/dri2proto.txt
index 71fc0ca..0b382ff 100644
--- a/dri2proto.txt
+++ b/dri2proto.txt
@@ -123,6 +123,12 @@ 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 a single 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.
+
⚙ ⚙ ⚙ ⚙ ⚙ ⚙
@@ -142,8 +148,15 @@ No errrors defined by the DRI2 extension.
⚙ ⚙ ⚙ ⚙ ⚙ ⚙
+5. Events
+
+The only event provided by DRI2 is DRI2_BufferSwapComplete.
+
+
+ ⚙ ⚙ ⚙ ⚙ ⚙ ⚙
+
-5. Protocol Types
+6. Protocol Types
DRI2DRIVER { DRI2DriverDRI }
@@ -187,7 +200,7 @@ DRI2ATTACH_FORMAT { attachment: CARD32
⚙ ⚙ ⚙ ⚙ ⚙ ⚙
-6. Extension Initialization
+7. Extension Initialization
The name of this extension is "DRI2".
@@ -218,7 +231,7 @@ The name of this extension is "DRI2".
⚙ ⚙ ⚙ ⚙ ⚙ ⚙
-7. Extension Requests
+8. Extension Requests
┌───
DRI2Connect
@@ -427,8 +440,27 @@ The name of this extension is "DRI2".
⚙ ⚙ ⚙ ⚙ ⚙ ⚙
+9. Extension Requests
+
+┌───
+ 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.
-8. Extension Versioning
+ ⚙ ⚙ ⚙ ⚙ ⚙ ⚙
+
+10. Extension Versioning
The DRI2 extension has undergone a number of revisions before
@@ -452,30 +484,36 @@ The DRI2 extension has undergone a number of revisions before
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.
+
Compatibility up to 2.0 is not preserved, but was also never released.
⚙ ⚙ ⚙ ⚙ ⚙ ⚙
-10. Relationship with other extensions
+11. Relationship with other extensions
As an extension designed to support other extensions, there is
naturally some interactions with other extensions.
-10.1 GLX
+11.1 GLX
The GL auxilary buffers map directly to the DRI2 buffers... eh
-10.2 DBE
+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.
-10.3 XvMC / Xv
+11.3 XvMC / Xv
We might add a DRI2_BUFFER_YUV to do vsynced colorspace conversion
blits. Maybe... not really sure.
diff --git a/dri2tokens.h b/dri2tokens.h
index d56e4fb..a20462a 100644
--- a/dri2tokens.h
+++ b/dri2tokens.h
@@ -46,4 +46,9 @@
#define DRI2DriverDRI 0
+/* Event sub-types for the swap complete event */
+#define DRI2_EXCHANGE_COMPLETE 0x1
+#define DRI2_BLIT_COMPLETE 0x2
+#define DRI2_FLIP_COMPLETE 0x3
+
#endif
commit f9e6b17debd2f69821bd8d412cccf02dd9ba17af
Author: Jesse Barnes <jbarnes@jbarnes-desktop.localdomain>
Date: Wed Nov 11 15:26:40 2009 -0800
Pad out DRI2 swap buffers reply
diff --git a/dri2proto.h b/dri2proto.h
index 31bcdb3..377bdb9 100644
--- a/dri2proto.h
+++ b/dri2proto.h
@@ -217,8 +217,12 @@ typedef struct {
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 16
+#define sz_xDRI2SwapBuffersReply 32
typedef struct {
CARD8 reqType;
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.
diff --git a/dri2proto.h b/dri2proto.h
index 85b9dbf..31bcdb3 100644
--- a/dri2proto.h
+++ b/dri2proto.h
@@ -53,6 +53,7 @@
#define X_DRI2GetMSC 9
#define X_DRI2WaitMSC 10
#define X_DRI2WaitSBC 11
+#define X_DRI2SwapInterval 12
typedef struct {
CARD32 attachment B32;
@@ -265,4 +266,13 @@ typedef struct {
} 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
+
#endif
diff --git a/dri2proto.txt b/dri2proto.txt
index 6430b2a..71fc0ca 100644
--- a/dri2proto.txt
+++ b/dri2proto.txt
@@ -33,6 +33,7 @@ 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>
⚙ ⚙ ⚙ ⚙ ⚙ ⚙
@@ -412,6 +413,18 @@ The name of this extension is "DRI2".
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.
+
⚙ ⚙ ⚙ ⚙ ⚙ ⚙
@@ -744,6 +757,16 @@ A.2 Protocol Requests
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 no events.
commit 5e059038a95b5bad7f41a2019beaad913ed29502
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date: Thu Oct 29 12:45:48 2009 -0700
Bump package version to 2.2
diff --git a/configure.ac b/configure.ac
index 2d8fdc8..003f7ac 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
AC_PREREQ([2.57])
-AC_INIT([DRI2Proto], [2.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([DRI2Proto], [2.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
# Require xorg-macros: XORG_CHANGELOG
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>
diff --git a/dri2proto.h b/dri2proto.h
index cee8a3c..85b9dbf 100644
--- a/dri2proto.h
+++ b/dri2proto.h
@@ -213,7 +213,7 @@ typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
- CARD16 length B32;
+ CARD32 length B32;
CARD32 swap_hi B32;
CARD32 swap_lo B32;
} xDRI2SwapBuffersReply;
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>
diff --git a/dri2proto.h b/dri2proto.h
index 37873c4..cee8a3c 100644
--- a/dri2proto.h
+++ b/dri2proto.h
@@ -50,6 +50,9 @@
#define X_DRI2CopyRegion 6
#define X_DRI2GetBuffersWithFormat 7
#define X_DRI2SwapBuffers 8
+#define X_DRI2GetMSC 9
+#define X_DRI2WaitMSC 10
+#define X_DRI2WaitSBC 11
typedef struct {
CARD32 attachment B32;
@@ -197,7 +200,69 @@ typedef struct {
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 8
+#define sz_xDRI2SwapBuffersReq 32
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BYTE pad1;
+ CARD16 sequenceNumber B16;
+ CARD16 length B32;
+ CARD32 swap_hi B32;
+ CARD32 swap_lo B32;
+} xDRI2SwapBuffersReply;
+#define sz_xDRI2SwapBuffersReply 16
+
+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;
Reply to: