[PATCH xextproto (rev4) 2/5] Initial Fence Sync support

James Jones jajones at nvidia.com
Thu Dec 2 09:15:32 PST 2010


Defines the protocol for creation and basic
management of binary state sync objects.
The following operations are defined:

 -Creation
 -Destruction
 -Trigger
 -Reset

Signed-off-by: James Jones <jajones at nvidia.com>
Reviewed-by: Aaron Plattner <aplattner at nvidia.com>
---
 syncconst.h |    6 ++++--
 syncproto.h |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 2 deletions(-)

diff --git a/syncconst.h b/syncconst.h
index 926b60c..3acc387 100644
--- a/syncconst.h
+++ b/syncconst.h
@@ -54,7 +54,7 @@ PERFORMANCE OF THIS SOFTWARE.
 #define SYNC_NAME "SYNC"
 
 #define SYNC_MAJOR_VERSION	3
-#define SYNC_MINOR_VERSION	0
+#define SYNC_MINOR_VERSION	1
 
 
 #define XSyncCounterNotify              0
@@ -65,7 +65,8 @@ PERFORMANCE OF THIS SOFTWARE.
 
 #define XSyncBadCounter			0L
 #define XSyncBadAlarm			1L
-#define XSyncNumberErrors		(XSyncBadAlarm + 1)
+#define XSyncBadFence           2L
+#define XSyncNumberErrors		(XSyncBadFence + 1)
 
 /*
  * Flags for Alarm Attributes
@@ -172,6 +173,7 @@ typedef enum {
 
 typedef XID XSyncCounter;
 typedef XID XSyncAlarm;
+typedef XID XSyncFence;
 typedef struct _XSyncValue {
     int hi;
     unsigned int lo;
diff --git a/syncproto.h b/syncproto.h
index 13b53d5..c38ea84 100644
--- a/syncproto.h
+++ b/syncproto.h
@@ -67,6 +67,10 @@ PERFORMANCE OF THIS SOFTWARE.
 #define X_SyncDestroyAlarm	       11
 #define X_SyncSetPriority   	       12
 #define X_SyncGetPriority   	       13
+#define X_SyncCreateFence	       14
+#define X_SyncTriggerFence	       15
+#define X_SyncResetFence	       16
+#define X_SyncDestroyFence	       17
 
 /* cover up types from sync.h to make sure they're the right size for
  * protocol packaging.  These will be undef'ed after all the protocol
@@ -74,6 +78,8 @@ PERFORMANCE OF THIS SOFTWARE.
  */
 #define XSyncCounter CARD32
 #define XSyncAlarm   CARD32
+#define XSyncFence   CARD32
+#define Drawable     CARD32
 
 /*
  * Initialize
@@ -337,6 +343,54 @@ typedef struct {
 #define sz_xSyncGetPriorityReply	32
 
 /*
+ * Create Fence
+ */
+typedef struct _xSyncCreateFenceReq {
+    CARD8	reqType;
+    CARD8	syncReqType;
+    CARD16	length B16;
+    Drawable	d B32;
+    XSyncFence	fid B32;
+    BOOL	initially_triggered;
+    CARD8	pad0;
+    CARD16	pad1;
+} xSyncCreateFenceReq;
+#define sz_xSyncCreateFenceReq		16
+
+/*
+ * Put a fence object in the "triggered" state.
+ */
+typedef struct _xSyncTriggerFenceReq {
+    CARD8	reqType;
+    CARD8	syncReqType;
+    CARD16	length B16;
+    XSyncFence	fid B32;
+} xSyncTriggerFenceReq;
+#define sz_xSyncTriggerFenceReq		8
+
+/*
+ * Put a fence in the "untriggered" state.
+ */
+typedef struct _xSyncResetFenceReq {
+    CARD8	reqType;
+    CARD8	syncReqType;
+    CARD16	length B16;
+    XSyncFence	fid B32;
+} xSyncResetFenceReq;
+#define sz_xSyncResetFenceReq		8
+
+/*
+ * Destroy a fence object
+ */
+typedef struct _xSyncDestroyFenceReq {
+    CARD8	reqType;
+    CARD8	syncReqType;
+    CARD16	length B16;
+    XSyncFence	fid B32;
+} xSyncDestroyFenceReq;
+#define sz_xSyncDestroyFenceReq		8
+
+/*
  * Events
  */
 
@@ -373,6 +427,8 @@ typedef struct _xSyncAlarmNotifyEvent {
 
 #undef XSyncCounter
 #undef XSyncAlarm
+#undef XSyncFence
+#undef Drawable
 
 
 #endif /* _SYNCPROTO_H_ */
-- 
1.7.1



More information about the xorg-devel mailing list