My understanding is that if no range is specified then it is understood that the whole resource might be read. If the resource is already mapped `vkInvalidateMappedMemoryRanges()` should be called to ensure the CPU sees a fresh copy. Ignoring this request is a departure from the D3D12 semantics we should emulate, so the `WARN()` should be retained (or maybe it should be a `FIXME()`?). It could be dropped, instead, if the resource is going to be freshly mapped, independently of the read range, I think.