From 5d9d20ee0ef1ea7d4269fc12a79f80621dc5dffd Mon Sep 17 00:00:00 2001
From: Henri Verbeet <hverbeet@codeweavers.com>
Date: Wed, 28 Nov 2012 22:11:47 +0100
Subject: [PATCH] wined3d: Also unbind stream outputs and the geometry shader
 in stateblock_unbind_resources().

---
 dlls/wined3d/stateblock.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index c399bad995a..9b7148624dc 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -491,6 +491,15 @@ void stateblock_unbind_resources(struct wined3d_stateblock *stateblock)
         }
     }
 
+    for (i = 0; i < MAX_STREAM_OUT; ++i)
+    {
+        if ((buffer = state->stream_output[i].buffer))
+        {
+            state->stream_output[i].buffer = NULL;
+            wined3d_buffer_decref(buffer);
+        }
+    }
+
     for (i = 0; i < MAX_STREAMS; ++i)
     {
         if ((buffer = state->streams[i].buffer))
@@ -512,6 +521,12 @@ void stateblock_unbind_resources(struct wined3d_stateblock *stateblock)
         wined3d_shader_decref(shader);
     }
 
+    if ((shader = state->geometry_shader))
+    {
+        state->geometry_shader = NULL;
+        wined3d_shader_decref(shader);
+    }
+
     if ((shader = state->pixel_shader))
     {
         state->pixel_shader = NULL;
-- 
GitLab