xgl: Add XGL_PIPE_EVENT to CmdResetEvent
authorCourtney Goeltzenleuchter <courtney@LunarG.com>
Wed, 25 Mar 2015 00:02:34 +0000 (18:02 -0600)
committerChia-I Wu <olv@lunarg.com>
Thu, 16 Apr 2015 09:33:25 +0000 (17:33 +0800)
part 3 of bug #12904
alpha header: r29684 (0.59.0)

(3) Where does xglCmdResetEvent update the event's status? Unlike xglCmdSetEvent this function doesn't take a parameter specifying this.

- Added pipeEvent parameter also to xglCmdResetEvent. Also renamed XGL_SET_EVENT to XGL_PIPE_EVENT as now it's no longer used only for set operations.

demos/cube.c
demos/tri.c
icd/nulldrv/nulldrv.c
include/xgl.h
layers/draw_state.c
layers/draw_state.cpp
layers/glave_snapshot.c
xgl.py

index 426b712..84728d0 100644 (file)
@@ -943,7 +943,7 @@ static void demo_prepare_textures(struct demo *demo)
             };
             XGL_IMAGE_MEMORY_BARRIER *pmemory_barrier = &image_memory_barrier;
 
-            XGL_SET_EVENT set_events[] = { XGL_SET_EVENT_GPU_COMMANDS_COMPLETE };
+            XGL_PIPE_EVENT set_events[] = { XGL_PIPE_EVENT_GPU_COMMANDS_COMPLETE };
             XGL_PIPELINE_BARRIER pipeline_barrier;
             pipeline_barrier.sType = XGL_STRUCTURE_TYPE_PIPELINE_BARRIER;
             pipeline_barrier.pNext = NULL;
index 43824b6..086de98 100644 (file)
@@ -589,7 +589,7 @@ static void demo_prepare_textures(struct demo *demo)
             };
             XGL_IMAGE_MEMORY_BARRIER *pmemory_barrier = &image_memory_barrier;
 
-            XGL_SET_EVENT set_events[] = { XGL_SET_EVENT_GPU_COMMANDS_COMPLETE };
+            XGL_PIPE_EVENT set_events[] = { XGL_PIPE_EVENT_GPU_COMMANDS_COMPLETE };
             XGL_PIPELINE_BARRIER pipeline_barrier;
             pipeline_barrier.sType = XGL_STRUCTURE_TYPE_PIPELINE_BARRIER;
             pipeline_barrier.pNext = NULL;
index 6c4894f..47fa21e 100644 (file)
@@ -1037,14 +1037,15 @@ ICD_EXPORT void XGLAPI xglCmdResetQueryPool(
 ICD_EXPORT void XGLAPI xglCmdSetEvent(
     XGL_CMD_BUFFER                              cmdBuffer,
     XGL_EVENT                                   event_,
-    XGL_SET_EVENT                               pipeEvent)
+    XGL_PIPE_EVENT                              pipeEvent)
 {
     NULLDRV_LOG_FUNC;
 }
 
 ICD_EXPORT void XGLAPI xglCmdResetEvent(
     XGL_CMD_BUFFER                              cmdBuffer,
-    XGL_EVENT                                   event_)
+    XGL_EVENT                                   event_,
+    XGL_PIPE_EVENT                              pipeEvent)
 {
     NULLDRV_LOG_FUNC;
 }
index 9b36938..14d7d0b 100644 (file)
@@ -33,7 +33,7 @@
 #include "xglPlatform.h"
 
 // XGL API version supported by this file
-#define XGL_API_VERSION XGL_MAKE_VERSION(0, 58, 0)
+#define XGL_API_VERSION XGL_MAKE_VERSION(0, 59, 1)
 
 #ifdef __cplusplus
 extern "C"
@@ -140,21 +140,21 @@ typedef enum _XGL_IMAGE_LAYOUT
     XGL_MAX_ENUM(_XGL_IMAGE_LAYOUT)
 } XGL_IMAGE_LAYOUT;
 
