wined3d: Properly preload index buffers.
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index bba4112..4037c41 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -2336,6 +2336,13 @@
device_preload_textures(device);
if (isStateDirty(context, STATE_VDECL) || isStateDirty(context, STATE_STREAMSRC))
device_update_stream_info(device, context->gl_info);
+ if (state->index_buffer && !state->user_stream)
+ {
+ if (device->strided_streams.all_vbo)
+ wined3d_buffer_preload(state->index_buffer);
+ else
+ buffer_get_sysmem(state->index_buffer, context->gl_info);
+ }
ENTER_GL();
if (context->last_was_blit)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index f154e44..a0fbe86 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -447,15 +447,8 @@
}
}
- if (state->index_buffer && !state->user_stream)
- {
- if (prev_all_vbo != stream_info->all_vbo)
- device_invalidate_state(device, STATE_INDEXBUFFER);
- if (stream_info->all_vbo)
- wined3d_buffer_preload(state->index_buffer);
- else
- buffer_get_sysmem(state->index_buffer, gl_info);
- }
+ if (prev_all_vbo != stream_info->all_vbo)
+ device_invalidate_state(device, STATE_INDEXBUFFER);
}
static void device_preload_texture(const struct wined3d_state *state, unsigned int idx)