From: Elizabeth Figura zfigura@codeweavers.com
If we are writing the entire dst resource—and this is always the case for a download, since wined3d_texture_download_from_texture() does not support partial downloads—there is no reason to try to preserve any current map binding the destination resource may have. We are going to load the resource into its map binding anyway.
In practice this can happen if the destination's valid location is CLEARED.
With the Vulkan renderer, in that case, we currently load the src texture into SYSMEM and then perform a CPU copy. This change avoids that. --- dlls/wined3d/surface.c | 1 - 1 file changed, 1 deletion(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 6cc00833d56..9620b054e5a 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -1519,7 +1519,6 @@ HRESULT texture2d_blt(struct wined3d_texture *dst_texture, unsigned int dst_sub_ } } else if (!sub_resource_is_on_cpu(src_texture, src_sub_resource_idx) - && (dst_sub_resource->locations & dst_texture->resource.map_binding) && !(dst_texture->resource.access & WINED3D_RESOURCE_ACCESS_GPU)) { /* Download */