Commit 45a0e959 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Only load the surface for partial updates in wined3d_device_update_surface().

parent 3a1d1515
......@@ -4833,8 +4833,13 @@ HRESULT CDECL wined3d_device_update_surface(struct wined3d_device *device,
checkGLcall("glActiveTextureARB");
LEAVE_GL();
/* Make sure the surface is loaded and up to date */
surface_load_location(dst_surface, SFLAG_INTEXTURE, NULL);
/* Only load the surface for partial updates. For newly allocated texture
* the texture wouldn't be the current location, and we'd upload zeroes
* just to overwrite them again. */
if (update_w == dst_w && update_h == dst_h)
surface_prepare_texture(dst_surface, gl_info, FALSE);
else
surface_load_location(dst_surface, SFLAG_INTEXTURE, NULL);
surface_bind(dst_surface, gl_info, FALSE);
data.buffer_object = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment