proto/randrproto: Branch 'master' - 5 commits

Keith Packard keithp at kemper.freedesktop.org
Mon Dec 6 22:43:23 PST 2010


 configure.ac   |    2 
 randr.h        |   14 ++
 randrproto.h   |  120 ++++++++++++++++++++++++
 randrproto.txt |  278 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 4 files changed, 371 insertions(+), 43 deletions(-)

New commits:
commit 0d32bb0780db35cec31e423faffa7061ec3e697f
Author: Keith Packard <keithp at keithp.com>
Date:   Mon Dec 6 22:39:07 2010 -0800

    Define new semantics for scanout pixmap destruction.
    
    This is not yet implemented in the X server...
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/randrproto.txt b/randrproto.txt
index e15a798..ee513e7 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -406,6 +406,12 @@ CRTCCONFIG { crtc: CRTC
 	included as a part of its creation paramaeters, or a Match
 	error results.
 
+	If 'pixmap' is destroyed while still being used as a scanout
+	pixmap, then the associated CRTC will have its scanout pixmap
+	set back to None, the CRTC origin set back to 0,0 (to make
+	sure it fits) and the screen pixmap width and height increased
+	to be at least as big as the current CRTC mode.
+
 			      ❧❧❧❧❧❧❧❧❧❧❧
 
 6. Extension Initialization
commit 3e28d3098faa1a420cd0eb0474b2959cecc8813a
Author: Keith Packard <keithp at keithp.com>
Date:   Mon Dec 6 10:01:21 2010 -0800

    Fix spelling errors, add description of SCANOUTPIXMAPINFO fields.
    
    Review results from Aaron Plattner.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/randrproto.h b/randrproto.h
index 54abafc..ba9b703 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -897,6 +897,7 @@ typedef struct {
 } xRRSetPanningReply;
 #define sz_xRRSetPanningReply	32
 
+#undef PictFormat
 #undef RRModeFlags
 #undef RRCrtc
 #undef RRMode
diff --git a/randrproto.txt b/randrproto.txt
index f700a84..e15a798 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -131,8 +131,7 @@ underlying hardware to clients
 
    • Per-crtc pixmaps. This provides for multiple scan-out buffers
      which applications can create and assign to arbitrary collections
-     of crtcs. These pixmaps can be associated with a window for use
-     with OpenGL or drawn to directly.
+     of crtcs.
 
    • Sprite position and image transforms. These provide a projective
      transform for both the hot spot location and the sprite image
@@ -356,6 +355,22 @@ SCANOUTPIXMAPINFO { format: PICTFORMAT
 		    maxWidth, maxHeight: CARD16
 		    rotations: SETofROTATION }
 
+	'format' is the format of the pixels within the scanout
+	pixmap. Only 'Direct' formats are supported, this will never
+	be an 'Indexed' format.
+
+	'maxWidth' and 'maxHeight' define the largest supported
+	scanout pixmap. There is no minimum size; scanout pixmaps down
+	to 1x1 may be created.
+
+	'rotations' lists the set of rotations which can be provided
+	without additional latency or memory usage within the
+	environment. This typically means that they are supported
+	directly by the hardware. It is expected that a compositing
+	manager will perform other transforms as a part of the
+	compositing process in conjunction with the sprite transforms
+	described in this extension.
+
 CRTCCONFIG { crtc: CRTC
 	     x, y: INT16
 	     mode: MODE
@@ -363,7 +378,7 @@ CRTCCONFIG { crtc: CRTC
 	     sprite-position-transform: TRANSFORM
 	     sprite-image-transform: TRANSFORM
 	     outputs: LISTofOUTPUT
-	     pixmap: PIXMAP, None or CurrenScanoutPixmap
+	     pixmap: PIXMAP, None or CurrentScanoutPixmap
 	     pixmap-x, pixmap-y: INT16 }
 
 	The sprite-position-transform and sprite-image-transform
@@ -373,7 +388,7 @@ CRTCCONFIG { crtc: CRTC
 	'pixmap' specifies the origin of the pixel data to be presented on
 	'crtc'. If 'pixmap' is None, then data will be presented from
 	the screen pixmap. If 'pixmap' is 'CurrentScanoutPixmap', then
-	whatever source is current in use will remain in use, whether
+	whatever source is currently in use will remain in use, whether
 	that is the screen pixmap or some other allocated scanout pixmap.
 
 	'pixmap-x' and 'pixmap-y' specify the origin of the scanout
commit ebab32deea654d2ceb0538177e78d8ad48cf2a82
Author: Keith Packard <keithp at keithp.com>
Date:   Sun Dec 5 23:22:26 2010 -0800

    Add some informative text about the reasons for the PCP and ST bits
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/randrproto.txt b/randrproto.txt
index 0d537ac..f700a84 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -134,12 +134,44 @@ underlying hardware to clients
      of crtcs. These pixmaps can be associated with a window for use
      with OpenGL or drawn to directly.
 
+   • Sprite position and image transforms. These provide a projective
+     transform for both the hot spot location and the sprite image
+     itself for each CRTC.
+
    • RRSetCrtcConfigs request. This supplies a set of
      crtc configurations to the server that must be applied together
      or not at all. This can reduce screen flicker while also
      providing the server a complete configuration for appropriate
      resource management.
 
+The first two additions, per-crtc pixmaps and sprite transforms are
+designed to solve two problems:
+
+ 1) Screen transforms. The software transform code in the X server
+    uses a shadow frame buffer, adding another copy to every graphics
+    operation. Worse, the server has no idea about when clients are
+    done drawing a frame, so the user gets additional latency and
+    judder.
+
+    The goal is to move this operation out to the compositing manager
+    which already deals with an extra copy of the frame buffer for
+    many operations. Have the compositing manager create and draw to a
+    separate pixmap for scanout. It can perform whatever transforms
+    are required to get the image in the right orientation for the
+    user.
+
+ 2) Hardware scanout engine size limits. With a single scanout buffer
+    for the entire screen, it's possible for the user to ask for a
+    configuration which requires that scanout buffer to be larger than
+    the hardware is capable of scanning out from. Again, having the
+    compositing manager create a pixmap for each CRTC will allow for
+    any configuration where monitor position within the virtual space
+    isn't limited by the scanout limits.
+
+In both of these cases, the Sprite transforms are necessary to ensure
+that the sprite appears at the desired spot on each CRTC and with the
+right shape.
+
 1.99 Acknowledgements
 
 Our thanks to the contributors to the design found on the xpert mailing
commit dd14a2275521b4cc50a588c95cc34cca7db51a91
Author: Keith Packard <keithp at keithp.com>
Date:   Sun Dec 5 20:31:18 2010 -0800

    RandR version 1.4 additions
    
    This adds the specification and protocol header definitions for the
    RandR 1.4 protocol changes, including
    
     * Per crtc pixmaps and pixmap origins
     * Sprite position and image transforms
     * SetCrtcConfigs request
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/configure.ac b/configure.ac
index 4ef4bb6..0c71460 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ([2.60])
-AC_INIT([RandrProto], [1.3.2],
+AC_INIT([RandrProto], [1.4.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
diff --git a/randr.h b/randr.h
index 1ee95f9..4480f5c 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 RRNumberEvents		2
-#define RRNumberRequests	32
+#define RRNumberRequests	37
 
 #define X_RRQueryVersion	0
 /* we skip 1 to make old clients fail pretty immediately */
@@ -92,6 +92,13 @@ typedef unsigned long	XRandrModeFlags;
 #define RRTransformScaleDown	    (1L << 2)
 #define RRTransformProjective	    (1L << 3)
 
+/* V1.4 additions */
+#define X_RRQueryScanoutPixmaps	    32
+#define X_RRCreateScanoutPixmap	    33
+#define X_RRSetCrtcSpriteTransform  34
+#define X_RRGetCrtcSpriteTransform  35
+#define X_RRSetCrtcConfigs	    36
+
 /* Event selection bits */
 #define RRScreenChangeNotifyMask  (1L << 0)
 /* V1.2 additions */
@@ -149,6 +156,9 @@ typedef unsigned long	XRandrModeFlags;
 #define BadRRCrtc		1
 #define BadRRMode		2
 
+/* new in 1.4 protocol */
+#define RR_CurrentScanoutPixmap	1	/* current scanout pixmap in RRSetCrtcConfigs */
+
 /* Conventional RandR output properties */
 
 #define RR_PROPERTY_BACKLIGHT		"Backlight"
diff --git a/randrproto.h b/randrproto.h
index 3b98a9f..54abafc 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -49,6 +49,7 @@
 #define RRMode CARD32
 #define RRCrtc CARD32
 #define RRModeFlags CARD32
+#define PictFormat CARD32
 
 #define Rotation CARD16
 #define SizeID CARD16
@@ -646,6 +647,124 @@ typedef struct {
 #define sz_xRRGetOutputPrimaryReply	32
 
 /*
+ * Additions for 1.4
+ */
+
+typedef struct {
+    PictFormat format B32;
+    CARD16 maxWidth B16, maxHeight B16;
+    Rotation rotations B16;
+    CARD16 pad0 B16;
+    CARD32 pad1 B32;
+} xRRScanoutPixmapInfo;
+#define sz_xRRScanoutPixmapInfo	16
+
+typedef struct {
+    RRCrtc crtc B32;
+    INT16 x B16, y B16;
+    RRMode mode B32;
+    Rotation rotation B16;
+    CARD16 nOutput B16;
+    xRenderTransform spritePositionTransform;
+    xRenderTransform spriteImageTransform;
+    Pixmap pixmap B32;
+    INT16 xPixmap B16, yPixmap B16;
+} xRRCrtcConfig;
+#define sz_xRRCrtcConfig (2*sz_xRenderTransform + 24)
+
+typedef struct {
+    CARD8 reqType;
+    CARD8 randrReqType;
+    CARD16 length B16;
+    Drawable drawable B32;
+} xRRQueryScanoutPixmapsReq;
+#define sz_xRRQueryScanoutPixmapsReq	8
+
+typedef struct {
+    BYTE	type;
+    CARD8	pad;
+    CARD16	sequenceNumber B16;
+    CARD32	length B32;
+    CARD32	pad0 B32;
+    CARD32	pad1 B32;
+    CARD32	pad2 B32;
+    CARD32	pad3 B32;
+    CARD32	pad4 B32;
+    CARD32	pad5 B32;
+} xRRQueryScanoutPixmapsReply;
+#define sz_xRRQueryScanoutPixmapsReply	32
+
+typedef struct {
+    CARD8 reqType;
+    CARD8 randrReqType;
+    CARD16 length B16;
+    Pixmap pid B32;
+    Drawable drawable B32;
+    CARD16 width B16, height B16;
+    PictFormat format B32;
+    Rotation rotations B16;
+    CARD16 pad B16;
+} xRRCreateScanoutPixmapReq;
+#define sz_xRRCreateScanoutPixmapReq	24
+
+typedef struct {
+    CARD8 reqType;
+    CARD8 randrReqType;
+    CARD16 length B16;
+    RRCrtc crtc B32;
+    xRenderTransform positionTransform;
+    xRenderTransform imageTransform;
+} xRRSetCrtcSpriteTransformReq;
+#define sz_xRRSetCrtcSpriteTransformReq	(2*sz_xRenderTransform + 8)
+
+typedef struct {
+    CARD8 reqType;
+    CARD8 randrReqType;
+    CARD16 length B16;
+    RRCrtc crtc B32;
+} xRRGetCrtcSpriteTransformReq;
+#define sz_xRRGetCrtcSpriteTransformReq	8
+
+typedef struct {
+    BYTE type;
+    CARD8 pad;
+    CARD16 sequenceNumber B16;
+    CARD32 length B32;
+    xRenderTransform positionTransform;
+    xRenderTransform imageTransform;
+} xRRGetCrtcSpriteTransformReply;
+#define sz_xRRGetCrtcSpriteTransformReply	(2*sz_xRenderTransform + 8)
+
+typedef struct {
+    CARD8 reqType;
+    CARD8 randrReqType;
+    CARD16 length B16;
+    Drawable drawable B32;
+    CARD16 screenPixmapWidth B16, screenPixmapHeight B16;
+    CARD16 screenWidth B16, screenHeight B16;
+    CARD32 widthInMillimeters B32;
+    CARD32 heightInMillimeters B32;
+    CARD16 nConfigs B16;
+    CARD16 pad0 B16;
+    CARD32 pad1 B32;
+} xRRSetCrtcConfigsReq;
+#define sz_xRRSetCrtcConfigsReq 32
+
+typedef struct {
+    BYTE	type;
+    CARD8	status;
+    CARD16	sequenceNumber B16;
+    CARD32	length B32;
+    CARD32	pad0 B32;
+    CARD32	pad1 B32;
+    CARD32	pad2 B16;
+    CARD32	pad3 B32;
+    CARD32	pad4 B32;
+    CARD32	pad5 B32;
+} xRRSetCrtcConfigsReply;
+#define sz_xRRSetCrtcConfigsReply	32
+
+/*
  * event
  */
 typedef struct {
diff --git a/randrproto.txt b/randrproto.txt
index 9f3d4a1..0d537ac 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -124,7 +124,23 @@ following features are added in this version:
    • Panning. It was removed with RandR 1.2 because the old semantics didn't
      fit any longer. With RandR 1.3 panning can be specified per crtc.
 
-1.1 Acknowledgements
+1.4 Introduction to version 1.4 of the extension
+
+Version 1.4 adds a couple more capabilities to further expose the
+underlying hardware to clients
+
+   • Per-crtc pixmaps. This provides for multiple scan-out buffers
+     which applications can create and assign to arbitrary collections
+     of crtcs. These pixmaps can be associated with a window for use
+     with OpenGL or drawn to directly.
+
+   • RRSetCrtcConfigs request. This supplies a set of
+     crtc configurations to the server that must be applied together
+     or not at all. This can reduce screen flicker while also
+     providing the server a complete configuration for appropriate
+     resource management.
+
+1.99 Acknowledgements
 
 Our thanks to the contributors to the design found on the xpert mailing
 list, in particular:
@@ -302,6 +318,49 @@ REFRESH { rates: LISTofCARD16 }
 
 			      ❧❧❧❧❧❧❧❧❧❧❧
 
+5.4. Protocol Types added in version 1.4 of the extension
+
+SCANOUTPIXMAPINFO { format: PICTFORMAT
+		    maxWidth, maxHeight: CARD16
+		    rotations: SETofROTATION }
+
+CRTCCONFIG { crtc: CRTC
+	     x, y: INT16
+	     mode: MODE
+	     rotation: ROTATION
+	     sprite-position-transform: TRANSFORM
+	     sprite-image-transform: TRANSFORM
+	     outputs: LISTofOUTPUT
+	     pixmap: PIXMAP, None or CurrenScanoutPixmap
+	     pixmap-x, pixmap-y: INT16 }
+
+	The sprite-position-transform and sprite-image-transform
+	values are used as in the RRSetCrtcSpriteTransform request
+	position-transform and image-transform parameters.
+
+	'pixmap' specifies the origin of the pixel data to be presented on
+	'crtc'. If 'pixmap' is None, then data will be presented from
+	the screen pixmap. If 'pixmap' is 'CurrentScanoutPixmap', then
+	whatever source is current in use will remain in use, whether
+	that is the screen pixmap or some other allocated scanout pixmap.
+
+	'pixmap-x' and 'pixmap-y' specify the origin of the scanout
+	data within the pixmap, the area from that location to
+	pixmap-x + width-of(mode), pixmap-y + height-of(mode) is what
+	will be seen on the connected outputs.
+
+	The pixmap value must specify a scanout pixmap as created by
+	RRCreateScanoutPixmap, or a Match error results.
+
+	The specified pixmap must be at least as large as the area to
+	be scanned out, or a Match error results.
+
+	The specified pixmap must have had the specified 'rotation'
+	included as a part of its creation paramaeters, or a Match
+	error results.
+
+			      ❧❧❧❧❧❧❧❧❧❧❧
+
 6. Extension Initialization
 
 The name of this extension is "RANDR".
@@ -1238,6 +1297,92 @@ dynamic changes in the display environment.
 
 			      ❧❧❧❧❧❧❧❧❧❧❧
 
+7.3. Extension Requests added in version 1.4 of the extension.
+
+┌───
+    RRQueryScanoutPixmaps
+	window: WINDOW
+      â–¶
+	infos: LISTofSCANOUTPIXMAPINFO
+└───
+	Errors: Window
+
+	This request returns information about the server support for
+	alternate scanout pixmaps. For each pictformat, there is a set
+	of rotations and a maximum supported size. The rotations here
+	are those provided by the scanout hardware itself, not by
+	software emulation.
+
+┌───
+    RRCreateScanoutPixmap
+	pixmap: PIXMAP
+	drawable: DRAWABLE
+	width, height: CARD16
+	format: PICTFORMAT
+	rotations: SETofROTATION
+└───
+	Errors: Drawable, Match, Value
+
+	Creates a pixmap which can subsequently be used as a scanout
+	buffer for the screen associated with 'drawable'. 'rotations'
+	is the set of rotation values which may be used with the
+	resulting scanout buffer when it is associated with a CRTC.
+
+	'format' must be one of the supported scanout formats, or a
+	Match error results.
+
+	'width' and 'height' must be within the supported range for
+	the specified format or a Value error results.
+
+	'rotations' must be a subset of those supported for the
+	specified format or a Match error results.
+
+┌───
+    RRSetCrtcSpriteTransform
+	crtc: CRTC
+	position-transform: TRANSFORM
+	image-transform: TRANSFORM
+└───
+	Sets the sprite transforms for the specified crtc, any sprites
+	presented on this crtc will have their positions transformed
+	by the position-transform matrix. Sprite images displayed on the crtc
+	will be transformed by the image-transform matrix.
+
+┌───
+    RRGetCrtcSpriteTransform
+	crtc: CRTC
+      â–¶
+	position-transform: TRANSFORM
+	image-transform: TRANSFORM
+└───
+	Gets the sprite transforms for the specified crtc.
+
+┌───
+    RRSetCrtcConfigs
+	drawable: DRAWABLE
+	screen-pixmap-width: CARD16
+	screen-pixmap-height: CARD16
+	screen-width: CARD16
+	screen-height: CARD16
+	width-in-millimeters: CARD32
+	height-in-millimeters: CARD32
+	configs: LISTofCRTCCONFIG
+      â–¶
+	status: RRCONFIGSTATUS
+└───
+	Errors: Value, Match
+
+	This works much like RRSetScreenSize followed by a sequence of
+	RRSetCrtcConfig, except that the entire configuration is set
+	in a single operation, either succeeding or failing without
+	any partial execution.
+
+	In addition to the pre-1.4 semantics, this request adds the
+	ability to specific a scanout pixmap for each crtc, and
+	integrates the 1.4 sprite transform request as well.
+
+			      ❧❧❧❧❧❧❧❧❧❧❧
+
 8. Extension Events
 
 Clients MAY select for ConfigureNotify on the root window to be
commit 1325b011247e52cd8ffd0ca96408d77ea22ffaaa
Author: Keith Packard <keithp at keithp.com>
Date:   Sun Dec 5 20:30:43 2010 -0800

    Whitespace cleanups in randrproto.txt
    
    This just eliminates some ugly space/tab combos
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Reviewed-by: Cyril Brulebois <kibi at debian.org>

diff --git a/randrproto.txt b/randrproto.txt
index 016532c..9f3d4a1 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -29,14 +29,14 @@ protocol described here, as it has been overtaken by events.
 
 These events include:
       â–º Modern toolkits (in this case, GTK+ 2.x) have progressed to the point
-        of implementing migration between screens of arbitrary depths
+	of implementing migration between screens of arbitrary depths
       â–º The continued advance of Moore's law has made limited amounts of VRAM
-        less of an issue, reducing the pressure to implement depth switching
+	less of an issue, reducing the pressure to implement depth switching
 	on laptops or desktop systems
       â–º The continued decline of legacy toolkits whose design would have
-        required depth switching to support migration
+	required depth switching to support migration
       â–º The lack of depth switching implementation experience in the
-        intervening time, due to events beyond our control
+	intervening time, due to events beyond our control
 
 Additionally, the requirement to support depth switching might
 complicate other re-engineering of the device independent part of the
@@ -138,7 +138,7 @@ 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
 
-                              ❧❧❧❧❧❧❧❧❧❧❧
+			      ❧❧❧❧❧❧❧❧❧❧❧
 
 2. Screen change model
 
@@ -182,7 +182,7 @@ pop-up menus and other pop up windows will position themselves correctly in
 the face of screen configuration changes (the issue is ensuring that pop-ups
 are visible on the reconfigured screen).
 
-                              ❧❧❧❧❧❧❧❧❧❧❧
+			      ❧❧❧❧❧❧❧❧❧❧❧
 
 3. Data Types
 
@@ -190,7 +190,7 @@ The subpixel order is shared with the Render extension, and is documented
 there. The only datatype defined is the screen size, defined in the normal
 (0 degree) orientation.
 
-                              ❧❧❧❧❧❧❧❧❧❧❧
+			      ❧❧❧❧❧❧❧❧❧❧❧
 
 4. Errors
 
@@ -203,7 +203,7 @@ CRTC
 Mode
 	A value for a MODE argument does not name a defined MODE.
 
-                              ❧❧❧❧❧❧❧❧❧❧❧
+			      ❧❧❧❧❧❧❧❧❧❧❧
 
 5. Protocol Types
 
@@ -266,11 +266,11 @@ CONNECTION { Connected, Disconnected, UnknownConnection }
 	connected to a monitor or other presentation device.
 
 SUBPIXELORDER { SubPixelUnknown		The subpixel order uses the Render
-	        SubPixelHorizontalRGB	extensions definitions; they are here
-	        SubPixelHorizontalBGR	only for convenience.
-	        SubPixelVerticalRGB
-	        SubPixelVerticalBGR
-	        SubPixelNone }
+		SubPixelHorizontalRGB	extensions definitions; they are here
+		SubPixelHorizontalBGR	only for convenience.
+		SubPixelVerticalRGB
+		SubPixelVerticalBGR
+		SubPixelNone }
 
 SCREENSIZE { widthInPixels, heightInPixels: CARD16
 	     widthInMillimeters, heightInMillimeters: CARD16 }
@@ -292,15 +292,15 @@ MODEFLAG { HSyncPositive
 
 MODEINFO { id: MODE
 	   name: STRING
-           width, height: CARD16
-           dotClock: CARD32
-           hSyncStart, hSyncEnd, hTotal, hSkew: CARD16
-           vSyncStart, vSyncEnd, vTotal: CARD16
-           modeFlags: SETofMODEFLAG }
+	   width, height: CARD16
+	   dotClock: CARD32
+	   hSyncStart, hSyncEnd, hTotal, hSkew: CARD16
+	   vSyncStart, vSyncEnd, vTotal: CARD16
+	   modeFlags: SETofMODEFLAG }
 
 REFRESH { rates: LISTofCARD16 }
 
-                              ❧❧❧❧❧❧❧❧❧❧❧
+			      ❧❧❧❧❧❧❧❧❧❧❧
 
 6. Extension Initialization
 
@@ -323,7 +323,7 @@ The name of this extension is "RANDR".
 	It is the clients responsibility to ensure that the server
 	supports a version which is compatible with its expectations.
 
-                              ❧❧❧❧❧❧❧❧❧❧❧
+			      ❧❧❧❧❧❧❧❧❧❧❧
 
 7. Extension Requests
 
@@ -564,7 +564,7 @@ dynamic changes in the display environment.
 	name: STRING
 	connection: CONNECTION
 	subpixel-order: SUBPIXELORDER
-        widthInMillimeters, heightInMillimeters: CARD32
+	widthInMillimeters, heightInMillimeters: CARD32
 	crtcs: LISTofCRTC
 	clones: LISTofOUTPUT
 	modes: LISTofMODE
@@ -619,9 +619,9 @@ dynamic changes in the display environment.
 
 ┌───
     RRListOutputProperties
-    	output:OUTPUT
+	output:OUTPUT
       â–¶
-      	atoms: LISTof ATOM
+	atoms: LISTof ATOM
 └───
 	Errors: Output
 
@@ -633,7 +633,7 @@ dynamic changes in the display environment.
 	output: OUTPUT
 	property: ATOM
       â–¶
-      	pending: BOOL
+	pending: BOOL
 	range: BOOL
 	immutable: BOOL
 	valid-values: LISTofINT32
@@ -663,7 +663,7 @@ dynamic changes in the display environment.
     RRConfigureOutputProperty
 	output: OUTPUT
 	property: ATOM
-      	pending: BOOL
+	pending: BOOL
 	range: BOOL
 	valid-values: LISTofINT32
 └───
@@ -680,7 +680,7 @@ dynamic changes in the display environment.
 
 ┌───
     RRChangeOutputProperty
-    	output: OUTPUT
+	output: OUTPUT
 	property, type: ATOM
 	format: {8, 16, 32}
 	mode: { Replace, Prepend, Append }
@@ -717,7 +717,7 @@ dynamic changes in the display environment.
 
 ┌───
     RRDeleteOutputProperty
-    	output: OUTPUT
+	output: OUTPUT
 	property: ATOM
 └───
 	Errors: Atom, Output
@@ -728,7 +728,7 @@ dynamic changes in the display environment.
 
 ┌───
     RRGetOutputProperty
-    	output: OUTPUT
+	output: OUTPUT
 	property: ATOM
 	type: ATOM or AnyPropertyType
 	long-offset, long-length: CARD32
@@ -779,10 +779,10 @@ dynamic changes in the display environment.
 
 ┌───
     RRCreateMode
-    	window: WINDOW
+	window: WINDOW
 	modeinfo: MODEINFO
       â–¶
-      	mode: MODE
+	mode: MODE
 └───
 	Errors: Window, Name, Value
 
@@ -795,7 +795,7 @@ dynamic changes in the display environment.
 
 ┌───
     RRDestroyMode
-      	mode: MODE
+	mode: MODE
 └───
 	Errors: Mode, Access
 
@@ -973,7 +973,7 @@ dynamic changes in the display environment.
     RRGetCrtcGamma
 	crtc: CRTC
       â–¶
-      	red: LISTofCARD16
+	red: LISTofCARD16
 	green: LISTofCARD16
 	blue: LISTofCARD16
 └───
@@ -1236,7 +1236,7 @@ dynamic changes in the display environment.
 
 	RRGetOutputPrimary returns the primary output for the screen.
 
-                              ❧❧❧❧❧❧❧❧❧❧❧
+			      ❧❧❧❧❧❧❧❧❧❧❧
 
 8. Extension Events
 
@@ -1372,7 +1372,7 @@ factors, such as re-cabling a monitor, etc.
 	just at the time when a display manager or log in script might
 	be changing the monitor size or configuration.
 
-                              ❧❧❧❧❧❧❧❧❧❧❧
+			      ❧❧❧❧❧❧❧❧❧❧❧
 
 9. Properties
 
@@ -1554,7 +1554,7 @@ Property			Immutable	Mandatory since
 ────────			─────────	───────────────
 Backlight			no		not mandatory
 
-                              ❧❧❧❧❧❧❧❧❧❧❧
+			      ❧❧❧❧❧❧❧❧❧❧❧
 
 10. Extension Versioning
 
@@ -1599,7 +1599,7 @@ 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.
 
-                              ❧❧❧❧❧❧❧❧❧❧❧
+			      ❧❧❧❧❧❧❧❧❧❧❧
 
 11. Relationship with other extensions
 
@@ -1636,7 +1636,7 @@ re-querying the configuration with the Xinerama extension will get updated
 information. It is probably better to view RandR as a superset of Xinerama
 at this point and use it in preference to Xinerama where both are present.
 
-                              ❧❧❧❧❧❧❧❧❧❧❧
+			      ❧❧❧❧❧❧❧❧❧❧❧
 
 Appendix A. Protocol Encoding
 
@@ -1742,11 +1742,11 @@ errors if used in version 1.0.
 	4	CARD32			minor version
       â–¶
 	1	1			Reply
-        1				unused
+	1				unused
 	2	CARD16			sequence number
 	4	0			reply length
 	1	CARD32			major version
-        1	CARD32			minor version
+	1	CARD32			minor version
 └───
 ┌───
     RRSetScreenConfig


More information about the xorg-commit mailing list