[PATCH 3/3] wined3d: Remove texture locations after downloading all subresources.
Stefan Dösinger
stefan at codeweavers.com
Wed Oct 22 14:56:38 CDT 2014
Otherwise the entire mipmap chain is lost after loading the first
subresource from the texture into sysmem. Fixes bug 37406.
---
dlls/wined3d/surface.c | 1 -
dlls/wined3d/texture.c | 1 +
dlls/wined3d/volume.c | 1 -
3 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 75f48de..092cbe6 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -1207,7 +1207,6 @@ static void surface_unload(struct wined3d_resource *resource)
surface_load_location(surface, surface->resource.map_binding);
surface_invalidate_location(surface, ~surface->resource.map_binding);
}
- wined3d_texture_force_reload(surface->container);
context = context_acquire(device, NULL);
gl_info = context->gl_info;
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 4f962f1..6ecd414 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -979,6 +979,7 @@ static void wined3d_texture_unload(struct wined3d_resource *resource)
sub_resource->resource_ops->resource_unload(sub_resource);
}
+ wined3d_texture_force_reload(texture);
wined3d_texture_unload_gl_texture(texture);
}
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
index 0cbc7d4..58d7321 100644
--- a/dlls/wined3d/volume.c
+++ b/dlls/wined3d/volume.c
@@ -451,7 +451,6 @@ static void volume_unload(struct wined3d_resource *resource)
}
/* The texture name is managed by the container. */
- wined3d_texture_force_reload(volume->container);
volume->flags &= ~WINED3D_VFLAG_CLIENT_STORAGE;
resource_unload(resource);
--
2.0.4
More information about the wine-patches
mailing list