glave: Add command buffer diagram.
authorJeremy Hayes <jeremy@lunarg.com>
Thu, 26 Feb 2015 22:59:19 +0000 (15:59 -0700)
committerJeremy Hayes <jeremy@lunarg.com>
Fri, 27 Feb 2015 00:45:06 +0000 (17:45 -0700)
glave-generate.py
layers/draw_state.h

index bb99ea0..e16175d 100755 (executable)
@@ -1945,6 +1945,7 @@ class Subcommand(object):
         rc_body.append('private:')
         rc_body.append('    struct xglFuncs m_xglFuncs;')
         rc_body.append('    DRAW_STATE_DUMP_DOT_FILE m_pDSDump;')
+        rc_body.append('    DRAW_STATE_DUMP_COMMAND_BUFFER_DOT_FILE m_pCBDump;')
         rc_body.append('    xglDisplay *m_display;')
         rc_body.append('    struct shaderPair {')
         rc_body.append('        XGL_SHADER *addr;')
@@ -2419,12 +2420,13 @@ class Subcommand(object):
         rvf_body.append('}')
         rvf_body.append('int xglReplay::dump_validation_data()')
         rvf_body.append('{')
-        rvf_body.append('   if  (m_pDSDump)')
+        rvf_body.append('   if  (!m_pDSDump || !m_pCBDump)')
         rvf_body.append('   {')
-        rvf_body.append('       m_pDSDump((char *) "pipeline_dump.dot");')
-        rvf_body.append('       return 0;')
+        rvf_body.append('       return -1;')
         rvf_body.append('   }')
-        rvf_body.append('   return -1;')
+        rvf_body.append('   m_pDSDump((char *) "pipeline_dump.dot");')
+        rvf_body.append('   m_pCBDump((char *) "cb_dump.dot");')
+        rvf_body.append('   return 0;')
         rvf_body.append('}')
         return "\n".join(rvf_body)
 
@@ -2607,6 +2609,7 @@ class Subcommand(object):
         cd_body.append('                    if (xglDbgRegisterMsgCallback(g_fpDbgMsgCallback, NULL) != XGL_SUCCESS)')
         cd_body.append('                        glv_LogError("Failed to register xgl callback for replayer error handling\\n");')
         cd_body.append('                    m_pDSDump = (DRAW_STATE_DUMP_DOT_FILE) m_xglFuncs.real_xglGetProcAddr(remap(pPacket->gpu), "drawStateDumpDotFile");')
+        cd_body.append('                    m_pCBDump = (DRAW_STATE_DUMP_COMMAND_BUFFER_DOT_FILE) m_xglFuncs.real_xglGetProcAddr(remap(pPacket->gpu), "drawStateDumpCommandBufferDotFile");')
         cd_body.append('                }')
         cd_body.append('                else ')
         cd_body.append('                    replayResult = m_xglFuncs.real_xglCreateDevice(remap(pPacket->gpu), pPacket->pCreateInfo, &device);')
index 7466e38..3fcf820 100644 (file)
@@ -220,6 +220,8 @@ typedef struct _GLOBAL_CB_NODE {
 //prototypes for extension functions
 void drawStateDumpDotFile(char* outFileName);
 void drawStateDumpPngFile(char* outFileName);
+void drawStateDumpCommandBufferDotFile(char* outFileName);
 // Func ptr typedefs
 typedef void (*DRAW_STATE_DUMP_DOT_FILE)(char*);
 typedef void (*DRAW_STATE_DUMP_PNG_FILE)(char*);
+typedef void (*DRAW_STATE_DUMP_COMMAND_BUFFER_DOT_FILE)(char*);