[PATCH 1/2] Revert the unused 1.4.0 protocol
Dave Airlie
airlied at gmail.com
Mon Jun 25 04:19:07 PDT 2012
From: Dave Airlie <airlied at redhat.com>
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.
Signed-off-by: Dave Airlie <airlied at redhat.com>
---
randr.h | 26 +-----
randrproto.h | 122 ----------------------------
randrproto.txt | 244 +-------------------------------------------------------
3 files changed, 4 insertions(+), 388 deletions(-)
diff --git a/randr.h b/randr.h
index 9cb9403..04604aa 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 4
+#define RANDR_MINOR 3
#define RRNumberErrors 3
#define RRNumberEvents 2
-#define RRNumberRequests 37
+#define RRNumberRequests 32
#define X_RRQueryVersion 0
/* we skip 1 to make old clients fail pretty immediately */
@@ -92,28 +92,6 @@ typedef unsigned long XRandrModeFlags;
#define RRTransformScaleDown (1L << 2)
#define RRTransformProjective (1L << 3)
-/* V1.4 additions */
-
-#define RR_SetScreenPixmapSize (1 << 0)
-#define RR_SetScreenSize (1 << 1)
-#define RR_SetScreenSizeInMillimeters (1 << 2)
-#define RR_SetScreenCrtcs (1 << 3)
-
-#define RR_SetCrtcPosition (1 << 4)
-#define RR_SetCrtcMode (1 << 5)
-#define RR_SetCrtcRotation (1 << 6)
-#define RR_SetCrtcOutputs (1 << 7)
-#define RR_SetCrtcSpritePositionTransform (1 << 8)
-#define RR_SetCrtcSpriteImageTransform (1 << 9)
-#define RR_SetCrtcPixmap (1 << 10)
-#define RR_SetCrtcPixmapPosition (1 << 11)
-
-#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 */
diff --git a/randrproto.h b/randrproto.h
index 00bae2d..3b98a9f 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -49,7 +49,6 @@
#define RRMode CARD32
#define RRCrtc CARD32
#define RRModeFlags CARD32
-#define PictFormat CARD32
#define Rotation CARD16
#define SizeID CARD16
@@ -647,126 +646,6 @@ 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;
- CARD32 set 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 + 28)
-
-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;
- CARD32 set 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 36
-
-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 {
@@ -899,7 +778,6 @@ typedef struct {
} xRRSetPanningReply;
#define sz_xRRSetPanningReply 32
-#undef PictFormat
#undef RRModeFlags
#undef RRCrtc
#undef RRMode
diff --git a/randrproto.txt b/randrproto.txt
index e90b1cd..7c297e2 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -1,5 +1,5 @@
The X Resize, Rotate and Reflect Extension
- Version 1.4.0
+ Version 1.3.1
2009-10-5
Jim Gettys
@@ -121,22 +121,7 @@ following features are added in this version:
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.
-
- • 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.
+Version 1.4 adds an optional Border property.
• An optional Border property. This property allows a client to
specify that the viewport of the CRTC is smaller than the active
@@ -144,34 +129,6 @@ underlying hardware to clients
for compensating for the overscan behavior of certain
televisions.
-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
@@ -350,102 +307,6 @@ REFRESH { rates: LISTofCARD16 }
❧❧❧❧❧❧❧❧❧❧❧
-5.4. Protocol Types added in version 1.4 of the extension
-
-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.
-
-SCREENFLAG { SetScreenPixmapSize
- SetScreenSize
- SetScreenSizeInMillimeters
- SetScreenCrtcs }
-
-CRTCFLAG { SetCrtcPosition
- SetCrtcMode
- SetCrtcRotation
- SetCrtcOutputs
- SetCrtcSpritePositionTransform
- SetCrtcSpriteImageTransform
- SetCrtcPixmap
- SetCrtcPixmapPosition }
-
-CRTCCONFIG { crtc: CRTC
- set: SETofCRTCFLAG
- x, y: INT16
- mode: MODE
- rotation: ROTATION
- sprite-position-transform: TRANSFORM
- sprite-image-transform: TRANSFORM
- outputs: LISTofOUTPUT
- pixmap: PIXMAP or None
- pixmap-x, pixmap-y: INT16 }
-
- If 'set' includes SetCrtcSpritePositionTransform, then
- sprite-position-transform is used as in the
- RRSetCrtcSpriteTransform request position-transform parameter.
-
- If 'set' includes SetCrtcSpriteImageTransform, then
- sprite-image-transform is used as in the
- RRSetCrtcSpriteTransform request image-transform parameter.
-
- If 'set' includes SetCrtcPixmap, then '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 'set' includes SetCrtcPixmapPosition, then '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.
-
- If 'set' includes SetCrtcPixmap, then 'pixmap' must specify a
- scanout pixmap as created by RRCreateScanoutPixmap or
- None. Otherwise a Match error results. Furthermore:
-
- * 'pixmap' must be at least as large as the area to be
- scanned out, 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.
-
- * Future crtc changes that do not change the scanout pixmap
- will cause an existing scanout pixmap to be resized to be
- large enough to hold the new mode at the then-current
- pixmap-x/pixmap-y location.
-
- If 'set' includes SetCrtcRotation then:
-
- * Any new or existing scanout pixmap must have had the
- specified 'rotation' included as a part of its creation
- parameters, or a Match error results.
-
- * If no scanout pixmap is in use, then the crtc must support
- 'rotation' else a Value error results.
-
- ❧❧❧❧❧❧❧❧❧❧❧
-
6. Extension Initialization
The name of this extension is "RANDR".
@@ -1382,107 +1243,6 @@ 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
- set: SETofSCREENFLAG
- 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 can be set
- in a single operation, either succeeding or failing without
- any partial execution.
-
- If 'set' includes 'SetScreenPixmapSize', then
- 'screen-pixmap-width' and 'screen-pixmap-height' specify the
- new screen pixmap size.
-
- If 'set' includes 'SetScreenSize', then 'screen-width' and
- 'screen-height' specify the new screen size.
-
- If 'set' includes 'SetScreenSizeInMillimeters', then
- 'width-in-millimeters' and 'height-in-millimeters' specify
- the new screen physical size.
-
- If 'set' includes 'SetScreenCrtcs', then 'configs' includes
- the list of new CRTC configurations.
-
- 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
--
1.7.10.2
More information about the xorg-devel
mailing list