From de19ba7c23b3fd3c80ce7221bdb3ce138b3d4400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zef=20Kucia?= Date: Wed, 2 Nov 2016 10:55:36 +0100 Subject: [PATCH] wined3d: Invalidate STATE_CONSTANT_BUFFER(*) device state in buffer_destroy_buffer_object() when needed. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Józef Kucia Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/wined3d/buffer.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c index d2b54beb39a..72c45ee6d68 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -162,6 +162,15 @@ static void buffer_destroy_buffer_object(struct wined3d_buffer *buffer, const st device_invalidate_state(resource->device, STATE_STREAMSRC); if (buffer->bind_flags & WINED3D_BIND_INDEX_BUFFER) device_invalidate_state(resource->device, STATE_INDEXBUFFER); + if (buffer->bind_flags & WINED3D_BIND_CONSTANT_BUFFER) + { + device_invalidate_state(resource->device, STATE_CONSTANT_BUFFER(WINED3D_SHADER_TYPE_VERTEX)); + device_invalidate_state(resource->device, STATE_CONSTANT_BUFFER(WINED3D_SHADER_TYPE_HULL)); + device_invalidate_state(resource->device, STATE_CONSTANT_BUFFER(WINED3D_SHADER_TYPE_DOMAIN)); + device_invalidate_state(resource->device, STATE_CONSTANT_BUFFER(WINED3D_SHADER_TYPE_GEOMETRY)); + device_invalidate_state(resource->device, STATE_CONSTANT_BUFFER(WINED3D_SHADER_TYPE_PIXEL)); + device_invalidate_state(resource->device, STATE_CONSTANT_BUFFER(WINED3D_SHADER_TYPE_COMPUTE)); + } } if (buffer->query)