Wait for file-to-memory IO
sherief opened this issue · 4 comments
It seems that there's no way to WaitFor*() the completion of IO DSTORAGE_REQUEST_DESTINATION_MEMORY requests made on a queue with no D3D12 device. With DirectStorage being a simple, efficient way of saturating NVMe to system memory bandwidth, is there a plan to support this use case not involving a D3D12 device?
Thank you for the suggestion, we'll consider this.
The main reason that this isn't there already is because it encourages dependency chains - essentially turning DirectStorage into synchronous ReadFile.
You're absolutely correct that it can potentially be abused, but as a counterpoint I'd say saturating IO BW with DirectStorage and an EnqueueSignalSyncObject() function is orders of magnitude easier and less likely to fall off a performance cliff than asynchronous ReadFile / Overlapped IO. Thanks for considering this.
I'm going to reopen this because it's a good suggestion and I still think this is something we should seriously consider :)
DirectStorage 1.1 includes "EnqueueSetEvent", that I think satisfies this feature request.