tests: Added code to render_tests.cpp to dump dot files using DrawState layer

Code blocks are guarded by DUMP_STATE_DOT and off by default.  For this code to function, you need to have the DrawState layer enabled.
diff --git a/tests/render_tests.cpp b/tests/render_tests.cpp
index 2f9fd5b..1c385c7 100644
--- a/tests/render_tests.cpp
+++ b/tests/render_tests.cpp
@@ -61,6 +61,9 @@
 using namespace std;
 
 #include <xgl.h>
+#ifdef DUMP_STATE_DOT
+#include "../layers/draw_state.h"
+#endif
 #ifdef PRINT_OBJECTS
 #include "../layers/object_track.h"
 #endif
@@ -558,7 +561,10 @@
 
 //    xglCmdBindDescriptorSet(m_cmdBuffer, XGL_PIPELINE_BIND_POINT_GRAPHICS, 0, m_rsrcDescSet, 0 );
 //    xglCmdBindDynamicMemoryView( m_cmdBuffer, XGL_PIPELINE_BIND_POINT_GRAPHICS,  &m_constantBufferView );
-
+#ifdef DUMP_STATE_DOT
+    DRAW_STATE_DUMP_DOT_FILE pDSDumpDot = (DRAW_STATE_DUMP_DOT_FILE)xglGetProcAddr(gpu(), (XGL_CHAR*)"drawStateDumpDotFile");
+    pDSDumpDot((char*)"triTest.dot");
+#endif
     // render the cube
     xglCmdDraw( m_cmdBuffer, 0, 3, 0, 1 );
 
@@ -655,7 +661,10 @@
 
 //    xglCmdBindDescriptorSet(m_cmdBuffer, XGL_PIPELINE_BIND_POINT_GRAPHICS, 0, m_rsrcDescSet, 0 );
 //    xglCmdBindDynamicMemoryView( m_cmdBuffer, XGL_PIPELINE_BIND_POINT_GRAPHICS,  &m_constantBufferView );
-
+#ifdef DUMP_STATE_DOT
+    DRAW_STATE_DUMP_DOT_FILE pDSDumpDot = (DRAW_STATE_DUMP_DOT_FILE)xglGetProcAddr(gpu(), (XGL_CHAR*)"drawStateDumpDotFile");
+    pDSDumpDot((char*)"triUniFS.dot");
+#endif
     // render the cube
     xglCmdDraw( m_cmdBuffer, 0, 3, 0, 1 );
 
@@ -745,7 +754,10 @@
 
 //    xglCmdBindDescriptorSet(m_cmdBuffer, XGL_PIPELINE_BIND_POINT_GRAPHICS, 0, m_rsrcDescSet, 0 );
 //    xglCmdBindDynamicMemoryView( m_cmdBuffer, XGL_PIPELINE_BIND_POINT_GRAPHICS,  &m_constantBufferView );
-
+#ifdef DUMP_STATE_DOT
+    DRAW_STATE_DUMP_DOT_FILE pDSDumpDot = (DRAW_STATE_DUMP_DOT_FILE)xglGetProcAddr(gpu(), (XGL_CHAR*)"drawStateDumpDotFile");
+    pDSDumpDot((char*)"triVSUni.dot");
+#endif
     // render the cube
     xglCmdDraw( m_cmdBuffer, 0, numTris*3, 0, 1 );
 
@@ -931,7 +943,10 @@
     ClearDepthStencil(1.0f); // HACK for now
     GenerateBindRenderTargetCmd();
     GenerateBindStateAndPipelineCmds(&pipeline);
-
+#ifdef DUMP_STATE_DOT
+    DRAW_STATE_DUMP_DOT_FILE pDSDumpDot = (DRAW_STATE_DUMP_DOT_FILE)xglGetProcAddr(gpu(), (XGL_CHAR*)"drawStateDumpDotFile");
+    pDSDumpDot((char*)"triVtxFetchAndMVP.dot");
+#endif
     // render the cube
     xglCmdDraw( m_cmdBuffer, 0, 12*3, 0, 1 );
 
@@ -1535,7 +1550,10 @@
 
 //    xglCmdBindDescriptorSet(m_cmdBuffer, XGL_PIPELINE_BIND_POINT_GRAPHICS, 0, m_rsrcDescSet, 0 );
 //    xglCmdBindDynamicMemoryView( m_cmdBuffer, XGL_PIPELINE_BIND_POINT_GRAPHICS,  &m_constantBufferView );
-
+#ifdef DUMP_STATE_DOT
+    DRAW_STATE_DUMP_DOT_FILE pDSDumpDot = (DRAW_STATE_DUMP_DOT_FILE)xglGetProcAddr(gpu(), (XGL_CHAR*)"drawStateDumpDotFile");
+    pDSDumpDot((char*)"triVtxFetch.dot");
+#endif
     // render the cube
     xglCmdDraw( m_cmdBuffer, 0, 12*3, 0, 1 );