From d695c82c8c2511ee6915bd2d144492d8f5bbef5b Mon Sep 17 00:00:00 2001 From: Courtney Goeltzenleuchter Date: Tue, 24 Mar 2015 18:02:34 -0600 Subject: xgl: Add XGL_PIPE_EVENT to CmdResetEvent 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 | 2 +- demos/tri.c | 2 +- icd/nulldrv/nulldrv.c | 5 +++-- include/xgl.h | 39 ++++++++++++++++++++------------------- layers/draw_state.c | 6 +++--- layers/draw_state.cpp | 6 +++--- layers/glave_snapshot.c | 6 +++--- xgl.py | 5 +++-- 8 files changed, 37 insertions(+), 34 deletions(-) diff --git a/demos/cube.c b/demos/cube.c index 426b712b..84728d0b 100644 --- a/demos/cube.c +++ b/demos/cube.c @@ -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; diff --git a/demos/tri.c b/demos/tri.c index 43824b68..086de98e 100644 --- a/demos/tri.c +++ b/demos/tri.c @@ -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; diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c index 6c4894fc..47fa21e8 100644 --- a/icd/nulldrv/nulldrv.c +++ b/icd/nulldrv/nulldrv.c @@ -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; } diff --git a/include/xgl.h b/include/xgl.h index 9b36938d..14d7d0bb 100644 --- a/include/xgl.h +++ b/include/xgl.h @@ -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, diff --git a/layers/draw_state.c b/layers/draw_state.c index c655b572..43080dcc 100644 --- a/layers/draw_state.c +++ b/layers/draw_state.c @@ -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) diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp index c37930cf..73d620db 100644 --- a/layers/draw_state.cpp +++ b/layers/draw_state.cpp @@ -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) diff --git a/layers/glave_snapshot.c b/layers/glave_snapshot.c index e4a3b7e8..76bbca08 100644 --- a/layers/glave_snapshot.c +++ b/layers/glave_snapshot.c @@ -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 ef3e8c7f..da56c207 100644 --- 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"), -- cgit v1.2.3