-typedef enum _XGL_SET_EVENT
+typedef enum _XGL_PIPE_EVENT
 {
-    XGL_SET_EVENT_TOP_OF_PIPE                               = 0x00000001,   // Set event before the GPU starts processing subsequent command
-    XGL_SET_EVENT_VERTEX_PROCESSING_COMPLETE                = 0x00000002,   // Set event when all pending vertex processing is complete
-    XGL_SET_EVENT_FRAGMENT_PROCESSING_COMPLETE              = 0x00000003,   // Set event when all pending fragment shader executions are complete
-    XGL_SET_EVENT_GRAPHICS_PIPELINE_COMPLETE                = 0x00000004,   // Set event when all pending graphics operations are complete
-    XGL_SET_EVENT_COMPUTE_PIPELINE_COMPLETE                 = 0x00000005,   // Set event when all pending compute operations are complete
-    XGL_SET_EVENT_TRANSFER_COMPLETE                         = 0x00000006,   // Set event when all pending transfer operations are complete
-    XGL_SET_EVENT_GPU_COMMANDS_COMPLETE                     = 0x00000007,   // Set event when all pending GPU work is complete
+    XGL_PIPE_EVENT_TOP_OF_PIPE                              = 0x00000001,   // Set event before the GPU starts processing subsequent command
+    XGL_PIPE_EVENT_VERTEX_PROCESSING_COMPLETE               = 0x00000002,   // Set event when all pending vertex processing is complete
+    XGL_PIPE_EVENT_FRAGMENT_PROCESSING_COMPLETE             = 0x00000003,   // Set event when all pending fragment shader executions are complete
+    XGL_PIPE_EVENT_GRAPHICS_PIPELINE_COMPLETE               = 0x00000004,   // Set event when all pending graphics operations are complete
+    XGL_PIPE_EVENT_COMPUTE_PIPELINE_COMPLETE                = 0x00000005,   // Set event when all pending compute operations are complete
+    XGL_PIPE_EVENT_TRANSFER_COMPLETE                        = 0x00000006,   // Set event when all pending transfer operations are complete
+    XGL_PIPE_EVENT_GPU_COMMANDS_COMPLETE                    = 0x00000007,   // Set event when all pending GPU work is complete
 
-    XGL_SET_EVENT_BEGIN_RANGE                               = XGL_SET_EVENT_TOP_OF_PIPE,
-    XGL_SET_EVENT_END_RANGE                                 = XGL_SET_EVENT_GPU_COMMANDS_COMPLETE,
-    XGL_NUM_SET_EVENT                                       = (XGL_SET_EVENT_END_RANGE - XGL_SET_EVENT_BEGIN_RANGE + 1),
-    XGL_MAX_ENUM(_XGL_SET_EVENT)
-} XGL_SET_EVENT;
+    XGL_PIPE_EVENT_BEGIN_RANGE                              = XGL_PIPE_EVENT_TOP_OF_PIPE,
+    XGL_PIPE_EVENT_END_RANGE                                = XGL_PIPE_EVENT_GPU_COMMANDS_COMPLETE,
+    XGL_NUM_PIPE_EVENT                                      = (XGL_PIPE_EVENT_END_RANGE - XGL_PIPE_EVENT_BEGIN_RANGE + 1),
+    XGL_MAX_ENUM(_XGL_PIPE_EVENT)
+} XGL_PIPE_EVENT;
 
 typedef enum _XGL_WAIT_EVENT
 {
@@ -1633,7 +1633,7 @@ typedef struct _XGL_PIPELINE_BARRIER
     const void*                             pNext;                      // Pointer to next structure.
 
     uint32_t                                eventCount;                 // Number of events to wait on
-    const XGL_SET_EVENT*                    pEvents;                    // Array of pipeline events to wait on
+    const XGL_PIPE_EVENT*                   pEvents;                    // Array of pipeline events to wait on
 
     XGL_WAIT_EVENT                          waitEvent;                  // Pipeline event where the wait should happen
 
@@ -2342,8 +2342,8 @@ typedef void       (XGLAPI *xglCmdFillBufferType)(XGL_CMD_BUFFER cmdBuffer, XGL_
 typedef void       (XGLAPI *xglCmdClearColorImageType)(XGL_CMD_BUFFER cmdBuffer, XGL_IMAGE image, XGL_CLEAR_COLOR color, uint32_t rangeCount, const XGL_IMAGE_SUBRESOURCE_RANGE* pRanges);
 typedef void       (XGLAPI *xglCmdClearDepthStencilType)(XGL_CMD_BUFFER cmdBuffer, XGL_IMAGE image, float depth, uint32_t stencil, uint32_t rangeCount, const XGL_IMAGE_SUBRESOURCE_RANGE* pRanges);
 typedef void       (XGLAPI *xglCmdResolveImageType)(XGL_CMD_BUFFER cmdBuffer, XGL_IMAGE srcImage, XGL_IMAGE destImage, uint32_t rectCount, const XGL_IMAGE_RESOLVE* pRects);
-typedef void       (XGLAPI *xglCmdSetEventType)(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_SET_EVENT pipeEvent);
-typedef void       (XGLAPI *xglCmdResetEventType)(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event);
+typedef void       (XGLAPI *xglCmdSetEventType)(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_PIPE_EVENT pipeEvent);
+typedef void       (XGLAPI *xglCmdResetEventType)(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_PIPE_EVENT pipeEvent);
 typedef void       (XGLAPI *xglCmdWaitEventsType)(XGL_CMD_BUFFER cmdBuffer, const XGL_EVENT_WAIT_INFO* pWaitInfo);
 typedef void       (XGLAPI *xglCmdPipelineBarrierType)(XGL_CMD_BUFFER cmdBuffer, const XGL_PIPELINE_BARRIER* pBarrier);
 typedef void       (XGLAPI *xglCmdBeginQueryType)(XGL_CMD_BUFFER cmdBuffer, XGL_QUERY_POOL queryPool, uint32_t slot, XGL_FLAGS flags);
@@ -2936,11 +2936,12 @@ void XGLAPI xglCmdResolveImage(
 void XGLAPI xglCmdSetEvent(
     XGL_CMD_BUFFER                              cmdBuffer,
     XGL_EVENT                                   event,
-    XGL_SET_EVENT                               pipeEvent);
+    XGL_PIPE_EVENT                              pipeEvent);
 
 void XGLAPI xglCmdResetEvent(
     XGL_CMD_BUFFER                              cmdBuffer,
-    XGL_EVENT                                   event);
+    XGL_EVENT                                   event,
+    XGL_PIPE_EVENT                              pipeEvent);
 
 void XGLAPI xglCmdWaitEvents(
     XGL_CMD_BUFFER                              cmdBuffer,
index c655b57..43080dc 100644 (file)
@@ -2477,7 +2477,7 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdResolveImage(XGL_CMD_BUFFER cmdBuffer, XGL_IM
     nextTable.CmdResolveImage(cmdBuffer, srcImage, destImage, rectCount, pRects);
 }
 
-XGL_LAYER_EXPORT void XGLAPI xglCmdSetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_SET_EVENT pipeEvent)
+XGL_LAYER_EXPORT void XGLAPI xglCmdSetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_PIPE_EVENT pipeEvent)
 {
     GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
     if (pCB) {
@@ -2492,7 +2492,7 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdSetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT
     nextTable.CmdSetEvent(cmdBuffer, event, pipeEvent);
 }
 
-XGL_LAYER_EXPORT void XGLAPI xglCmdResetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event)
+XGL_LAYER_EXPORT void XGLAPI xglCmdResetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_PIPE_EVENT pipeEvent)
 {
     GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
     if (pCB) {
@@ -2504,7 +2504,7 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdResetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVEN
         sprintf(str, "Attempt to use CmdBuffer %p that doesn't exist!", (void*)cmdBuffer);
         layerCbMsg(XGL_DBG_MSG_ERROR, XGL_VALIDATION_LEVEL_0, cmdBuffer, 0, DRAWSTATE_INVALID_CMD_BUFFER, "DS", str);
     }
-    nextTable.CmdResetEvent(cmdBuffer, event);
+    nextTable.CmdResetEvent(cmdBuffer, event, pipeEvent);
 }
 
 XGL_LAYER_EXPORT void XGLAPI xglCmdWaitEvents(XGL_CMD_BUFFER cmdBuffer, const XGL_EVENT_WAIT_INFO* pWaitInfo)
