[PATCH 1/7] wined3d: Don't claim SYSMEM location to be current if memory was evicted.

Matteo Bruni mbruni at codeweavers.com
Fri Sep 15 08:12:22 CDT 2017


Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
---
Specifically wined3d_texture_load_location() can evict the SYSMEM
copy. Should fix bug 43701.

 dlls/wined3d/surface.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 608447f2cc..f35d5df775 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3539,7 +3539,8 @@ static DWORD cpu_blitter_blit(struct wined3d_blitter *blitter, enum wined3d_blit
         ERR("Failed to blit.\n");
     wined3d_texture_load_location(dst_texture, dst_sub_resource_idx, context, dst_location);
 
-    return dst_texture->resource.map_binding | dst_location;
+    return dst_location | (dst_texture->sub_resources[dst_sub_resource_idx].locations
+            & dst_texture->resource.map_binding);
 }
 
 static const struct wined3d_blitter_ops cpu_blitter_ops =
-- 
2.13.5




More information about the wine-patches mailing list