microsoft/DirectStorage

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.