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