layers: Correctly set last bound PSO in DrawState layer
authorTobin Ehlis <tobin@lunarg.com>
Tue, 3 Mar 2015 20:58:42 +0000 (13:58 -0700)
committerTobin Ehlis <tobin@lunarg.com>
Tue, 3 Mar 2015 21:08:08 +0000 (14:08 -0700)
layers/draw_state.c

index 8ddacd1..233c90e 100644 (file)
@@ -2525,13 +2525,14 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdBindPipeline(XGL_CMD_BUFFER cmdBuffer, XGL_PI
     GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer);
     if (pCB) {
         updateCBTracking(cmdBuffer);
-        loader_platform_thread_lock_mutex(&globalLock);
-        g_lastBoundPipeline = cmdBuffer;
-        loader_platform_thread_unlock_mutex(&globalLock);
         drawStateDumpDotFile("pipeline_diagram.dot");
         addCmd(pCB, CMD_BINDPIPELINE);
-        if (getPipeline(pipeline)) {
+        PIPELINE_NODE* pPN = getPipeline(pipeline);
+        if (pPN) {
             pCB->lastBoundPipeline = pipeline;
+            loader_platform_thread_lock_mutex(&globalLock);
+            g_lastBoundPipeline = pPN;
+            loader_platform_thread_unlock_mutex(&globalLock);
         }
         else {
             char str[1024];