[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

x11proto-randr: Changes to 'debian-unstable'



 COPYING          |    1 
 ChangeLog        |  235 ++++++++++++++++
 configure.ac     |    2 
 debian/changelog |   27 +
 debian/control   |    4 
 debian/copyright |    1 
 debian/rules     |   15 -
 randr.h          |   36 ++
 randrproto.h     |  235 ++++++++++++++++
 randrproto.txt   |  764 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 10 files changed, 1237 insertions(+), 83 deletions(-)

New commits:
commit 1fc4e0d327b353722fd39b20a940066375111871
Author: Julien Cristau <jcristau@debian.org>
Date:   Sun Jun 9 15:03:36 2013 +0200

    Upload to unstable.

diff --git a/debian/changelog b/debian/changelog
index ae1f409..6c5ed6f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,9 @@
-x11proto-randr (1.4.0-2) UNRELEASED; urgency=low
+x11proto-randr (1.4.0-2) unstable; urgency=low
 
   * debian/rules: clean doesn't need dh_testroot.
+  * Upload to unstable.
 
- -- Julien Cristau <jcristau@debian.org>  Sat, 14 Jul 2012 15:35:05 +0200
+ -- Julien Cristau <jcristau@debian.org>  Sun, 09 Jun 2013 15:03:33 +0200
 
 x11proto-randr (1.4.0-1) experimental; urgency=low
 

commit d45e5b864bfc47d07bccc1aaad8da1e6b22f4eac
Author: Julien Cristau <jcristau@debian.org>
Date:   Sat Jul 14 15:35:23 2012 +0200

    debian/rules: clean doesn't need dh_testroot.

diff --git a/debian/changelog b/debian/changelog
index 9aaa9af..ae1f409 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+x11proto-randr (1.4.0-2) UNRELEASED; urgency=low
+
+  * debian/rules: clean doesn't need dh_testroot.
+
+ -- Julien Cristau <jcristau@debian.org>  Sat, 14 Jul 2012 15:35:05 +0200
+
 x11proto-randr (1.4.0-1) experimental; urgency=low
 
   [ Maarten Lankhorst ]
diff --git a/debian/rules b/debian/rules
index 12d0ea3..f48cf1b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -36,7 +36,6 @@ build-stamp: configure-stamp
 
 clean:
 	dh_testdir
-	dh_testroot
 	rm -f *-stamp
 	rm -f config.cache config.log config.status
 	rm -f */config.cache */config.log */config.status

commit 5b9e49c2e09680f40d5de6c5bf602f8702066be8
Author: Julien Cristau <jcristau@debian.org>
Date:   Sat Jul 14 15:30:15 2012 +0200

    Upload to experimental

diff --git a/debian/changelog b/debian/changelog
index 8278771..9aaa9af 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-x11proto-randr (1.4.0-1) UNRELEASED; urgency=low
+x11proto-randr (1.4.0-1) experimental; urgency=low
 
   [ Maarten Lankhorst ]
   * New upstream release.
@@ -6,7 +6,7 @@ x11proto-randr (1.4.0-1) UNRELEASED; urgency=low
   [ Julien Cristau ]
   * Add Red Hat copyright notice to debian/copyright.
 
- -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Thu, 12 Jul 2012 15:25:04 +0200
+ -- Julien Cristau <jcristau@debian.org>  Sat, 14 Jul 2012 15:30:02 +0200
 
 x11proto-randr (1.3.99.1-1) experimental; urgency=low
 

commit 7427bc02e1d281c180cc7112d8f0f3b84d1aa7b0
Author: Julien Cristau <jcristau@debian.org>
Date:   Sat Jul 14 15:28:50 2012 +0200

    Add Red Hat copyright notice to debian/copyright.

diff --git a/debian/changelog b/debian/changelog
index 9d33d73..8278771 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,11 @@
 x11proto-randr (1.4.0-1) UNRELEASED; urgency=low
 
+  [ Maarten Lankhorst ]
   * New upstream release.
 
+  [ Julien Cristau ]
+  * Add Red Hat copyright notice to debian/copyright.
+
  -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Thu, 12 Jul 2012 15:25:04 +0200
 
 x11proto-randr (1.3.99.1-1) experimental; urgency=low
diff --git a/debian/copyright b/debian/copyright
index c975758..8a9fb31 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -4,6 +4,7 @@ http://xorg.freedesktop.org/releases/individual/proto/
 Copyright © 2000 Compaq Computer Corporation
 Copyright © 2002 Hewlett-Packard Company
 Copyright © 2006 Intel Corporation
+Copyright © 2008 Red Hat, Inc.
 
 Permission to use, copy, modify, distribute, and sell this software and its
 documentation for any purpose is hereby granted without fee, provided that

commit ca22e7c5c99b05bf4584e5c6efae0eff7488afe7
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Thu Jul 12 15:28:28 2012 +0200

    Bump ChangeLog

diff --git a/ChangeLog b/ChangeLog
index 7caf475..4b46a0d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,184 @@
+commit 5f5cb2767618ad22a5608142513c7dd81927a8d5
+Author: Dave Airlie <airlied@gmail.com>
+Date:   Thu Jul 12 22:45:05 2012 +1000
+
+    bump to 1.4.0 (for release.sh)
+    
+    a trivial commit to make release.sh work.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 74637d53fa8f5bf44258f773c4aaf60053cccfc4
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Mon Jul 9 22:18:22 2012 -0700
+
+    1.4 spec: update Extension Versioning section to include 1.4
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+    Signed-off-by: Dave Airlie <airlied@gmail.com>
+
+commit 7b4b49760ff33022a8120841017bcfb7ffe5f6ac
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Mon Jul 9 22:18:21 2012 -0700
+
+    1.4 spec: Add descriptions of new RRSELECTMASK bits
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+    Signed-off-by: Dave Airlie <airlied@gmail.com>
+
+commit 75a1d1aa8fb539ec5a7a6c8337e46ee8e5de4a36
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Mon Jul 9 22:18:20 2012 -0700
+
+    1.4 spec: Change "LISTof ATOM" to "LISTofATOM" to match other LIST types
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+    Signed-off-by: Dave Airlie <airlied@gmail.com>
+
+commit ef99bda581449d6c8dab7233e287c7bfd578730c
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Fri Jan 20 17:38:16 2012 +0000
+
+    randr: add provider object (v8)
+    
+    A provider object represents a GPU or virtual device that provides
+    rendering or output services to the X server. This protocol
+    allow controlling provider objects for output and offload slave devices.
+    
+    v1.1: fix typo add missing define
+    
+    v2: rename nProperties back to nAtoms, makes server simpler to c-n-p,
+    add missing Get request/reply
+    
+    v3: bring back configure property, no point in diverging from the
+    output property code without good reason.
+    also fix typo pointed out on irc by rei4dan.
+    
+    v3.1: drop cut-n-paste, increase RRNumberRequests
+    
+    v4: reviewed by Aaron, address comments:
+    Fix provider error code
+    add missing notify, remove dri2 references, fix c-n-p issues.
+    
+    v5: add provider change notify event with current role.
+    v5.1: fix cut-n-paste
+    
+    v6:
+    document flags, fix whitespace, add better errors for SetProviderRoles,
+    add new events, fix pending language.
+    
+    v6.1: add missing change notify event struct + missing padding
+    
+    v7: fix a bunch more tab/spaces, add appendix sections for requests, events
+    and errors, remove multimaster flag in favour of max master counter,
+    move some members around to follow other events.
+    
+    v7.1 fix maxMaster + wrong comment, one whitespace
+    v7.2 bump to being randr 1.4, fix some too generic names.
+    v7.3 remove dynamic flag, fix some language
+    
+    v8 overhaul complete protocol, remove set provider roles, add specific
+    methods for setting offload sinks and output sources, add a list
+    of associated providers into the get provider info struct.
+    
+    Earlier-review-by: Aaron Plattner <aplattner@nvidia.com>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit e0c94fa3a9e9f237c65c35e42aaa673994e55b7e
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Mon Jun 25 12:01:03 2012 +0100
+
+    Revert the unused 1.4.0 protocol
+    
+    This patch reverts:
+    Revert "Make SetCrtcConfigs take flags bits to allow partial configuration changes"
+    
+    This reverts commit 105a161a3f5fb67f5fe7e4119629d424672804aa.
+    
+    Revert "Define new semantics for scanout pixmap destruction."
+    
+    This reverts commit 0d32bb0780db35cec31e423faffa7061ec3e697f.
+    
+    Revert "Fix spelling errors, add description of SCANOUTPIXMAPINFO fields."
+    
+    This reverts commit 3e28d3098faa1a420cd0eb0474b2959cecc8813a.
+    
+    Revert "Add some informative text about the reasons for the PCP and ST bits"
+    
+    This reverts commit ebab32deea654d2ceb0538177e78d8ad48cf2a82.
+    
+    Revert "RandR version 1.4 additions"
+    
+    This reverts commit dd14a2275521b4cc50a588c95cc34cca7db51a91.
+    
+    None of this was ever used in the X server and I think it should
+    probably be addressed in smaller pieces later.
+    
+    Acked-by: Keith Packard <keithp@keithp.com>
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 40cce2d010c1eff087301d5bb0098d0e041ed71f
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date:   Wed Jul 27 22:57:56 2011 -0700
+
+    Add "Border" and "BorderDimensions" properties
+    
+    Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+    Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
+
+commit e151e053fbbcfd28b5465b6c495413f16e568e95
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date:   Tue Aug 2 14:58:31 2011 -0700
+
+    Be more specific about property types
+    
+    RandR output properties are X properties, which have a type atom, a
+    "format" (i.e. an element size) and a number of items.  Be explicit
+    about these fields when describing properties in the protocol
+    document.  E.g., instead of specifying "int32 [2 * n] / Atom pairs,"
+    say "Type: INTEGER / Format: 32 / Num. items: 2*n."
+    
+    Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit b5c977ad70b845c278ef52c004d9e5fc3ec97cbf
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Thu May 19 16:26:27 2011 -0400
+
+    Remove nonsense paragraph about dual-link DVI
+    
+    I've never heard of any hardware that behaves so.
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit 105a161a3f5fb67f5fe7e4119629d424672804aa
+Author: Keith Packard <keithp@keithp.com>
+Date:   Wed Feb 16 22:44:30 2011 -0800
+
+    Make SetCrtcConfigs take flags bits to allow partial configuration changes
+    
+    Instead of requiring a complete new configuration to be computed,
+    allow the client to send a partial configuration with only the changed
+    values included. This simplifies clients so that they need not change
+    things they don't understand.
+    
+    This also removes the 'CurrentScanoutPixmap' hack as that is no longer
+    necessary.
+    
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit 611a4e0c7bdc9831e0eda396030a27bcd2c11759
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Thu Jan 6 22:13:22 2011 -0800
+
+    Add missing Red Hat copyright notice to COPYING
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
 commit 0d32bb0780db35cec31e423faffa7061ec3e697f
 Author: Keith Packard <keithp@keithp.com>
 Date:   Mon Dec 6 22:39:07 2010 -0800

commit 583b4fbb7a3b23ce672f4bf1f6edfa772aab5ef8
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Thu Jul 12 15:28:19 2012 +0200

    New upstream release.

diff --git a/debian/changelog b/debian/changelog
index e874a1e..9d33d73 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+x11proto-randr (1.4.0-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Thu, 12 Jul 2012 15:25:04 +0200
+
 x11proto-randr (1.3.99.1-1) experimental; urgency=low
 
   * New git snapshot.

commit 5f5cb2767618ad22a5608142513c7dd81927a8d5
Author: Dave Airlie <airlied@gmail.com>
Date:   Thu Jul 12 22:45:05 2012 +1000

    bump to 1.4.0 (for release.sh)
    
    a trivial commit to make release.sh work.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/randrproto.txt b/randrproto.txt
index 0561907..2b17cee 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -162,6 +162,7 @@ David Dawes for XFree86 DDX integration work
 Thomas Winischhofer for the hardware-accelerated SiS rotation implementation
 Matthew Tippett and Kevin Martin for splitting outputs and CRTCs to more
 fully expose what video hardware can do
+Dave Airlie for the 1.4.0 protocol changes.
 
 			      ❧❧❧❧❧❧❧❧❧❧❧
 

commit 74637d53fa8f5bf44258f773c4aaf60053cccfc4
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Mon Jul 9 22:18:22 2012 -0700

    1.4 spec: update Extension Versioning section to include 1.4
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Dave Airlie <airlied@gmail.com>

diff --git a/randrproto.txt b/randrproto.txt
index c9c0343..0561907 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -1984,7 +1984,7 @@ The RandR extension was developed in parallel with the implementation
 to ensure the feasibility of various portions of the design. As
 portions of the extension are implemented, the version number of the
 extension has changed to reflect the portions of the standard provided.
-This document describes the version 1.2 of the specification, the
+This document describes the version 1.4 of the specification, the
 partial implementations have version numbers less than that. Here's a
 list of what each version provided:
 
@@ -2010,6 +2010,8 @@ list of what each version provided:
 	     transformations.  Added panning.  Added primary outputs.
 	     Added standard properties.
 
+        1.4: Added provider objects for handling multi-GPU systems.
+
 Compatibility between 0.0 and 1.0 was *NOT* preserved, and 0.0 clients
 will fail against 1.0 servers. The wire encoding op-codes were
 changed for GetScreenInfo to ensure this failure in a relatively
@@ -2018,8 +2020,8 @@ graceful way. Version 1.1 servers and clients are cross compatible with
 compatibility from this point. Version 1.2 offers an extended model of the
 system with multiple output support. Version 1.3 adds a cheap version of
 GetScreenResources to avoid expensive DDC operations, CRTC transformations,
-panning, and the primary output concept. 1.2 and 1.3 are backward-compatible
-with 1.1.
+panning, and the primary output concept. Versions 1.2 through 1.4 are
+backward-compatible with 1.1.
 
 			      ❧❧❧❧❧❧❧❧❧❧❧
 

commit 7b4b49760ff33022a8120841017bcfb7ffe5f6ac
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Mon Jul 9 22:18:21 2012 -0700

    1.4 spec: Add descriptions of new RRSELECTMASK bits
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Dave Airlie <airlied@gmail.com>

diff --git a/randrproto.txt b/randrproto.txt
index db37190..c9c0343 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -277,7 +277,10 @@ ROTATION { Rotate_0
 RRSELECTMASK { RRScreenChangeNotifyMask
 	       RRCrtcChangeNotifyMask (New in version 1.2)
 	       RROutputChangeNotifyMask (New in version 1.2)
-	       RROutputPropertyNotifyMask (New in version 1.2) }
+	       RROutputPropertyNotifyMask (New in version 1.2)
+	       RRProviderChangeNotifyMask (New in version 1.4)
+	       RRProviderPropertyNotifyMask (New in version 1.4)
+	       RRResourceChangeNotifyMask (New in version 1.4) }
 
 SIZEID { CARD16 }
 
@@ -401,6 +404,20 @@ The name of this extension is "RANDR".
 	RROutputPropertyNotify events will be sent when properties change on
 	this output.
 
+	New for version 1.4:
+
+	If 'enable' contains RRProviderChangeNotifyMask,
+	RRProviderChangeNotify events will be sent whenever the role for a
+	provider object has changed.
+
+	If 'enable' contains RRProviderPropertyNotifyMask,
+	RRProviderPropertyNotify events will be sent when properties change
+	on a provider object.
+
+	If 'enable' contains RRResourceChangeNotifyMask,
+	RRResourceChangeNotify events will be sent whenever the set of
+	available RandR resources associated with the screen has changed.
+
 ┌───
     RRSetScreenConfig
 	window: WINDOW
@@ -2070,6 +2087,10 @@ A.1 Common Types
 	0x0002	CrtcChangeNotifyMask		Added in version 1.2
 	0x0004	OutputChangeNotifyMask		Added in version 1.2
 	0x0008	OutputPropertyNotifyMask	Added in version 1.2
+	0x0010	ProviderChangeNotifyMask 	Added in version 1.4
+	0x0020	ProviderPropertyNotifyMask	Added in version 1.4
+	0x0040	ResourceChangeNotifyMask	Added in version 1.4
+
 └───
       Event select mask for RRSelectInput
 

commit 75a1d1aa8fb539ec5a7a6c8337e46ee8e5de4a36
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Mon Jul 9 22:18:20 2012 -0700

    1.4 spec: Change "LISTof ATOM" to "LISTofATOM" to match other LIST types
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Dave Airlie <airlied@gmail.com>

diff --git a/randrproto.txt b/randrproto.txt
index 6526b97..db37190 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -661,7 +661,7 @@ dynamic changes in the display environment.
     RRListOutputProperties
 	output:OUTPUT
       ▶
-	atoms: LISTof ATOM
+	atoms: LISTofATOM
 └───
 	Errors: Output
 
@@ -1345,7 +1345,7 @@ dynamic changes in the display environment.
     RRListProviderProperties
 	provider:PROVIDERS
       ▶
-	atoms: LISTof ATOM
+	atoms: LISTofATOM
 └───
 	Errors: Provider
 

commit ef99bda581449d6c8dab7233e287c7bfd578730c
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Jan 20 17:38:16 2012 +0000

    randr: add provider object (v8)
    
    A provider object represents a GPU or virtual device that provides
    rendering or output services to the X server. This protocol
    allow controlling provider objects for output and offload slave devices.
    
    v1.1: fix typo add missing define
    
    v2: rename nProperties back to nAtoms, makes server simpler to c-n-p,
    add missing Get request/reply
    
    v3: bring back configure property, no point in diverging from the
    output property code without good reason.
    also fix typo pointed out on irc by rei4dan.
    
    v3.1: drop cut-n-paste, increase RRNumberRequests
    
    v4: reviewed by Aaron, address comments:
    Fix provider error code
    add missing notify, remove dri2 references, fix c-n-p issues.
    
    v5: add provider change notify event with current role.
    v5.1: fix cut-n-paste
    
    v6:
    document flags, fix whitespace, add better errors for SetProviderRoles,
    add new events, fix pending language.
    
    v6.1: add missing change notify event struct + missing padding
    
    v7: fix a bunch more tab/spaces, add appendix sections for requests, events
    and errors, remove multimaster flag in favour of max master counter,
    move some members around to follow other events.
    
    v7.1 fix maxMaster + wrong comment, one whitespace
    v7.2 bump to being randr 1.4, fix some too generic names.
    v7.3 remove dynamic flag, fix some language
    
    v8 overhaul complete protocol, remove set provider roles, add specific
    methods for setting offload sinks and output sources, add a list
    of associated providers into the get provider info struct.
    
    Earlier-review-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/randr.h b/randr.h
index 04604aa..33d22fb 100644
--- a/randr.h
+++ b/randr.h
@@ -40,11 +40,11 @@ typedef unsigned long	XRandrModeFlags;
 
 #define RANDR_NAME		"RANDR"
 #define RANDR_MAJOR		1
-#define RANDR_MINOR		3
+#define RANDR_MINOR		4
 
-#define RRNumberErrors		3
+#define RRNumberErrors		4
 #define RRNumberEvents		2
-#define RRNumberRequests	32
+#define RRNumberRequests	42
 
 #define X_RRQueryVersion	0
 /* we skip 1 to make old clients fail pretty immediately */
@@ -92,12 +92,28 @@ typedef unsigned long	XRandrModeFlags;
 #define RRTransformScaleDown	    (1L << 2)
 #define RRTransformProjective	    (1L << 3)
 
+/* v1.4 */
+#define X_RRGetProviders	      32
+#define X_RRGetProviderInfo	      33
+#define X_RRSetProviderOffloadSink    34
+#define X_RRSetProviderOutputSource   35
+#define X_RRListProviderProperties    36
+#define X_RRQueryProviderProperty     37
+#define X_RRConfigureProviderProperty 38
+#define X_RRChangeProviderProperty    39
+#define X_RRDeleteProviderProperty    40
+#define X_RRGetProviderProperty	      41
+
 /* Event selection bits */
 #define RRScreenChangeNotifyMask  (1L << 0)
 /* V1.2 additions */
 #define RRCrtcChangeNotifyMask	    (1L << 1)
 #define RROutputChangeNotifyMask    (1L << 2)
 #define RROutputPropertyNotifyMask  (1L << 3)
+/* V1.4 additions */
+#define RRProviderChangeNotifyMask   (1L << 4)
+#define RRProviderPropertyNotifyMask (1L << 5)
+#define RRResourceChangeNotifyMask   (1L << 6)
 
 /* Event codes */
 #define RRScreenChangeNotify	0
@@ -107,7 +123,9 @@ typedef unsigned long	XRandrModeFlags;
 #define  RRNotify_CrtcChange	    0
 #define  RRNotify_OutputChange	    1
 #define  RRNotify_OutputProperty    2
-
+#define  RRNotify_ProviderChange    3
+#define  RRNotify_ProviderProperty  4
+#define  RRNotify_ResourceChange    5
 /* used in the rotation field; rotation and reflection in 0.1 proto. */
 #define RR_Rotate_0		1
 #define RR_Rotate_90		2
@@ -148,6 +166,7 @@ typedef unsigned long	XRandrModeFlags;
 #define BadRROutput		0
 #define BadRRCrtc		1
 #define BadRRMode		2
+#define BadRRProvider		3
 
 /* Conventional RandR output properties */
 
@@ -162,4 +181,11 @@ typedef unsigned long	XRandrModeFlags;
 #define RR_PROPERTY_BORDER		"Border"
 #define RR_PROPERTY_BORDER_DIMENSIONS	"BorderDimensions"
 
+/* roles this device can carry out */
+#define RR_Capability_None 0
+#define RR_Capability_SourceOutput 1
+#define RR_Capability_SinkOutput 2
+#define RR_Capability_SourceOffload 4
+#define RR_Capability_SinkOffload 8
+
 #endif	/* _RANDR_H_ */
diff --git a/randrproto.h b/randrproto.h
index 3b98a9f..30691e7 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -48,6 +48,7 @@
 #define RROutput CARD32
 #define RRMode CARD32
 #define RRCrtc CARD32
+#define RRProvider CARD32
 #define RRModeFlags CARD32
 
 #define Rotation CARD16
@@ -646,6 +647,195 @@ typedef struct {
 #define sz_xRRGetOutputPrimaryReply	32
 
 /*
+ * Additions for V1.4
+ */
+
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    Window	window B32;
+} xRRGetProvidersReq;
+#define sz_xRRGetProvidersReq 8
+
+typedef struct {
+    BYTE	type;
+    CARD8	pad;
+    CARD16	sequenceNumber B16;
+    CARD32	length B32;
+    Time	timestamp B32;
+    CARD16	nProviders;
+    CARD16	pad1 B16;
+    CARD32	pad2 B32;
+    CARD32	pad3 B32;
+    CARD32	pad4 B32;
+    CARD32	pad5 B32;
+} xRRGetProvidersReply;
+#define sz_xRRGetProvidersReply 32
+
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    RRProvider	provider B32;
+    Time	configTimestamp B32;
+} xRRGetProviderInfoReq;
+#define sz_xRRGetProviderInfoReq 12
+
+typedef struct {
+    BYTE	type;
+    CARD8	status;
+    CARD16	sequenceNumber B16;
+    CARD32	length B32;
+    Time	timestamp B32;
+    CARD32	capabilities B32;
+    CARD16	nCrtcs B16;
+    CARD16	nOutputs B16;
+    CARD16	nAssociatedProviders B16;
+    CARD16	nameLength B16;
+    CARD32      pad1 B32;
+    CARD32      pad2 B32;
+} xRRGetProviderInfoReply;
+#define sz_xRRGetProviderInfoReply 32
+
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    RRProvider  provider B32;
+    RRProvider  source_provider B32;
+    Time	configTimestamp B32;
+} xRRSetProviderOutputSourceReq;
+#define sz_xRRSetProviderOutputSourceReq 16
+
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    RRProvider  provider B32;
+    RRProvider  sink_provider B32;
+    Time	configTimestamp B32;
+} xRRSetProviderOffloadSinkReq;
+#define sz_xRRSetProviderOffloadSinkReq 16
+
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    RRProvider	provider B32;
+} xRRListProviderPropertiesReq; 
+#define sz_xRRListProviderPropertiesReq	8
+
+typedef struct {
+    BYTE	type;
+    CARD8	pad0;
+    CARD16	sequenceNumber B16;
+    CARD32	length B32;
+    CARD16	nAtoms B16;
+    CARD16	pad1 B16;
+    CARD32	pad2 B32;
+    CARD32	pad3 B32;
+    CARD32	pad4 B32;
+    CARD32	pad5 B32;
+    CARD32	pad6 B32;
+} xRRListProviderPropertiesReply;
+#define sz_xRRListProviderPropertiesReply	32
+
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    RRProvider	provider B32;
+    Atom	property B32;
+} xRRQueryProviderPropertyReq; 
+#define sz_xRRQueryProviderPropertyReq	12
+
+typedef struct {
+    BYTE	type;
+    BYTE	pad0;
+    CARD16	sequenceNumber B16;
+    CARD32	length B32;
+    BOOL	pending;
+    BOOL	range;
+    BOOL	immutable;
+    BYTE	pad1;
+    CARD32	pad2 B32;
+    CARD32	pad3 B32;
+    CARD32	pad4 B32;
+    CARD32	pad5 B32;
+    CARD32	pad6 B32;
+} xRRQueryProviderPropertyReply;
+#define sz_xRRQueryProviderPropertyReply	32
+
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    RRProvider	provider B32;
+    Atom	property B32;
+    BOOL	pending;
+    BOOL	range;
+    CARD16	pad B16;
+} xRRConfigureProviderPropertyReq; 
+#define sz_xRRConfigureProviderPropertyReq	16
+
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    RRProvider	provider B32;
+    Atom	property B32;
+    Atom	type B32;
+    CARD8	format;
+    CARD8	mode;
+    CARD16	pad;
+    CARD32	nUnits B32;
+} xRRChangeProviderPropertyReq;
+#define sz_xRRChangeProviderPropertyReq	24
+
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    RRProvider	provider B32;
+    Atom	property B32;
+} xRRDeleteProviderPropertyReq;
+#define sz_xRRDeleteProviderPropertyReq	12
+
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    RRProvider	provider B32;
+    Atom	property B32;
+    Atom	type B32;
+    CARD32	longOffset B32;
+    CARD32	longLength B32;
+#ifdef __cplusplus
+    BOOL	_delete;
+#else
+    BOOL	delete;
+#endif
+    BOOL	pending;
+    CARD16	pad1 B16;
+} xRRGetProviderPropertyReq;
+#define sz_xRRGetProviderPropertyReq	28
+
+typedef struct {
+    BYTE	type;
+    CARD8	format;
+    CARD16	sequenceNumber B16;
+    CARD32	length B32;
+    Atom	propertyType B32;
+    CARD32	bytesAfter B32;
+    CARD32	nItems B32;
+    CARD32	pad1 B32;
+    CARD32	pad2 B32;
+    CARD32	pad3 B32;
+} xRRGetProviderPropertyReply;
+#define sz_xRRGetProviderPropertyReply	32
+
+/*
  * event
  */
 typedef struct {
@@ -715,6 +905,50 @@ typedef struct {
 #define sz_xRROutputPropertyNotifyEvent	32
 
 typedef struct {
+    CARD8 type;				/* always evBase + RRNotify */
+    CARD8 subCode;			/* RRNotify_ProviderChange */
+    CARD16 sequenceNumber B16;
+    Time timestamp B32;			/* time provider was changed */
+    Window window B32;			/* window requesting notification */
+    RRProvider provider B32;		/* affected provider */
+    CARD32 pad1 B32;
+    CARD32 pad2 B32;
+    CARD32 pad3 B32;
+    CARD32 pad4 B32;
+} xRRProviderChangeNotifyEvent;
+#define sz_xRRProviderChangeNotifyEvent	32
+
+typedef struct {
+    CARD8 type;				/* always evBase + RRNotify */
+    CARD8 subCode;			/* RRNotify_ProviderProperty */
+    CARD16 sequenceNumber B16;
+    Window window B32;			/* window requesting notification */
+    RRProvider provider B32;		/* affected provider */
+    Atom atom B32;			/* property name */
+    Time timestamp B32;			/* time provider was changed */
+    CARD8 state;			/* NewValue or Deleted */
+    CARD8 pad1;
+    CARD16 pad2 B16;
+    CARD32 pad3 B32;
+    CARD32 pad4 B32;
+} xRRProviderPropertyNotifyEvent;
+#define sz_xRRProviderPropertyNotifyEvent	32
+
+typedef struct {
+    CARD8 type;				/* always evBase + RRNotify */
+    CARD8 subCode;			/* RRNotify_ResourceChange */
+    CARD16 sequenceNumber B16;
+    Time timestamp B32;			/* time resource was changed */
+    Window window B32;			/* window requesting notification */
+    CARD32 pad1 B32;
+    CARD32 pad2 B32;
+    CARD32 pad3 B32;
+    CARD32 pad4 B32;
+    CARD32 pad5 B32;
+} xRRResourceChangeNotifyEvent;
+#define sz_xRRResourceChangeNotifyEvent	32
+
+typedef struct {
     CARD8	reqType;
     CARD8	randrReqType;
     CARD16	length B16;
@@ -784,6 +1018,7 @@ typedef struct {
 #undef RROutput
 #undef RRMode
 #undef RRCrtc
+#undef RRProvider
 #undef Drawable
 #undef Window
 #undef Font
diff --git a/randrproto.txt b/randrproto.txt
index 7c297e2..6526b97 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -1,6 +1,6 @@
 	       The X Resize, Rotate and Reflect Extension
-			     Version 1.3.1
-			       2009-10-5
+			     Version 1.4.0
+			       2012-07-03
 
 			      Jim Gettys
 			   Jim.Gettys@hp.com
@@ -129,6 +129,26 @@ Version 1.4 adds an optional Border property.
      for compensating for the overscan behavior of certain
      televisions.
 
+Version 1.4 adds a new object called a provider object. A provider object
+represents a GPU or virtual device providing services to the X server.
+Providers have a set of abilities and a set of possible roles.
+
+Provider objects are used to control multi-GPU systems. Provider roles can
+be dynamically configured to provide support for:
+
+ 1) Output slaving: plug in a USB device, but have its output rendered
+ using the main GPU. On some dual-GPU laptops, the second GPU isn't
+ connected to the LVDS panel, so we need to use the first GPU as an output
+ slave for the second GPU. 
+
+ 2) offload - For dual-GPU laptops, allow direct rendered applications to be run
+ on the second GPU and display on the first GPU.
+
+ 3) GPU switching - Allow switching between two GPUs as the main screen
+ renderer.
+
+ 4) multiple GPU rendering - This replaces Xinerama.
+
 1.99 Acknowledgements
 
 Our thanks to the contributors to the design found on the xpert mailing
