wined3d: Only invalidate state for the current context in wined3d_buffer_unmap().
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index 9b20d87..ae04138 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -1136,12 +1136,13 @@
         const struct wined3d_gl_info *gl_info;
         struct wined3d_context *context;
 
-        if (buffer->buffer_type_hint == GL_ELEMENT_ARRAY_BUFFER_ARB)
-            device_invalidate_state(device, STATE_INDEXBUFFER);
-
         context = context_acquire(device, NULL);
         gl_info = context->gl_info;
+
         ENTER_GL();
+
+        if (buffer->buffer_type_hint == GL_ELEMENT_ARRAY_BUFFER_ARB)
+            context_invalidate_state(context, STATE_INDEXBUFFER);
         GL_EXTCALL(glBindBufferARB(buffer->buffer_type_hint, buffer->buffer_object));
 
         if (gl_info->supported[ARB_MAP_BUFFER_RANGE])