From c3d37d82b3840da8450f3d1ffea259e1f92e5f49 Mon Sep 17 00:00:00 2001 From: Jeremy Hayes Date: Thu, 26 Feb 2015 15:59:19 -0700 Subject: [PATCH] glave: Add command buffer diagram. --- glave-generate.py | 11 +++++++---- layers/draw_state.h | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/glave-generate.py b/glave-generate.py index bb99ea0..e16175d 100755 --- a/glave-generate.py +++ b/glave-generate.py @@ -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);') diff --git a/layers/draw_state.h b/layers/draw_state.h index 7466e38..3fcf820 100644 --- a/layers/draw_state.h +++ b/layers/draw_state.h @@ -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*); -- 2.7.4