index c37930c..73d620d 100644 (file)
@@ -2319,7 +2319,7 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdResolveImage(XGL_CMD_BUFFER cmdBuffer, XGL_IM
     nextTable.CmdResolveImage(cmdBuffer, srcImage, destImage, rectCount, pRects);
 }
 
-XGL_LAYER_EXPORT void XGLAPI xglCmdSetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_SET_EVENT pipeEvent)
+XGL_LAYER_EXPORT void XGLAPI xglCmdSetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_PIPE_EVENT pipeEvent)
 {
     GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
     if (pCB) {
@@ -2334,7 +2334,7 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdSetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT
     nextTable.CmdSetEvent(cmdBuffer, event, pipeEvent);
 }
 
-XGL_LAYER_EXPORT void XGLAPI xglCmdResetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event)
+XGL_LAYER_EXPORT void XGLAPI xglCmdResetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_PIPE_EVENT pipeEvent)
 {
     GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
     if (pCB) {
@@ -2346,7 +2346,7 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdResetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVEN
         sprintf(str, "Attempt to use CmdBuffer %p that doesn't exist!", (void*)cmdBuffer);
         layerCbMsg(XGL_DBG_MSG_ERROR, XGL_VALIDATION_LEVEL_0, cmdBuffer, 0, DRAWSTATE_INVALID_CMD_BUFFER, "DS", str);
     }
-    nextTable.CmdResetEvent(cmdBuffer, event);
+    nextTable.CmdResetEvent(cmdBuffer, event, pipeEvent);
 }
 
 XGL_LAYER_EXPORT void XGLAPI xglCmdWaitEvents(XGL_CMD_BUFFER cmdBuffer, const XGL_EVENT_WAIT_INFO* pWaitInfo)
