On 22 August 2013 14:57, Stefan Dösinger <ste...@codeweavers.com> wrote: > + if (volume->locations & WINED3D_LOCATION_DISCARDED) > + { > + TRACE("Volume previously discarded, nothing to do.\n"); > + wined3d_volume_invalidate_location(volume, > WINED3D_LOCATION_DISCARDED); > + } I don't think the location invalidation here is strictly required, although it probably doesn't hurt much in practice. (I.e., consider the sequence DISCARD, load SYSMEM, load TEXTURE_RGB. There's no real reason the RGB load needs to do an upload from SYSMEM in that case, although it's perhaps not something that's going to happen much in practice either way.)
> + wined3d_volume_validate_location(volume, > WINED3D_LOCATION_SYSMEM); You could probably just have a wined3d_volume_validate_location(volume, location); at the end of the function and return from the default case instead. That's not something I feel strongly about though.