Added patch to invalidate INDEXBUFFER device state when bound index buffer is unloaded.

This commit is contained in:
Sebastian Lackner
2016-11-01 14:54:58 +01:00
parent 8f707d32ac
commit 1f8b19cb25
2 changed files with 55 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
From cda4f405aae949edf1ad29b2277b28a57c661ad5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B3zef=20Kucia?= <jkucia@codeweavers.com>
Date: Mon, 31 Oct 2016 12:48:31 +0100
Subject: wined3d: Invalidate INDEXBUFFER device state when bound index buffer
is unloaded.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fixes a regression introduced by commit
e3a8cd20ced9f33db64a35f60bc8487ae8173e47.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
---
dlls/wined3d/buffer.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index a81cd64..13953c9 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -665,7 +665,12 @@ static void buffer_unload(struct wined3d_resource *resource)
* happens only once per changed vertexbuffer and should occur rather
* rarely. */
if (resource->bind_count)
+ {
device_invalidate_state(device, STATE_STREAMSRC);
+
+ if (buffer->buffer_type_hint == GL_ELEMENT_ARRAY_BUFFER)
+ device_invalidate_state(device, STATE_INDEXBUFFER);
+ }
}
resource_unload(resource);
--
2.9.0