aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-04-13 16:16:04 -0600
committerChia-I Wu <olv@lunarg.com>2015-04-16 17:33:26 +0800
commitafb2c2244bb3b7afd910a4f673c934e6e5f8afa0 (patch)
tree35775f97ff69d4d14b859c1a77e4e55d75328304
parent7e8bb56f2f68ab9c49d3bec3ff887d2706767393 (diff)
downloadusermoji-afb2c2244bb3b7afd910a4f673c934e6e5f8afa0.tar.xz
FIXUP: Remove PIPELINE_DELTA
commit 57a757fda4f6a62cb1187b015f28119ce9c5a2b2 Author: Courtney Goeltzenleuchter <courtney@LunarG.com> 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.
-rw-r--r--layers/draw_state.cpp52
-rw-r--r--layers/glave_snapshot.c24
-rw-r--r--layers/mem_tracker.cpp2
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;