wined3d: Let buffer_direct_upload() invalidate STATE_INDEXBUFFER if needed.
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>
This commit is contained in:
parent
7e7f46f436
commit
b1cc82a29f
|
@ -668,15 +668,13 @@ drop_query:
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The caller provides a GL context */
|
/* The caller provides a GL context */
|
||||||
static void buffer_direct_upload(struct wined3d_buffer *This, const struct wined3d_gl_info *gl_info, DWORD flags)
|
static void buffer_direct_upload(struct wined3d_buffer *This, struct wined3d_context *context, DWORD flags)
|
||||||
{
|
{
|
||||||
|
const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||||
|
unsigned int start, len;
|
||||||
BYTE *map;
|
BYTE *map;
|
||||||
UINT start, len;
|
|
||||||
|
|
||||||
/* This potentially invalidates the element array buffer binding, but the
|
buffer_bind(This, context);
|
||||||
* caller always takes care of this. */
|
|
||||||
GL_EXTCALL(glBindBuffer(This->buffer_type_hint, This->buffer_object));
|
|
||||||
checkGLcall("glBindBuffer");
|
|
||||||
if (gl_info->supported[ARB_MAP_BUFFER_RANGE])
|
if (gl_info->supported[ARB_MAP_BUFFER_RANGE])
|
||||||
{
|
{
|
||||||
GLbitfield mapflags;
|
GLbitfield mapflags;
|
||||||
|
@ -686,7 +684,7 @@ static void buffer_direct_upload(struct wined3d_buffer *This, const struct wined
|
||||||
else if (!(flags & WINED3D_BUFFER_SYNC))
|
else if (!(flags & WINED3D_BUFFER_SYNC))
|
||||||
mapflags |= GL_MAP_UNSYNCHRONIZED_BIT;
|
mapflags |= GL_MAP_UNSYNCHRONIZED_BIT;
|
||||||
map = GL_EXTCALL(glMapBufferRange(This->buffer_type_hint, 0,
|
map = GL_EXTCALL(glMapBufferRange(This->buffer_type_hint, 0,
|
||||||
This->resource.size, mapflags));
|
This->resource.size, mapflags));
|
||||||
checkGLcall("glMapBufferRange");
|
checkGLcall("glMapBufferRange");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -867,12 +865,9 @@ void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_conte
|
||||||
|
|
||||||
/* Nothing to do because we locked directly into the vbo */
|
/* Nothing to do because we locked directly into the vbo */
|
||||||
if (!(buffer->flags & WINED3D_BUFFER_DOUBLEBUFFER))
|
if (!(buffer->flags & WINED3D_BUFFER_DOUBLEBUFFER))
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
buffer_direct_upload(buffer, gl_info, flags);
|
|
||||||
|
|
||||||
|
buffer_direct_upload(buffer, context, flags);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue