From patch 2/5:
+bool wined3d_texture_validate_sub_resource_idx(const struct wined3d_texture *texture, unsigned int sub_resource_idx) +{ + if (sub_resource_idx < texture->level_count * texture->layer_count) + return true; + + WARN("Invalid sub-resource index %u.\n", sub_resource_idx); + return false; +}
It's fairly inconsequential, but `wined3d_texture_validate_sub_resource_idx()` sounds like something that modifies the texture. (Compare e.g. `wined3d_texture_validate_location()`.)
From patch 3/5:
@@ -5521,8 +5521,23 @@ void CDECL wined3d_device_evict_managed_resources(struct wined3d_device *device) if ((resource->usage & WINED3DUSAGE_MANAGED) && !resource->map_count) { - TRACE("Evicting %p.\n", resource); - wined3d_cs_emit_unload_resource(device->cs, resource); + if (resource->access & WINED3D_RESOURCE_ACCESS_GPU) + { + TRACE("Evicting %p.\n", resource); + wined3d_cs_emit_unload_resource(device->cs, resource); + }
Doesn't `WINED3DUSAGE_MANAGED` imply `WINED3D_RESOURCE_ACCESS_GPU`?