Module: wine Branch: master Commit: c3c131ab3419df6152598cd731e08b06e585b440 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c3c131ab3419df6152598cd731...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Jun 23 00:02:37 2011 +0200
wined3d: Only invalidate STATE_STREAMSRC for bound buffers.
---
dlls/wined3d/buffer.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c index 1199d3c..ea94c7e 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -843,7 +843,8 @@ void CDECL wined3d_buffer_preload(struct wined3d_buffer *buffer) FIXME("Too many full buffer conversions, stopping converting.\n"); buffer_unload(&buffer->resource); buffer->flags &= ~WINED3D_BUFFER_CREATEBO; - device_invalidate_state(device, STATE_STREAMSRC); + if (buffer->bind_count) + device_invalidate_state(device, STATE_STREAMSRC); return; } } @@ -1070,7 +1071,8 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN TRACE("Dynamic buffer, dropping VBO\n"); buffer_unload(&buffer->resource); buffer->flags &= ~WINED3D_BUFFER_CREATEBO; - device_invalidate_state(device, STATE_STREAMSRC); + if (buffer->bind_count) + device_invalidate_state(device, STATE_STREAMSRC); } else {