wined3d: Mark managed textures as dirty if applicable in wined3d_device_evict_managed_resources().

This commit is contained in:
Zebediah Figura 2022-07-29 19:01:18 -05:00 committed by Alexandre Julliard
parent 44d6f2adbc
commit 25127c5637

View file

@ -5521,8 +5521,23 @@ void CDECL wined3d_device_evict_managed_resources(struct wined3d_device *device)
if ((resource->usage & WINED3DUSAGE_MANAGED) && !resource->map_count) if ((resource->usage & WINED3DUSAGE_MANAGED) && !resource->map_count)
{ {
TRACE("Evicting %p.\n", resource); if (resource->access & WINED3D_RESOURCE_ACCESS_GPU)
wined3d_cs_emit_unload_resource(device->cs, resource); {
TRACE("Evicting %p.\n", resource);
wined3d_cs_emit_unload_resource(device->cs, resource);
}
if (resource->type != WINED3D_RTYPE_BUFFER)
{
struct wined3d_texture *texture = texture_from_resource(resource);
unsigned int i;
if (texture->dirty_regions)
{
for (i = 0; i < texture->layer_count; ++i)
wined3d_texture_add_dirty_region(texture, i, NULL);
}
}
} }
} }
} }