DirectStorage icon indicating copy to clipboard operation
DirectStorage copied to clipboard

Wait for file-to-memory IO

Open sherief opened this issue 3 years ago • 3 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?

sherief avatar Mar 17 '22 17:03 sherief

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.

damyanp avatar Mar 17 '22 17:03 damyanp

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.

sherief avatar Mar 17 '22 18:03 sherief

I'm going to reopen this because it's a good suggestion and I still think this is something we should seriously consider :)

damyanp avatar Mar 17 '22 18:03 damyanp

DirectStorage 1.1 includes "EnqueueSetEvent", that I think satisfies this feature request.

damyanp avatar Feb 08 '23 21:02 damyanp