DrawState: Remove the DOT file dumping and GraphViz stuff
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 41a3450..1f8b405 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -1138,234 +1138,7 @@
         }
     }
 }
-// Common Dot dumping code
-static void dsCoreDumpDot(const VkDescriptorSet ds, FILE* pOutFile)
-{
-#if 0
-    SET_NODE* pSet = getSetNode(ds);
-    if (pSet) {
-        POOL_NODE* pPool = getPoolNode(pSet->pool);
-        char tmp_str[4*1024];
-        fprintf(pOutFile, "subgraph cluster_DescriptorPool\n{\nlabel=\"Descriptor Pool\"\n");
-        sprintf(tmp_str, "Pool (%p)", pPool->pool);
-        char* pGVstr = vk_gv_print_vkdescriptorpoolcreateinfo(&pPool->createInfo, tmp_str);
-        fprintf(pOutFile, "%s", pGVstr);
-        free(pGVstr);
-        fprintf(pOutFile, "subgraph cluster_DescriptorSet\n{\nlabel=\"Descriptor Set (%p)\"\n", pSet->set);
-        sprintf(tmp_str, "Descriptor Set (%p)", pSet->set);
-        LAYOUT_NODE* pLayout = pSet->pLayout;
-        uint32_t layout_index = 0;
-        ++layout_index;
-        sprintf(tmp_str, "LAYOUT%u", layout_index);
-        pGVstr = vk_gv_print_vkdescriptorsetlayoutcreateinfo(&pLayout->createInfo, tmp_str);
-        fprintf(pOutFile, "%s", pGVstr);
-        free(pGVstr);
-        if (pSet->pUpdateStructs) {
-            pGVstr = dynamic_gv_display(pSet->pUpdateStructs, "Descriptor Updates");
-            fprintf(pOutFile, "%s", pGVstr);
-            free(pGVstr);
-        }
-        if (pSet->ppDescriptors) {
-            fprintf(pOutFile, "\"DESCRIPTORS\" [\nlabel=<<TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\"> <TR><TD COLSPAN=\"2\" PORT=\"desc\">DESCRIPTORS</TD></TR>");
-            uint32_t i = 0;
-            for (i=0; i < pSet->descriptorCount; i++) {
-                if (pSet->ppDescriptors[i]) {
-                    fprintf(pOutFile, "<TR><TD PORT=\"slot%u\">slot%u</TD><TD>%s</TD></TR>", i, i, string_VkStructureType(pSet->ppDescriptors[i]->sType));
-                }
-            }
-#define NUM_COLORS 7
-            vector<string> edgeColors;
-            edgeColors.push_back("0000ff");
-            edgeColors.push_back("ff00ff");
-            edgeColors.push_back("ffff00");
-            edgeColors.push_back("00ff00");
-            edgeColors.push_back("000000");
-            edgeColors.push_back("00ffff");
-            edgeColors.push_back("ff0000");
-            uint32_t colorIdx = 0;
-            fprintf(pOutFile, "</TABLE>>\n];\n");
-            // Now add the views that are mapped to active descriptors
-            VkUpdateSamplers* pUS = NULL;
-            VkUpdateSamplerTextures* pUST = NULL;
-            VkUpdateImages* pUI = NULL;
-            VkUpdateBuffers* pUB = NULL;
-            VkUpdateAsCopy* pUAC = NULL;
-            VkSamplerCreateInfo* pSCI = NULL;
-            VkImageViewCreateInfo* pIVCI = NULL;
-            VkBufferViewCreateInfo* pBVCI = NULL;
-            void** ppNextPtr = NULL;
-            void* pSaveNext = NULL;
-            for (i=0; i < pSet->descriptorCount; i++) {
-                if (pSet->ppDescriptors[i]) {
-                    switch (pSet->ppDescriptors[i]->sType)
-                    {
-                        case VK_STRUCTURE_TYPE_UPDATE_SAMPLERS:
-                            pUS = (VkUpdateSamplers*)pSet->ppDescriptors[i];
-                            pSCI = getSamplerCreateInfo(pUS->pSamplers[i-pUS->arrayIndex]);
-                            if (pSCI) {
-                                sprintf(tmp_str, "SAMPLER%u", i);
-                                fprintf(pOutFile, "%s", vk_gv_print_vksamplercreateinfo(pSCI, tmp_str));
-                                fprintf(pOutFile, "\"DESCRIPTORS\":slot%u -> \"%s\" [color=\"#%s\"];\n", i, tmp_str, edgeColors[colorIdx].c_str());
-                            }
-                            break;
-                        case VK_STRUCTURE_TYPE_UPDATE_SAMPLER_TEXTURES:
-                            pUST = (VkUpdateSamplerTextures*)pSet->ppDescriptors[i];
-                            pSCI = getSamplerCreateInfo(pUST->pSamplerImageViews[i-pUST->arrayIndex].sampler);
-                            if (pSCI) {
-                                sprintf(tmp_str, "SAMPLER%u", i);
-                                fprintf(pOutFile, "%s", vk_gv_print_vksamplercreateinfo(pSCI, tmp_str));
-                                fprintf(pOutFile, "\"DESCRIPTORS\":slot%u -> \"%s\" [color=\"#%s\"];\n", i, tmp_str, edgeColors[colorIdx].c_str());
-                            }
-                            pIVCI = getImageViewCreateInfo(pUST->pSamplerImageViews[i-pUST->arrayIndex].pImageView->view);
-                            if (pIVCI) {
-                                sprintf(tmp_str, "IMAGE_VIEW%u", i);
-                                fprintf(pOutFile, "%s", vk_gv_print_vkimageviewcreateinfo(pIVCI, tmp_str));
-                                fprintf(pOutFile, "\"DESCRIPTORS\":slot%u -> \"%s\" [color=\"#%s\"];\n", i, tmp_str, edgeColors[colorIdx].c_str());
-                            }
-                            break;
-                        case VK_STRUCTURE_TYPE_UPDATE_IMAGES:
-                            pUI = (VkUpdateImages*)pSet->ppDescriptors[i];
-                            pIVCI = getImageViewCreateInfo(pUI->pImageViews[i-pUI->arrayIndex].view);
-                            if (pIVCI) {
-                                sprintf(tmp_str, "IMAGE_VIEW%u", i);
-                                fprintf(pOutFile, "%s", vk_gv_print_vkimageviewcreateinfo(pIVCI, tmp_str));
-                                fprintf(pOutFile, "\"DESCRIPTORS\":slot%u -> \"%s\" [color=\"#%s\"];\n", i, tmp_str, edgeColors[colorIdx].c_str());
-                            }
-                            break;
-                        case VK_STRUCTURE_TYPE_UPDATE_BUFFERS:
-                            pUB = (VkUpdateBuffers*)pSet->ppDescriptors[i];
-                            pBVCI = getBufferViewCreateInfo(pUB->pBufferViews[i-pUB->arrayIndex].view);
-                            if (pBVCI) {
-                                sprintf(tmp_str, "BUFFER_VIEW%u", i);
-                                fprintf(pOutFile, "%s", vk_gv_print_vkbufferviewcreateinfo(pBVCI, tmp_str));
-                                fprintf(pOutFile, "\"DESCRIPTORS\":slot%u -> \"%s\" [color=\"#%s\"];\n", i, tmp_str, edgeColors[colorIdx].c_str());
-                            }
-                            break;
-                        case VK_STRUCTURE_TYPE_UPDATE_AS_COPY:
-                            pUAC = (VkUpdateAsCopy*)pSet->ppDescriptors[i];
-                            // TODO : Need to validate this code
-                            // Save off pNext and set to NULL while printing this struct, then restore it
-                            ppNextPtr = (void**)&pUAC->pNext;
-                            pSaveNext = *ppNextPtr;
-                            *ppNextPtr = NULL;
-                            sprintf(tmp_str, "UPDATE_AS_COPY%u", i);
-                            fprintf(pOutFile, "%s", vk_gv_print_vkupdateascopy(pUAC, tmp_str));
-                            fprintf(pOutFile, "\"DESCRIPTORS\":slot%u -> \"%s\" [color=\"#%s\"];\n", i, tmp_str, edgeColors[colorIdx].c_str());
-                            // Restore next ptr
-                            *ppNextPtr = pSaveNext;
-                            break;
-                        default:
-                            break;
-                    }
-                    colorIdx = (colorIdx+1) % NUM_COLORS;
-                }
-            }
-        }
-        fprintf(pOutFile, "}\n");
-        fprintf(pOutFile, "}\n");
-    }
-#endif
-}
-// Dump subgraph w/ DS info
-static void dsDumpDot(const VkCmdBuffer cb, FILE* pOutFile)
-{
-    GLOBAL_CB_NODE* pCB = getCBNode(cb);
-    if (pCB && pCB->lastBoundDescriptorSet) {
-        dsCoreDumpDot(pCB->lastBoundDescriptorSet, pOutFile);
-    }
-}
-// Dump a GraphViz dot file showing the Cmd Buffers
-static void cbDumpDotFile(string outFileName)
-{
-    // Print CB Chain for each CB
-    FILE* pOutFile;
-    pOutFile = fopen(outFileName.c_str(), "w");
-    fprintf(pOutFile, "digraph g {\ngraph [\nrankdir = \"TB\"\n];\nnode [\nfontsize = \"16\"\nshape = \"plaintext\"\n];\nedge [\n];\n");
-    fprintf(pOutFile, "subgraph cluster_cmdBuffers\n{\nlabel=\"Command Buffers\"\n");
-    GLOBAL_CB_NODE* pCB = NULL;
-    for (uint32_t i = 0; i < NUM_COMMAND_BUFFERS_TO_DISPLAY; i++) {
-        pCB = g_pLastTouchedCB[i];
-        if (pCB && pCB->pCmds.size() > 0) {
-            fprintf(pOutFile, "subgraph cluster_cmdBuffer%u\n{\nlabel=\"Command Buffer #%u\"\n", i, i);
-            uint32_t instNum = 0;
-            vector<CMD_NODE*> cmd_list = pCB->pCmds;
-            for (vector<CMD_NODE*>::iterator ii= cmd_list.begin(); ii!= cmd_list.end(); ++ii) {
-                if (instNum) {
-                    fprintf(pOutFile, "\"CB%pCMD%u\" -> \"CB%pCMD%u\" [];\n", (void*)pCB->cmdBuffer, instNum-1, (void*)pCB->cmdBuffer, instNum);
-                }
-                if (pCB == g_lastGlobalCB) {
-                    fprintf(pOutFile, "\"CB%pCMD%u\" [\nlabel=<<TABLE BGCOLOR=\"#00FF00\" BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\"> <TR><TD>CMD#</TD><TD>%u</TD></TR><TR><TD>CMD Type</TD><TD>%s</TD></TR></TABLE>>\n];\n", (void*)pCB->cmdBuffer, instNum, instNum, cmdTypeToString((*ii)->type).c_str());
-                } else {
-                    fprintf(pOutFile, "\"CB%pCMD%u\" [\nlabel=<<TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\"> <TR><TD>CMD#</TD><TD>%u</TD></TR><TR><TD>CMD Type</TD><TD>%s</TD></TR></TABLE>>\n];\n", (void*)pCB->cmdBuffer, instNum, instNum, cmdTypeToString((*ii)->type).c_str());
-                }
-                ++instNum;
-            }
-            fprintf(pOutFile, "}\n");
-        }
-    }
-    fprintf(pOutFile, "}\n");
-    fprintf(pOutFile, "}\n"); // close main graph "g"
-    fclose(pOutFile);
-}
-// Dump a GraphViz dot file showing the pipeline for last bound global state
-static void dumpGlobalDotFile(char *outFileName)
-{
-    PIPELINE_NODE *pPipeTrav = g_lastBoundPipeline;
-    if (pPipeTrav) {
-        FILE* pOutFile;
-        pOutFile = fopen(outFileName, "w");
-        fprintf(pOutFile, "digraph g {\ngraph [\nrankdir = \"TB\"\n];\nnode [\nfontsize = \"16\"\nshape = \"plaintext\"\n];\nedge [\n];\n");
-        fprintf(pOutFile, "subgraph cluster_dynamicState\n{\nlabel=\"Dynamic State\"\n");
-        char* pGVstr = NULL;
-        for (uint32_t i = 0; i < VK_NUM_STATE_BIND_POINT; i++) {
-            if (g_lastBoundDynamicState[i] && g_lastBoundDynamicState[i]->pCreateInfo) {
-                pGVstr = dynamic_gv_display(g_lastBoundDynamicState[i]->pCreateInfo, string_VkStateBindPoint((VkStateBindPoint)i));
-                fprintf(pOutFile, "%s", pGVstr);
-                free(pGVstr);
-            }
-        }
-        fprintf(pOutFile, "}\n"); // close dynamicState subgraph
-        fprintf(pOutFile, "subgraph cluster_PipelineStateObject\n{\nlabel=\"Pipeline State Object\"\n");
-        pGVstr = vk_gv_print_vkgraphicspipelinecreateinfo(&pPipeTrav->graphicsPipelineCI, "PSO HEAD");
-        fprintf(pOutFile, "%s", pGVstr);
-        free(pGVstr);
-        fprintf(pOutFile, "}\n");
-        dsCoreDumpDot(g_lastBoundDescriptorSet, pOutFile);
-        fprintf(pOutFile, "}\n"); // close main graph "g"
-        fclose(pOutFile);
-    }
-}
-// Dump a GraphViz dot file showing the pipeline for a given CB
-static void dumpDotFile(const VkCmdBuffer cb, string outFileName)
-{
-    GLOBAL_CB_NODE* pCB = getCBNode(cb);
-    if (pCB) {
-        PIPELINE_NODE *pPipeTrav = getPipeline(pCB->lastBoundPipeline);
-        if (pPipeTrav) {
-            FILE* pOutFile;
-            pOutFile = fopen(outFileName.c_str(), "w");
-            fprintf(pOutFile, "digraph g {\ngraph [\nrankdir = \"TB\"\n];\nnode [\nfontsize = \"16\"\nshape = \"plaintext\"\n];\nedge [\n];\n");
-            fprintf(pOutFile, "subgraph cluster_dynamicState\n{\nlabel=\"Dynamic State\"\n");
-            char* pGVstr = NULL;
-            for (uint32_t i = 0; i < VK_NUM_STATE_BIND_POINT; i++) {
-                if (pCB->lastBoundDynamicState[i] && pCB->lastBoundDynamicState[i]->pCreateInfo) {
-                    pGVstr = dynamic_gv_display(pCB->lastBoundDynamicState[i]->pCreateInfo, string_VkStateBindPoint((VkStateBindPoint)i));
-                    fprintf(pOutFile, "%s", pGVstr);
-                    free(pGVstr);
-                }
-            }
-            fprintf(pOutFile, "}\n"); // close dynamicState subgraph
-            fprintf(pOutFile, "subgraph cluster_PipelineStateObject\n{\nlabel=\"Pipeline State Object\"\n");
-            pGVstr = vk_gv_print_vkgraphicspipelinecreateinfo(&pPipeTrav->graphicsPipelineCI, "PSO HEAD");
-            fprintf(pOutFile, "%s", pGVstr);
-            free(pGVstr);
-            fprintf(pOutFile, "}\n");
-            dsDumpDot(cb, pOutFile);
-            fprintf(pOutFile, "}\n"); // close main graph "g"
-            fclose(pOutFile);
-        }
-    }
-}
+
 // Verify bound Pipeline State Object
 static bool validateBoundPipeline(const VkCmdBuffer cb)
 {
@@ -1474,21 +1247,7 @@
     printDSConfig(cb);
     printPipeline(cb);
     printDynamicState(cb);
-    static int autoDumpOnce = 0;
-    if (autoDumpOnce) {
-        autoDumpOnce = 0;
-        dumpDotFile(cb, "pipeline_dump.dot");
-        cbDumpDotFile("cb_dump.dot");
-#if defined(_WIN32)
-// FIXME: NEED WINDOWS EQUIVALENT
-#else // WIN32
-        // Convert dot to svg if dot available
-        if(access( "/usr/bin/dot", X_OK) != -1) {
-            int retval = system("/usr/bin/dot pipeline_dump.dot -Tsvg -o pipeline_dump.svg");
-            assert(retval != -1);
-        }
-#endif // WIN32
-    }
+
 }
 
 static void init_draw_state(layer_data *my_data)
