From: Sebastian Lackner Subject: wined3d: Call wined3d_cs_emit_unload_resource outside of command stream. Message-Id: Date: Fri, 17 Feb 2017 03:47:41 +0100 Signed-off-by: Sebastian Lackner --- dlls/wined3d/device.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 37773315767..49de6c740ed 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -947,17 +947,10 @@ static void device_init_swapchain_state(struct wined3d_device *device, struct wi static void wined3d_device_delete_opengl_contexts_cs(void *object) { - struct wined3d_resource *resource, *cursor; struct wined3d_device *device = object; struct wined3d_context *context; struct wined3d_shader *shader; - LIST_FOR_EACH_ENTRY_SAFE(resource, cursor, &device->resources, struct wined3d_resource, resource_list_entry) - { - TRACE("Unloading resource %p.\n", resource); - wined3d_cs_emit_unload_resource(device->cs, resource); - } - LIST_FOR_EACH_ENTRY(shader, &device->shaders, struct wined3d_shader, shader_list_entry) { device->shader_backend->shader_destroy(shader); @@ -981,6 +974,14 @@ static void wined3d_device_delete_opengl_contexts_cs(void *object) static void wined3d_device_delete_opengl_contexts(struct wined3d_device *device) { + struct wined3d_resource *resource, *cursor; + + LIST_FOR_EACH_ENTRY_SAFE(resource, cursor, &device->resources, struct wined3d_resource, resource_list_entry) + { + TRACE("Unloading resource %p.\n", resource); + wined3d_cs_emit_unload_resource(device->cs, resource); + } + wined3d_cs_destroy_object(device->cs, wined3d_device_delete_opengl_contexts_cs, device); } -- 2.11.0