[PATCH 2/6] wined3d: Acquire stream output buffers for draw calls.

Józef Kucia jkucia at codeweavers.com
Wed Mar 29 08:11:07 CDT 2017


Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 dlls/wined3d/cs.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index dd6feab..71099e7 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -634,6 +634,11 @@ static void wined3d_cs_exec_draw(struct wined3d_cs *cs, const void *data)
         if (state->streams[i].buffer)
             wined3d_resource_release(&state->streams[i].buffer->resource);
     }
+    for (i = 0; i < ARRAY_SIZE(state->stream_output); ++i)
+    {
+        if (state->stream_output[i].buffer)
+            wined3d_resource_release(&state->stream_output[i].buffer->resource);
+    }
     for (i = 0; i < ARRAY_SIZE(state->textures); ++i)
     {
         if (state->textures[i])
@@ -675,6 +680,11 @@ void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, int base
         if (state->streams[i].buffer)
             wined3d_resource_acquire(&state->streams[i].buffer->resource);
     }
+    for (i = 0; i < ARRAY_SIZE(state->stream_output); ++i)
+    {
+        if (state->stream_output[i].buffer)
+            wined3d_resource_acquire(&state->stream_output[i].buffer->resource);
+    }
     for (i = 0; i < ARRAY_SIZE(state->textures); ++i)
     {
         if (state->textures[i])
-- 
2.10.2




More information about the wine-patches mailing list