Jan Sikorski (@jsikorski) commented about dlls/wined3d/texture.c:
{ src_bind_mask = texture_vk->bind_mask & WINED3D_READ_ONLY_BIND_MASK; if (!src_bind_mask)
src_bind_mask = texture_vk->bind_mask;
src_bind_mask = texture_vk->bind_mask & ~bind_mask;
That doesn't seem right, without a barrier, first write might overwrite the second, if both writes use different caches and they flush out of execution order. Is there something in the spec that says it couldn't happen?