index e4a3b7e..76bbca0 100644 (file)
@@ -1522,7 +1522,7 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdResolveImage(XGL_CMD_BUFFER cmdBuffer, XGL_IM
     nextTable.CmdResolveImage(cmdBuffer, srcImage, destImage, rectCount, pRects);
 }
 
-XGL_LAYER_EXPORT void XGLAPI xglCmdSetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_SET_EVENT pipeEvent)
+XGL_LAYER_EXPORT void XGLAPI xglCmdSetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_PIPE_EVENT pipeEvent)
 {
     loader_platform_thread_lock_mutex(&objLock);
     ll_increment_use_count((void*)cmdBuffer, XGL_OBJECT_TYPE_CMD_BUFFER);
@@ -1530,12 +1530,12 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdSetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT
     nextTable.CmdSetEvent(cmdBuffer, event, pipeEvent);
 }
 
-XGL_LAYER_EXPORT void XGLAPI xglCmdResetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event)
+XGL_LAYER_EXPORT void XGLAPI xglCmdResetEvent(XGL_CMD_BUFFER cmdBuffer, XGL_EVENT event, XGL_PIPE_EVENT pipeEvent)
 {
     loader_platform_thread_lock_mutex(&objLock);
     ll_increment_use_count((void*)cmdBuffer, XGL_OBJECT_TYPE_CMD_BUFFER);
     loader_platform_thread_unlock_mutex(&objLock);
-    nextTable.CmdResetEvent(cmdBuffer, event);
+    nextTable.CmdResetEvent(cmdBuffer, event, pipeEvent);
 }
 
 XGL_LAYER_EXPORT void XGLAPI xglCmdWaitEvents(XGL_CMD_BUFFER cmdBuffer, const XGL_EVENT_WAIT_INFO* pWaitInfo)
diff --git a/xgl.py b/xgl.py
index ef3e8c7..da56c20 100644 (file)
--- a/xgl.py
+++ b/xgl.py
@@ -745,11 +745,12 @@ core = Extension(
         Proto("void", "CmdSetEvent",
             [Param("XGL_CMD_BUFFER", "cmdBuffer"),
              Param("XGL_EVENT", "event"),
-             Param("XGL_SET_EVENT", "pipeEvent")]),
+             Param("XGL_PIPE_EVENT", "pipeEvent")]),
 
         Proto("void", "CmdResetEvent",
             [Param("XGL_CMD_BUFFER", "cmdBuffer"),
-             Param("XGL_EVENT", "event")]),
+             Param("XGL_EVENT", "event"),
+             Param("XGL_PIPE_EVENT", "pipeEvent")]),
 
         Proto("void", "CmdWaitEvents",
             [Param("XGL_CMD_BUFFER", "cmdBuffer"),