@@ -207,6 +227,8 @@ CRTC
 	A value for a CRTC argument does not name a defined CRTC.
 Mode
 	A value for a MODE argument does not name a defined MODE.
+Provider
+	A value for a PROVIDER argument does not name a defined PROVIDER.
 
 			      ❧❧❧❧❧❧❧❧❧❧❧
 
@@ -307,6 +329,19 @@ REFRESH { rates: LISTofCARD16 }
 
 			      ❧❧❧❧❧❧❧❧❧❧❧
 
+5.5. Protocol Types added in version 1.4 of the extension
+
+PROVIDER { XID }
+
+PROVIDER_CAPS { SourceOutput, SinkOutput, SourceOffload, SinkOffload }
+	Capabilties for this provider:
+	SourceOutput: This device can source output buffers.
+	SinkOutput: This device can sink output buffers.
+	SourceOffload: This device can source offload buffers.
+	SinkOffload: This device can sink offload buffers.
+
+			      ❧❧❧❧❧❧❧❧❧❧❧
+
 6. Extension Initialization
 
 The name of this extension is "RANDR".
@@ -1243,6 +1278,230 @@ dynamic changes in the display environment.
 
 			      ❧❧❧❧❧❧❧❧❧❧❧
 
+7.4 Extension Requests added in version 1.4 of the extension.
+
+┌───
+    RRGetProviders
+	window : WINDOW
+     ▶
+	timestamp: TIMESTAMP
+	providers: LISTofPROVIDER
+└───
+	Errors: Window
+
+	RRGetPRoviders returns the list of providers connected to the screen
+	associated with 'window'.
+
+	'timestamp' indicates when the configuration was last set.
+
+	'providers' contains the list of PROVIDERs associated with the
+	screen.
+
+┌───
+    RRGetProviderInfo
+	provider: PROVIDER
+     ▶
+	capabilities: PROVIDER_CAPS
+	name: STRING


Reply to: