wined3d: Upload directly from the source surface in wined3d_surface_blt(), if possible.
commit2da4f87a7e7551f17cd650ef6d8596f595efc13b
authorHenri Verbeet <hverbeet@codeweavers.com>
Mon, 24 Oct 2011 18:45:42 +0000 (24 20:45 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 25 Oct 2011 14:57:23 +0000 (25 16:57 +0200)
treeea0c149fc915b72fd36211d62a7965df2e916a74
parent6238926a2e5c94891b7b81afa7ef073908ac3c86
wined3d: Upload directly from the source surface in wined3d_surface_blt(), if possible.

This avoids either loading sysmem surfaces into video memory (wasting GPU
memory) and then doing a blit on the GPU, or downloading GPU surfaces to
sysmem, doing a blit on the CPU, and likely uploading it again. This mostly
matters for ddraw and d3d8 applications, d3d9 already has to go through
wined3d_device_update_surface() to transfer data from sysmem surfaces to GPU
surfaces.
dlls/wined3d/device.c
dlls/wined3d/surface.c
dlls/wined3d/wined3d_private.h