layers: Add simple txt print of CmdBuffer contents
diff --git a/layers/draw_state.c b/layers/draw_state.c
index 2243e26..ceff3b1 100644
--- a/layers/draw_state.c
+++ b/layers/draw_state.c
@@ -244,6 +244,87 @@
return 0;
}
}
+// Return a string representation of CMD_TYPE enum
+static char* cmdTypeToString(CMD_TYPE cmd)
+{
+ switch (cmd)
+ {
+ case CMD_BINDPIPELINE:
+ return "CMD_BINDPIPELINE";
+ case CMD_BINDPIPELINEDELTA:
+ return "CMD_BINDPIPELINEDELTA";
+ case CMD_BINDDYNAMICSTATEOBJECT:
+ return "CMD_BINDDYNAMICSTATEOBJECT";
+ case CMD_BINDDESCRIPTORSET:
+ return "CMD_BINDDESCRIPTORSET";
+ case CMD_BINDINDEXBUFFER:
+ return "CMD_BINDINDEXBUFFER";
+ case CMD_BINDVERTEXBUFFER:
+ return "CMD_BINDVERTEXBUFFER";
+ case CMD_DRAW:
+ return "CMD_DRAW";
+ case CMD_DRAWINDEXED:
+ return "CMD_DRAWINDEXED";
+ case CMD_DRAWINDIRECT:
+ return "CMD_DRAWINDIRECT";
+ case CMD_DRAWINDEXEDINDIRECT:
+ return "CMD_DRAWINDEXEDINDIRECT";
+ case CMD_DISPATCH:
+ return "CMD_DISPATCH";
+ case CMD_DISPATCHINDIRECT:
+ return "CMD_DISPATCHINDIRECT";
+ case CMD_COPYBUFFER:
+ return "CMD_COPYBUFFER";
+ case CMD_COPYIMAGE:
+ return "CMD_COPYIMAGE";
+ case CMD_COPYBUFFERTOIMAGE:
+ return "CMD_COPYBUFFERTOIMAGE";
+ case CMD_COPYIMAGETOBUFFER:
+ return "CMD_COPYIMAGETOBUFFER";
+ case CMD_CLONEIMAGEDATA:
+ return "CMD_CLONEIMAGEDATA";
+ case CMD_UPDATEBUFFER:
+ return "CMD_UPDATEBUFFER";
+ case CMD_FILLBUFFER:
+ return "CMD_FILLBUFFER";
+ case CMD_CLEARCOLORIMAGE:
+ return "CMD_CLEARCOLORIMAGE";
+ case CMD_CLEARCOLORIMAGERAW:
+ return "CMD_CLEARCOLORIMAGERAW";
+ case CMD_CLEARDEPTHSTENCIL:
+ return "CMD_CLEARDEPTHSTENCIL";
+ case CMD_RESOLVEIMAGE:
+ return "CMD_RESOLVEIMAGE";
+ case CMD_SETEVENT:
+ return "CMD_SETEVENT";
+ case CMD_RESETEVENT:
+ return "CMD_RESETEVENT";
+ case CMD_WAITEVENTS:
+ return "CMD_WAITEVENTS";
+ case CMD_PIPELINEBARRIER:
+ return "CMD_PIPELINEBARRIER";
+ case CMD_BEGINQUERY:
+ return "CMD_BEGINQUERY";
+ case CMD_ENDQUERY:
+ return "CMD_ENDQUERY";
+ case CMD_RESETQUERYPOOL:
+ return "CMD_RESETQUERYPOOL";
+ case CMD_WRITETIMESTAMP:
+ return "CMD_WRITETIMESTAMP";
+ case CMD_INITATOMICCOUNTERS:
+ return "CMD_INITATOMICCOUNTERS";
+ case CMD_LOADATOMICCOUNTERS:
+ return "CMD_LOADATOMICCOUNTERS";
+ case CMD_SAVEATOMICCOUNTERS:
+ return "CMD_SAVEATOMICCOUNTERS";
+ case CMD_BEGINRENDERPASS:
+ return "CMD_BEGINRENDERPASS";
+ case CMD_ENDRENDERPASS:
+ return "CMD_ENDRENDERPASS";
+ default:
+ return "UNKNOWN";
+ }
+}
// Block of code at start here for managing/tracking Pipeline state that this layer cares about
// Just track 2 shaders for now
#define XGL_NUM_GRAPHICS_SHADERS XGL_SHADER_STAGE_COMPUTE
@@ -251,8 +332,6 @@
static uint64_t g_drawCount[NUM_DRAW_TYPES] = {0, 0, 0, 0};
-static GLOBAL_CB_NODE* getCBNode(XGL_CMD_BUFFER cb);
-
// TODO : Should be tracking lastBound per cmdBuffer and when draws occur, report based on that cmd buffer lastBound
// Then need to synchronize the accesses based on cmd buffer so that if I'm reading state on one cmd buffer, updates
// to that same cmd buffer by separate thread are not changing state from underneath us
@@ -294,32 +373,7 @@
}
loader_platform_thread_unlock_mutex(&globalLock);
}
-// Set the last bound dynamic state of given type
-// TODO : Need to track this per cmdBuffer and correlate cmdBuffer for Draw w/ last bound for that cmdBuffer?
-static void setLastBoundDynamicState(const XGL_CMD_BUFFER cmdBuffer, const XGL_DYNAMIC_STATE_OBJECT state, const XGL_STATE_BIND_POINT sType)
-{
- GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
- if (pCB) {
- g_lastCmdBuffer = cmdBuffer;
- loader_platform_thread_lock_mutex(&globalLock);
- DYNAMIC_STATE_NODE* pTrav = g_pDynamicStateHead[sType];
- while (pTrav && (state != pTrav->stateObj)) {
- pTrav = pTrav->pNext;
- }
- if (!pTrav) {
- char str[1024];
- sprintf(str, "Unable to find dynamic state object %p, was it ever created?", (void*)state);
- layerCbMsg(XGL_DBG_MSG_ERROR, XGL_VALIDATION_LEVEL_0, state, 0, DRAWSTATE_INVALID_DYNAMIC_STATE_OBJECT, "DS", str);
- }
- pCB->lastBoundDynamicState[sType] = pTrav;
- loader_platform_thread_unlock_mutex(&globalLock);
- }
- 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);
- }
-}
+static GLOBAL_CB_NODE* getCBNode(XGL_CMD_BUFFER cb);
// Print the last bound dynamic state
static void printDynamicState(const XGL_CMD_BUFFER cb)
{
@@ -802,6 +856,80 @@
return NULL;
}
+static void addCmd(GLOBAL_CB_NODE* pCB, const CMD_TYPE cmd)
+{
+ CMD_NODE* pCmd = (CMD_NODE*)malloc(sizeof(CMD_NODE));
+ if (pCmd) {
+ // init cmd node and append to end of cmd LL
+ memset(pCmd, 0, sizeof(CMD_NODE));
+ pCB->numCmds++;
+ pCmd->cmdNumber = pCB->numCmds;
+ pCmd->type = cmd;
+ if (!pCB->pCmds) {
+ pCB->pCmds = pCmd;
+ }
+ else {
+ assert(pCB->lastCmd);
+ pCB->lastCmd->pNext = pCmd;
+ }
+ pCB->lastCmd = pCmd;
+ }
+ else {
+ char str[1024];
+ sprintf(str, "Out of memory while attempting to allocate new CMD_NODE for cmdBuffer %p", (void*)pCB->cmdBuffer);
+ layerCbMsg(XGL_DBG_MSG_ERROR, XGL_VALIDATION_LEVEL_0, pCB->cmdBuffer, 0, DRAWSTATE_OUT_OF_MEMORY, "DS", str);
+ }
+}
+static void resetCB(const XGL_CMD_BUFFER cb)
+{
+ GLOBAL_CB_NODE* pCB = getCBNode(cb);
+ if (pCB) {
+ CMD_NODE* pCur = pCB->pCmds;
+ CMD_NODE* pFreeMe = pCur;
+ while (pCur) {
+ pFreeMe = pCur;
+ pCur = pCur->pNext;
+ free(pFreeMe);
+ }
+ // Reset CB state
+ GLOBAL_CB_NODE* pSaveNext = pCB->pNextGlobalCBNode;
+ XGL_FLAGS saveFlags = pCB->flags;
+ XGL_QUEUE_TYPE saveQT = pCB->queueType;
+ memset(pCB, 0, sizeof(GLOBAL_CB_NODE));
+ pCB->cmdBuffer = cb;
+ pCB->flags = saveFlags;
+ pCB->queueType = saveQT;
+ pCB->pNextGlobalCBNode = pSaveNext;
+ pCB->lastVtxBinding = MAX_BINDING;
+ }
+}
+// Set the last bound dynamic state of given type
+// TODO : Need to track this per cmdBuffer and correlate cmdBuffer for Draw w/ last bound for that cmdBuffer?
+static void setLastBoundDynamicState(const XGL_CMD_BUFFER cmdBuffer, const XGL_DYNAMIC_STATE_OBJECT state, const XGL_STATE_BIND_POINT sType)
+{
+ GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
+ if (pCB) {
+ g_lastCmdBuffer = cmdBuffer;
+ addCmd(pCB, CMD_BINDDYNAMICSTATEOBJECT);
+ loader_platform_thread_lock_mutex(&globalLock);
+ DYNAMIC_STATE_NODE* pTrav = g_pDynamicStateHead[sType];
+ while (pTrav && (state != pTrav->stateObj)) {
+ pTrav = pTrav->pNext;
+ }
+ if (!pTrav) {
+ char str[1024];
+ sprintf(str, "Unable to find dynamic state object %p, was it ever created?", (void*)state);
+ layerCbMsg(XGL_DBG_MSG_ERROR, XGL_VALIDATION_LEVEL_0, state, 0, DRAWSTATE_INVALID_DYNAMIC_STATE_OBJECT, "DS", str);
+ }
+ pCB->lastBoundDynamicState[sType] = pTrav;
+ loader_platform_thread_unlock_mutex(&globalLock);
+ }
+ 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);
+ }
+}
// Print the last bound Gfx Pipeline
static void printPipeline(const XGL_CMD_BUFFER cb)
{
@@ -951,6 +1079,25 @@
}
}
+static void printCB(const XGL_CMD_BUFFER cb)
+{
+ GLOBAL_CB_NODE* pCB = getCBNode(cb);
+ if (pCB) {
+ char str[1024];
+ CMD_NODE* pCmd = pCB->pCmds;
+ sprintf(str, "Cmds in CB %p", (void*)cb);
+ layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, NULL, 0, DRAWSTATE_NONE, "DS", str);
+ while (pCmd) {
+ sprintf(str, " CMD#%lu: %s", pCmd->cmdNumber, cmdTypeToString(pCmd->type));
+ layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, cb, 0, DRAWSTATE_NONE, "DS", str);
+ pCmd = pCmd->pNext;
+ }
+ }
+ else {
+ // Nothing to print
+ }
+}
+
static void synchAndDumpDot(const XGL_CMD_BUFFER cb)
{
synchDSMapping(cb);
@@ -1102,6 +1249,9 @@
XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglQueueSubmit(XGL_QUEUE queue, uint32_t cmdBufferCount, const XGL_CMD_BUFFER* pCmdBuffers, uint32_t memRefCount, const XGL_MEMORY_REF* pMemRefs, XGL_FENCE fence)
{
+ for (uint32_t i=0; i < cmdBufferCount; i++) {
+ // Validate that cmd buffers have been updated
+ }
XGL_RESULT result = nextTable.QueueSubmit(queue, cmdBufferCount, pCmdBuffers, memRefCount, pMemRefs, fence);
return result;
}
@@ -1706,6 +1856,8 @@
XGL_RESULT result = nextTable.BeginCommandBuffer(cmdBuffer, pBeginInfo);
if (XGL_SUCCESS == result) {
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
+ if (CB_NEW != pCB->state)
+ resetCB(cmdBuffer);
pCB->state = CB_UPDATE_ACTIVE;
g_lastCmdBuffer = cmdBuffer;
}
@@ -1719,6 +1871,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
pCB->state = CB_UPDATE_COMPLETE;
g_lastCmdBuffer = cmdBuffer;
+ printCB(cmdBuffer);
}
return result;
}
@@ -1727,7 +1880,7 @@
{
XGL_RESULT result = nextTable.ResetCommandBuffer(cmdBuffer);
if (XGL_SUCCESS == result) {
- // TODO : Free all the cmds and reset state for this CB
+ resetCB(cmdBuffer);
g_lastCmdBuffer = cmdBuffer;
}
return result;
@@ -1738,6 +1891,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
+ addCmd(pCB, CMD_BINDPIPELINE);
if (getPipeline(pipeline)) {
pCB->lastBoundPipeline = pipeline;
}
@@ -1758,8 +1912,18 @@
XGL_LAYER_EXPORT void XGLAPI xglCmdBindPipelineDelta(XGL_CMD_BUFFER cmdBuffer, XGL_PIPELINE_BIND_POINT pipelineBindPoint, XGL_PIPELINE_DELTA delta)
{
- synchAndDumpDot(cmdBuffer);
- // TODO : Handle storing Pipeline Deltas to cmd buffer here
+ GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
+ if (pCB) {
+ // TODO : Handle storing Pipeline Deltas to cmd buffer here
+ g_lastCmdBuffer = cmdBuffer;
+ synchAndDumpDot(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);
}
@@ -1774,6 +1938,8 @@
{
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
+ g_lastCmdBuffer = cmdBuffer;
+ addCmd(pCB, CMD_BINDDESCRIPTORSET);
if (getSetNode(descriptorSet)) {
if (dsUpdateActive(descriptorSet)) {
// TODO : Not sure if it's valid to made this check here. May need to make at QueueSubmit time
@@ -1808,7 +1974,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_BINDINDEXBUFFER);
// TODO : Track idxBuffer binding
}
else {
@@ -1824,8 +1990,8 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
+ addCmd(pCB, CMD_BINDVERTEXBUFFER);
pCB->lastVtxBinding = binding;
- // TODO : Insert CMD into CMD BUFFER LL
}
else {
char str[1024];
@@ -1840,8 +2006,8 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
+ addCmd(pCB, CMD_DRAW);
pCB->drawCount[DRAW]++;
- // TODO : Insert CMD into CMD BUFFER LL
char str[1024];
sprintf(str, "xglCmdDraw() call #%lu, reporting DS state:", g_drawCount[DRAW]++);
layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, cmdBuffer, 0, DRAWSTATE_NONE, "DS", str);
@@ -1860,8 +2026,8 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
+ addCmd(pCB, CMD_DRAWINDEXED);
pCB->drawCount[DRAW_INDEXED]++;
- // TODO : Insert CMD into CMD BUFFER LL
char str[1024];
sprintf(str, "xglCmdDrawIndexed() call #%lu, reporting DS state:", g_drawCount[DRAW_INDEXED]++);
layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, cmdBuffer, 0, DRAWSTATE_NONE, "DS", str);
@@ -1880,8 +2046,8 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
+ addCmd(pCB, CMD_DRAWINDIRECT);
pCB->drawCount[DRAW_INDIRECT]++;
- // TODO : Insert CMD into CMD BUFFER LL
char str[1024];
sprintf(str, "xglCmdDrawIndirect() call #%lu, reporting DS state:", g_drawCount[DRAW_INDIRECT]++);
layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, cmdBuffer, 0, DRAWSTATE_NONE, "DS", str);
@@ -1900,8 +2066,8 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
+ addCmd(pCB, CMD_DRAWINDEXEDINDIRECT);
pCB->drawCount[DRAW_INDEXED_INDIRECT]++;
- // TODO : Insert CMD into CMD BUFFER LL
char str[1024];
sprintf(str, "xglCmdDrawIndexedIndirect() call #%lu, reporting DS state:", g_drawCount[DRAW_INDEXED_INDIRECT]++);
layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, cmdBuffer, 0, DRAWSTATE_NONE, "DS", str);
@@ -1920,7 +2086,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_DISPATCH);
}
else {
char str[1024];
@@ -1935,7 +2101,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_DISPATCHINDIRECT);
}
else {
char str[1024];
@@ -1950,7 +2116,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_COPYBUFFER);
}
else {
char str[1024];
@@ -1965,7 +2131,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_COPYIMAGE);
}
else {
char str[1024];
@@ -1980,7 +2146,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_COPYBUFFERTOIMAGE);
}
else {
char str[1024];
@@ -1995,7 +2161,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_COPYIMAGETOBUFFER);
}
else {
char str[1024];
@@ -2010,7 +2176,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_CLONEIMAGEDATA);
}
else {
char str[1024];
@@ -2025,7 +2191,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_UPDATEBUFFER);
}
else {
char str[1024];
@@ -2040,7 +2206,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_FILLBUFFER);
}
else {
char str[1024];
@@ -2055,7 +2221,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_CLEARCOLORIMAGE);
}
else {
char str[1024];
@@ -2070,7 +2236,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_CLEARCOLORIMAGERAW);
}
else {
char str[1024];
@@ -2085,7 +2251,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_CLEARDEPTHSTENCIL);
}
else {
char str[1024];
@@ -2100,7 +2266,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_RESOLVEIMAGE);
}
else {
char str[1024];
@@ -2115,7 +2281,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_SETEVENT);
}
else {
char str[1024];
@@ -2130,7 +2296,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_RESETEVENT);
}
else {
char str[1024];
@@ -2145,7 +2311,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_WAITEVENTS);
}
else {
char str[1024];
@@ -2160,7 +2326,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_PIPELINEBARRIER);
}
else {
char str[1024];
@@ -2175,7 +2341,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_BEGINQUERY);
}
else {
char str[1024];
@@ -2190,7 +2356,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_ENDQUERY);
}
else {
char str[1024];
@@ -2205,7 +2371,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_RESETQUERYPOOL);
}
else {
char str[1024];
@@ -2220,7 +2386,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_WRITETIMESTAMP);
}
else {
char str[1024];
@@ -2235,7 +2401,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_INITATOMICCOUNTERS);
}
else {
char str[1024];
@@ -2250,7 +2416,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_LOADATOMICCOUNTERS);
}
else {
char str[1024];
@@ -2265,7 +2431,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_SAVEATOMICCOUNTERS);
}
else {
char str[1024];
@@ -2292,7 +2458,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_BEGINRENDERPASS);
}
else {
char str[1024];
@@ -2307,7 +2473,7 @@
GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
if (pCB) {
g_lastCmdBuffer = cmdBuffer;
- // TODO : Insert CMD into CMD BUFFER LL
+ addCmd(pCB, CMD_ENDRENDERPASS);
}
else {
char str[1024];