File n_presentproto-1.3-2023.2.patch of Package presentproto

Index: presentproto-1.1/presentproto.h
===================================================================
--- presentproto-1.1.orig/presentproto.h
+++ presentproto-1.1/presentproto.h
@@ -32,55 +32,55 @@
 #define EventID CARD32
 
 typedef struct {
-    Window  window B32;
-    CARD32  serial B32;
+    Window  window;
+    CARD32  serial;
 } xPresentNotify;
 #define sz_xPresentNotify               8
 
 typedef struct {
     CARD8   reqType;
     CARD8   presentReqType;
-    CARD16  length B16;
-    CARD32  majorVersion B32;
-    CARD32  minorVersion B32;
+    CARD16  length;
+    CARD32  majorVersion;
+    CARD32  minorVersion;
 } xPresentQueryVersionReq;
 #define sz_xPresentQueryVersionReq   12
 
 typedef struct {
     BYTE    type;   /* X_Reply */
     BYTE    pad1;
-    CARD16  sequenceNumber B16;
-    CARD32  length B32;
-    CARD32  majorVersion B32;
-    CARD32  minorVersion B32;
-    CARD32  pad2 B32;
-    CARD32  pad3 B32;
-    CARD32  pad4 B32;
-    CARD32  pad5 B32;
+    CARD16  sequenceNumber;
+    CARD32  length;
+    CARD32  majorVersion;
+    CARD32  minorVersion;
+    CARD32  pad2;
+    CARD32  pad3;
+    CARD32  pad4;
+    CARD32  pad5;
 } xPresentQueryVersionReply;
 #define sz_xPresentQueryVersionReply	32
 
 typedef struct {
     CARD8   reqType;
     CARD8   presentReqType;
-    CARD16  length B16;
-    Window  window B32;
+    CARD16  length;
+    Window  window;
 
-    Pixmap  pixmap B32;
-    CARD32  serial B32;
+    Pixmap  pixmap;
+    CARD32  serial;
 
-    Region  valid B32;
-    Region  update B32;
+    Region  valid;
+    Region  update;
 
-    INT16   x_off B16;
-    INT16   y_off B16;
-    CARD32  target_crtc B32;
+    INT16   x_off;
+    INT16   y_off;
+    CARD32  target_crtc;
 
-    XSyncFence wait_fence B32;
-    XSyncFence idle_fence B32;
+    XSyncFence wait_fence;
+    XSyncFence idle_fence;
 
-    CARD32  options B32;
-    CARD32  pad1 B32;
+    CARD32  options;
+    CARD32  pad1;
 
     CARD64  target_msc;
     CARD64  divisor;
@@ -92,11 +92,11 @@ typedef struct {
 typedef struct {
     CARD8   reqType;
     CARD8   presentReqType;
-    CARD16  length B16;
-    Window  window B32;
+    CARD16  length;
+    Window  window;
 
-    CARD32  serial B32;
-    CARD32  pad0 B32;
+    CARD32  serial;
+    CARD32  pad0;
 
     CARD64  target_msc;
     CARD64  divisor;
@@ -107,32 +107,32 @@ typedef struct {
 typedef struct {
     CARD8   reqType;
     CARD8   presentReqType;
-    CARD16  length B16;
-    CARD32  eid B32;
-    CARD32  window B32;
-    CARD32  eventMask B32;
+    CARD16  length;
+    CARD32  eid;
+    CARD32  window;
+    CARD32  eventMask;
 } xPresentSelectInputReq;
 #define sz_xPresentSelectInputReq   16
 
 typedef struct {
     CARD8   reqType;
     CARD8   presentReqType;
-    CARD16  length B16;
-    CARD32  target B32;
+    CARD16  length;
+    CARD32  target;
 } xPresentQueryCapabilitiesReq;
 #define sz_xPresentQueryCapabilitiesReq   8
 
 typedef struct {
     BYTE    type;   /* X_Reply */
     BYTE    pad1;
-    CARD16  sequenceNumber B16;
-    CARD32  length B32;
-    CARD32  capabilities B32;
-    CARD32  pad3 B32;
-    CARD32  pad4 B32;
-    CARD32  pad5 B32;
-    CARD32  pad6 B32;
-    CARD32  pad7 B32;
+    CARD16  sequenceNumber;
+    CARD32  length;
+    CARD32  capabilities;
+    CARD32  pad3;
+    CARD32  pad4;
+    CARD32  pad5;
+    CARD32  pad6;
+    CARD32  pad7;
 } xPresentQueryCapabilitiesReply;
 #define sz_xPresentQueryCapabilitiesReply       32
 
@@ -145,36 +145,36 @@ typedef struct {
 typedef struct {
     CARD8 type;
     CARD8 extension;
-    CARD16 sequenceNumber B16;
+    CARD16 sequenceNumber;
     CARD32 length;
-    CARD16 evtype B16;
+    CARD16 evtype;
     CARD16 pad2;
-    CARD32 eid B32;
-    CARD32 window B32;
-    INT16  x B16;
-    INT16  y B16;
-    CARD16 width B16;
-    CARD16 height B16;
-    INT16  off_x B16;
-    INT16  off_y B16;
-
-    CARD16 pixmap_width B16;
-    CARD16 pixmap_height B16;
-    CARD32 pixmap_flags B32;
+    CARD32 eid;
+    CARD32 window;
+    INT16  x;
+    INT16  y;
+    CARD16 width;
+    CARD16 height;
+    INT16  off_x;
+    INT16  off_y;
+
+    CARD16 pixmap_width;
+    CARD16 pixmap_height;
+    CARD32 pixmap_flags;
 } xPresentConfigureNotify;
 #define sz_xPresentConfigureNotify 40
 
 typedef struct {
     CARD8 type;
     CARD8 extension;
-    CARD16 sequenceNumber B16;
+    CARD16 sequenceNumber;
     CARD32 length;
-    CARD16 evtype B16;
+    CARD16 evtype;
     CARD8  kind;
     CARD8  mode;
-    CARD32 eid B32;
-    Window window B32;
-    CARD32 serial B32;
+    CARD32 eid;
+    Window window;
+    CARD32 serial;
     CARD64 ust;
 
     CARD64 msc;
@@ -184,15 +184,15 @@ typedef struct {
 typedef struct {
     CARD8 type;
     CARD8 extension;
-    CARD16 sequenceNumber B16;
+    CARD16 sequenceNumber;
     CARD32 length;
-    CARD16 evtype B16;
-    CARD16 pad2 B16;
-    CARD32 eid B32;
-    Window window B32;
-    CARD32 serial B32;
-    Pixmap pixmap B32;
-    CARD32 idle_fence B32;
+    CARD16 evtype;
+    CARD16 pad2;
+    CARD32 eid;
+    Window window;
+    CARD32 serial;
+    Pixmap pixmap;
+    CARD32 idle_fence;
 } xPresentIdleNotify;
 #define sz_xPresentIdleNotify   32
 
@@ -200,35 +200,35 @@ typedef struct {
 typedef struct {
     CARD8 type;
     CARD8 extension;
-    CARD16 sequenceNumber B16;
+    CARD16 sequenceNumber;
     CARD32 length;
-    CARD16 evtype B16;
+    CARD16 evtype;
     CARD8 update_window;
     CARD8 pad1;
-    CARD32 eid B32;
-    Window event_window B32;
-    Window window B32;
-    Pixmap pixmap B32;
-    CARD32 serial B32;
-    
+    CARD32 eid;
+    Window event_window;
+    Window window;
+    Pixmap pixmap;
+    CARD32 serial;
+
     /* 32-byte boundary */
 
-    Region valid_region B32;
-    Region update_region B32;
+    Region valid_region;
+    Region update_region;
 
     xRectangle valid_rect;
 
     xRectangle update_rect;
 
-    INT16 x_off B16;
-    INT16 y_off B16;
-    CARD32 target_crtc B32;
+    INT16 x_off;
+    INT16 y_off;
+    CARD32 target_crtc;
 
-    XSyncFence wait_fence B32;
-    XSyncFence idle_fence B32;
+    XSyncFence wait_fence;
+    XSyncFence idle_fence;
 
-    CARD32 options B32;
-    CARD32 pad2 B32;
+    CARD32 options;
+    CARD32 pad2;
 
     CARD64 target_msc;
     CARD64 divisor;
Index: presentproto-1.1/presentproto.pc.in
===================================================================
--- presentproto-1.1.orig/presentproto.pc.in
+++ presentproto-1.1/presentproto.pc.in
@@ -1,9 +1,7 @@
 prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
 includedir=@includedir@
  
 Name: PresentProto
 Description: Present extension headers
-Version: 1.2
+Version: 1.3
 Cflags: -I${includedir}
Index: presentproto-1.1/presentproto.txt
===================================================================
--- presentproto-1.1.orig/presentproto.txt
+++ presentproto-1.1/presentproto.txt
@@ -1,6 +1,6 @@
 			The Present Extension
-			     Version 1.2
-			      2018-02-26
+			     Version 1.3
+			      2023-06-13
       
 			    Keith Packard
 			  keithp@keithp.com
@@ -57,11 +57,13 @@ PRESENTEVENTMASK { PresentConfigureNotif
 PRESENTOPTION { PresentOptionAsync,
                 PresentOptionCopy,
 		PresentOptionUST,
-		PresentOptionSuboptimal }
+		PresentOptionSuboptimal,
+		PresentOptionAsyncMayTear }
 
 PRESENTCAPABILITY { PresentCapabilityAsync,
 		    PresentCapabilityFence,
-		    PresentCapabilityUST }
+		    PresentCapabilityUST,
+		    PresentCapabilityAsyncMayTear }
 
 PRESENTCOMPLETEKIND { PresentCompleteKindPixmap,
 		      PresentCompleteKindMSCNotify }
@@ -129,7 +131,7 @@ The name of this extension is "Present"
 	It is the clients responsibility to ensure that the server
 	supports a version which is compatible with its expectations.
 
-	Backwards compatible changes included addition of new
+	Backwards compatible changes include addition of new
 	requests.
 
 			     ❄ ❄ ❄  ❄  ❄ ❄ ❄ 
@@ -201,7 +203,7 @@ The name of this extension is "Present"
 	the client as soon as the PresentIdleNotify event has been
 	received. Note that if PresentCapabilityFence is set for the
 	associated CRTC, then clients should use fences to improve
-	overall systme performance. If PresentCapabilityFence is not
+	overall system performance. If PresentCapabilityFence is not
 	set, then using fences offers no benefit, but also no cost.
 
 	If 'target-msc' is greater than the current msc for 'window',
@@ -215,7 +217,16 @@ The name of this extension is "Present"
 	If 'options' contains PresentOptionAsync, and the 'target-msc'
 	is less than or equal to the current msc for 'window', then
 	the operation will be performed as soon as possible, not
-	necessarily waiting for the next vertical blank interval.
+	necessarily waiting for the next vertical blank interval. If
+	the target-crtc does not support PresentCapabilityAsyncMayTear,
+	this may result in tearing.
+
+	If the target-crtc supports PresentCapabilityAsyncMayTear,
+	'options' contains PresentOptionAsyncMayTear, and the 'target-msc'
+	is less than or equal to the current msc for 'window', then
+	the operation will be performed as soon as possible, not
+	necessarily waiting for the next vertical blank interval, and
+	possibly resulting in tearing.
 
 	If 'options' contains PresentOptionCopy, then 'pixmap' will be
 	idle, and 'idle-fence' triggered as soon as the operation occurs.
@@ -265,7 +276,7 @@ The name of this extension is "Present"
 
 	Delivers a PresentCompleteNotifyEvent with kind
 	PresentCompleteKindNotifyMSC after the time specified by
-	'target-msc', 'divisor' and 'remainder').
+	'target-msc', 'divisor' and 'remainder'.
 
 	'serial' is an arbitrary client-specified value which will be
 	returned in the event so that the client can associate the
@@ -315,13 +326,23 @@ The name of this extension is "Present"
 	'target' is a WINDOW, then the target CRTC is selected by the
 	X server from among the CRTCs on the screen specified by the window.
 
-	PresentCapabilityAsync means that the target device can flip
-	the scanout buffer mid-frame instead of waiting for a vertical
-	blank interval. The precise latency between the flip request
-	and the actual scanout transition is not defined by this
+	PresentCapabilityAsyncMayTear means that the target device may be
+	able to flip the scanout buffer mid-frame instead of waiting for
+	a vertical blank interval. The precise latency between the flip
+	request and the actual scanout transition is not defined by this
 	specification, but is intended to be no more than a few
 	scanlines.
 
+	If PresentCapabilityAsyncMayTear is not supported,
+	PresentCapabilityAsync means the same as
+	PresentCapabilityAsyncMayTear described above.
+
+	If PresentCapabilityAsyncMayTear is supported,
+	PresentCapabilityAsync means that even if there is already a flip
+	pending in the target device, it may be possible to replace that
+	flip before the next vertical blank interval. The scanout buffer
+	does not change mid-frame though, i.e. there is no tearing.
+
 	PresentCapabilityFence means that the target device can take
 	advantage of SyncFences in the Present operations to improve
 	GPU throughput. The driver must operate correctly in the
@@ -546,7 +567,7 @@ Present provides similar functionality t
 requests, however Present uses X pixmaps to refer to the new window
 contents instead of the DRI2 buffer attachments.
 
-Present and DRI3 are designed in conjunction to replace DRI2
+Present and DRI3 are designed in conjunction to replace DRI2.
 
 10.4 XvMC / Xv
 
@@ -584,6 +605,7 @@ A.1 Common Types
 	2	PresentOptionCopy;
 	4	PresentOptionUST
 	8	PresentOptionSuboptimal
+	16	PresentOptionAsyncMayTear
 └───
 
 ┌───
@@ -591,6 +613,7 @@ A.1 Common Types
 	1	PresentCapabilityAsync
 	2	PresentCapabilityFence
 	4	PresentCapabilityUST
+	8	PresentCapabilityAsyncMayTear
 └───
 
 ┌───
Index: presentproto-1.1/presenttokens.h
===================================================================
--- presentproto-1.1.orig/presenttokens.h
+++ presentproto-1.1/presenttokens.h
@@ -25,7 +25,7 @@
 
 #define PRESENT_NAME			"Present"
 #define PRESENT_MAJOR			1
-#define PRESENT_MINOR			2
+#define PRESENT_MINOR			3
 
 #define PresentNumberErrors		0
 #define PresentNumberEvents		0
@@ -45,11 +45,15 @@
 #define PresentOptionCopy               (1 << 1)
 #define PresentOptionUST                (1 << 2)
 #define PresentOptionSuboptimal         (1 << 3)
+#define PresentOptionAsyncMayTear       (1 << 4)
 
 #define PresentAllOptions       (PresentOptionAsync | \
                                  PresentOptionCopy | \
                                  PresentOptionUST | \
-                                 PresentOptionSuboptimal)
+                                 PresentOptionSuboptimal | \
+                                 PresentOptionAsyncMayTear)
+
+#define PresentAllAsyncOptions (PresentOptionAsync | PresentOptionAsyncMayTear)
 
 /* Present capabilities */
 
@@ -57,10 +61,14 @@
 #define PresentCapabilityAsync          1
 #define PresentCapabilityFence          2
 #define PresentCapabilityUST            4
+#define PresentCapabilityAsyncMayTear   8
 
 #define PresentAllCapabilities  (PresentCapabilityAsync | \
                                  PresentCapabilityFence | \
-                                 PresentCapabilityUST)
+                                 PresentCapabilityUST | \
+                                 PresentCapabilityAsyncMayTear)
+
+#define PresentAllAsyncCapabilities (PresentCapabilityAsync | PresentCapabilityAsyncMayTear)
 
 /* Events */
 #define PresentConfigureNotify	0
openSUSE Build Service is sponsored by