From afb2c2244bb3b7afd910a4f673c934e6e5f8afa0 Mon Sep 17 00:00:00 2001 From: Courtney Goeltzenleuchter Date: Mon, 13 Apr 2015 16:16:04 -0600 Subject: FIXUP: Remove PIPELINE_DELTA commit 57a757fda4f6a62cb1187b015f28119ce9c5a2b2 Author: Courtney Goeltzenleuchter Date: Wed Mar 25 15:37:49 2015 -0600 xgl: Remove PIPELINE_DELTA. bug: 13065 header: 0.60.0 Remove PIPELINE_DELTA. Add functions for creating and loading pipeline derivatives. --- layers/draw_state.cpp | 52 ++++++++++++++++++++++++++++--------------------- layers/glave_snapshot.c | 24 ----------------------- layers/mem_tracker.cpp | 2 +- 3 files changed, 31 insertions(+), 47 deletions(-) diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp index e329dd71..ef048e57 100644 --- a/layers/draw_state.cpp +++ b/layers/draw_state.cpp @@ -1564,6 +1564,14 @@ XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglCreateImageView(XGL_DEVICE device, const X return result; } +static void track_pipeline(const XGL_GRAPHICS_PIPELINE_CREATE_INFO* pCreateInfo, XGL_PIPELINE* pPipeline) +{ + PIPELINE_NODE* pPipeNode = new PIPELINE_NODE; + memset((void*)pPipeNode, 0, sizeof(PIPELINE_NODE)); + pPipeNode->pipeline = *pPipeline; + initPipeline(pPipeNode, pCreateInfo); +} + XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglCreateGraphicsPipeline(XGL_DEVICE device, const XGL_GRAPHICS_PIPELINE_CREATE_INFO* pCreateInfo, XGL_PIPELINE* pPipeline) { XGL_RESULT result = nextTable.CreateGraphicsPipeline(device, pCreateInfo, pPipeline); @@ -1572,10 +1580,28 @@ XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglCreateGraphicsPipeline(XGL_DEVICE device, sprintf(str, "Created Gfx Pipeline %p", (void*)*pPipeline); layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, (XGL_BASE_OBJECT)pPipeline, 0, DRAWSTATE_NONE, "DS", str); loader_platform_thread_lock_mutex(&globalLock); - PIPELINE_NODE* pPipeNode = new PIPELINE_NODE; - memset((void*)pPipeNode, 0, sizeof(PIPELINE_NODE)); - pPipeNode->pipeline = *pPipeline; - initPipeline(pPipeNode, pCreateInfo); + + track_pipeline(pCreateInfo, pPipeline); + + loader_platform_thread_unlock_mutex(&globalLock); + return result; +} + +XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglCreateGraphicsPipelineDerivative( + XGL_DEVICE device, + const XGL_GRAPHICS_PIPELINE_CREATE_INFO* pCreateInfo, + XGL_PIPELINE basePipeline, + XGL_PIPELINE* pPipeline) +{ + XGL_RESULT result = nextTable.CreateGraphicsPipelineDerivative(device, pCreateInfo, basePipeline, pPipeline); + // Create LL HEAD for this Pipeline + char str[1024]; + sprintf(str, "Created Gfx Pipeline %p (derived from pipeline %p)", (void*)*pPipeline, basePipeline); + layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, (XGL_BASE_OBJECT)pPipeline, 0, DRAWSTATE_NONE, "DS", str); + loader_platform_thread_lock_mutex(&globalLock); + + track_pipeline(pCreateInfo, pPipeline); + loader_platform_thread_unlock_mutex(&globalLock); return result; } @@ -1966,22 +1992,6 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdBindPipeline(XGL_CMD_BUFFER cmdBuffer, XGL_PI nextTable.CmdBindPipeline(cmdBuffer, pipelineBindPoint, pipeline); } -XGL_LAYER_EXPORT void XGLAPI xglCmdBindPipelineDelta(XGL_CMD_BUFFER cmdBuffer, XGL_PIPELINE_BIND_POINT pipelineBindPoint, XGL_PIPELINE_DELTA delta) -{ - GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer); - if (pCB) { - // TODO : Handle storing Pipeline Deltas to cmd buffer here - updateCBTracking(cmdBuffer); - addCmd(pCB, CMD_BINDPIPELINEDELTA); - } - else { - char str[1024]; - 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.CmdBindPipelineDelta(cmdBuffer, pipelineBindPoint, delta); -} - XGL_LAYER_EXPORT void XGLAPI xglCmdBindDynamicStateObject(XGL_CMD_BUFFER cmdBuffer, XGL_STATE_BIND_POINT stateBindPoint, XGL_DYNAMIC_STATE_OBJECT state) { setLastBoundDynamicState(cmdBuffer, state, stateBindPoint); @@ -2781,8 +2791,6 @@ XGL_LAYER_EXPORT void* XGLAPI xglGetProcAddr(XGL_PHYSICAL_GPU gpu, const char* f return (void*) xglResetCommandBuffer; if (!strcmp(funcName, "xglCmdBindPipeline")) return (void*) xglCmdBindPipeline; - if (!strcmp(funcName, "xglCmdBindPipelineDelta")) - return (void*) xglCmdBindPipelineDelta; if (!strcmp(funcName, "xglCmdBindDynamicStateObject")) return (void*) xglCmdBindDynamicStateObject; if (!strcmp(funcName, "xglCmdBindDescriptorSet")) diff --git a/layers/glave_snapshot.c b/layers/glave_snapshot.c index 5c6be4a7..d7649eb1 100644 --- a/layers/glave_snapshot.c +++ b/layers/glave_snapshot.c @@ -1109,22 +1109,6 @@ XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglLoadPipeline(XGL_DEVICE device, size_t dat return result; } -XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglCreatePipelineDelta(XGL_DEVICE device, XGL_PIPELINE p1, XGL_PIPELINE p2, XGL_PIPELINE_DELTA* delta) -{ - loader_platform_thread_lock_mutex(&objLock); - ll_increment_use_count((void*)device, XGL_OBJECT_TYPE_DEVICE); - loader_platform_thread_unlock_mutex(&objLock); - XGL_RESULT result = nextTable.CreatePipelineDelta(device, p1, p2, delta); - if (result == XGL_SUCCESS) - { - loader_platform_thread_lock_mutex(&objLock); - GLV_VK_SNAPSHOT_LL_NODE* pNode = snapshot_insert_object(&s_delta, *delta, XGL_OBJECT_TYPE_PIPELINE_DELTA); - pNode->obj.pStruct = NULL; - loader_platform_thread_unlock_mutex(&objLock); - } - return result; -} - XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglCreateSampler(XGL_DEVICE device, const XGL_SAMPLER_CREATE_INFO* pCreateInfo, XGL_SAMPLER* pSampler) { loader_platform_thread_lock_mutex(&objLock); @@ -1353,14 +1337,6 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdBindPipeline(XGL_CMD_BUFFER cmdBuffer, XGL_PI nextTable.CmdBindPipeline(cmdBuffer, pipelineBindPoint, pipeline); } -XGL_LAYER_EXPORT void XGLAPI xglCmdBindPipelineDelta(XGL_CMD_BUFFER cmdBuffer, XGL_PIPELINE_BIND_POINT pipelineBindPoint, XGL_PIPELINE_DELTA delta) -{ - loader_platform_thread_lock_mutex(&objLock); - ll_increment_use_count((void*)cmdBuffer, XGL_OBJECT_TYPE_CMD_BUFFER); - loader_platform_thread_unlock_mutex(&objLock); - nextTable.CmdBindPipelineDelta(cmdBuffer, pipelineBindPoint, delta); -} - XGL_LAYER_EXPORT void XGLAPI xglCmdBindDynamicStateObject(XGL_CMD_BUFFER cmdBuffer, XGL_STATE_BIND_POINT stateBindPoint, XGL_DYNAMIC_STATE_OBJECT state) { loader_platform_thread_lock_mutex(&objLock); diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp index 2d840dc4..9d703c6c 100644 --- a/layers/mem_tracker.cpp +++ b/layers/mem_tracker.cpp @@ -1226,7 +1226,7 @@ XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglCreateGraphicsPipelineDerivative( XGL_RESULT result = nextTable.CreateGraphicsPipelineDerivative(device, pCreateInfo, basePipeline, pPipeline); if (result == XGL_SUCCESS) { loader_platform_thread_lock_mutex(&globalLock); - insertGlobalObjectNode(*pPipeline, pCreateInfo->sType, pCreateInfo, sizeof(XGL_GRAPHICS_PIPELINE_CREATE_INFO), "graphics_pipeline"); + addObjectInfo(*pPipeline, pCreateInfo->sType, pCreateInfo, sizeof(XGL_GRAPHICS_PIPELINE_CREATE_INFO), "graphics_pipeline"); loader_platform_thread_unlock_mutex(&globalLock); } return result; -- cgit v1.2.3