@@ -2809,41 +2568,6 @@
     debug_marker_dispatch_table(device)->DbgSetObjectName(device, objType, object, nameSize, pName);
 }
 
-// TODO : Want to pass in a cmdBuffer here based on which state to display
-void drawStateDumpDotFile(char* outFileName)
-{
-    // TODO : Currently just setting cmdBuffer based on global var
-    //dumpDotFile(g_lastDrawStateCmdBuffer, outFileName);
-    dumpGlobalDotFile(outFileName);
-}
-
-void drawStateDumpCommandBufferDotFile(char* outFileName)
-{
-    cbDumpDotFile(outFileName);
-}
-
-void drawStateDumpPngFile(const VkDevice device, char* outFileName)
-{
-#if defined(_WIN32)
-// FIXME: NEED WINDOWS EQUIVALENT
-        log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkObjectType) 0, NULL, 0, DRAWSTATE_MISSING_DOT_PROGRAM, "DS",
-                "Cannot execute dot program yet on Windows.");
-#else // WIN32
-    char dotExe[32] = "/usr/bin/dot";
-    if( access(dotExe, X_OK) != -1) {
-        dumpDotFile(g_lastCmdBuffer[getTIDIndex()], "/tmp/tmp.dot");
-        char dotCmd[1024];
-        sprintf(dotCmd, "%s /tmp/tmp.dot -Tpng -o %s", dotExe, outFileName);
-        int retval = system(dotCmd);
-        assert(retval != -1);
-        remove("/tmp/tmp.dot");
-    } else {
-        log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkObjectType) 0, NULL, 0, DRAWSTATE_MISSING_DOT_PROGRAM, "DS",
-                "Cannot execute dot program at (%s) to dump requested %s file.", dotExe, outFileName);
-    }
-#endif // WIN32
-}
-
 VK_LAYER_EXPORT void* VKAPI vkGetDeviceProcAddr(VkDevice dev, const char* funcName)
 {
     if (dev == NULL)
@@ -2964,14 +2688,6 @@
         return (void*) vkCmdBeginRenderPass;
     if (!strcmp(funcName, "vkCmdEndRenderPass"))
         return (void*) vkCmdEndRenderPass;
-    if (!strcmp(funcName, "vkCmdExecuteCommands"))
-        return (void*) vkCmdExecuteCommands;
-    if (!strcmp("drawStateDumpDotFile", funcName))
-        return (void*) drawStateDumpDotFile;
-    if (!strcmp("drawStateDumpCommandBufferDotFile", funcName))
-        return (void*) drawStateDumpCommandBufferDotFile;
-    if (!strcmp("drawStateDumpPngFile", funcName))
-        return (void*) drawStateDumpPngFile;
 
     VkLayerDispatchTable* pTable = get_dispatch_table(draw_state_device_table_map, dev);
     if (deviceExtMap.size() == 0 || deviceExtMap[pTable].debug_marker_enabled)