Jump to content
  • 0

Is DrivePool compatible with Windows 11's DirectStorage/BypassIO on NVMe drives?


virtd

Question

BypassIO was introduced with Windows 11. More info on: https://learn.microsoft.com/en-us/windows-hardware/drivers/storage/bypassio (storage drivers) or https://learn.microsoft.com/en-us/windows-hardware/drivers/ifs/bypassio (filter drivers).

"It is important that storage drivers implement support for BypassIO, and that you keep BypassIO enabled as much as possible. Without storage stack support, game performance will be degraded, resulting in a poor gaming experience for end users."

This will be crucial for DirectStorage support; also "There will be broader application uses beyond gaming in future Windows releases."

Is DrivePool compatible with BypassIO on pooled NVMe drives? Or can it be? Thanks!

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Heya! Any news on this issue?

There is an increasing number of PC games starting to use DirectStorage, and without support for BypassIO in DrivePool they won't work. Those games (e.g. Forspoken, Diablo 4) must currently be installed outside the pool to take advantage of DirectStorage.

From BypassIO for filter drivers - Windows drivers | Microsoft Learn:

Quote

About BypassIO
Starting in Windows 11, BypassIO was added as an optimized I/O path for reading from files. The goal of this path is to reduce the CPU overhead of doing reads, which helps to meet the I/O demands of loading and running next-generation games on Windows. BypassIO is a part of the infrastructure to support DirectStorage on Windows.

It is important that minifilters implement support for BypassIO, and that you keep BypassIO enabled as much as possible. Without filter support, game performance will be degraded, resulting in a poor gaming experience for end users.

There will be broader application uses beyond gaming in future Windows releases.

traditional-io-path.jpg

bypass-io-path.jpg

BypassIO/DirectStorage support can be checked in several ways. For example:

1) In the terminal (comparing my M.2 "C" drive to my Drivepool "D" drive):

>fsutil bypassIo state c:\
BypassIo on "c:\" is currently supported
    Storage Type:   NVMe
    Storage Driver: BypassIo compatible

>fsutil bypassIo state d:\
Error:  Incorrect function.

2) Using the Xbox Gaming Bar: How to Use DirectStorage in Windows 11 (lifewire.com)

Cheers.

Link to comment
Share on other sites

  • 0

From BypassIO for filter drivers - Windows drivers | Microsoft Learn:

Quote

Implement support for BypassIO requests
Minifilters should add support for BypassIO requests, which are sent through the FSCTL_MANAGE_BYPASS_IO control code. See Supporting BypassIO operations for details.

From Supporting BypassIO operations - Windows drivers | Microsoft Learn:

Quote

Starting in Windows 11, all minifilters should add support for BypassIO operations. BypassIO operations are requested by calling FltFsControlFile or ZwFsControlFile with the FSCTL_MANAGE_BYPASS_IO control code and request-specific information in a FS_BPIO_INPUT structure pointed to by the InputBuffer parameter.

This page provides details for each BypassIO operation. The operation request is specified as a FS_BPIO_OPERATIONS value in the Operation member of FS_BPIO_INPUT.

See BypassIO for filters for more information about BypassIO and for additional implementation details.

 

Link to comment
Share on other sites

  • 0
19 hours ago, virtd said:

There is an increasing number of PC games starting to use DirectStorage, and without support for BypassIO in DrivePool they won't work. Those games (e.g. Forspoken, Diablo 4) must currently be installed outside the pool to take advantage of DirectStorage.

Note that your linked site notes the feature isn't actually enabled yet in Diablo 4 - so it can't take advantage of DirectStorage even if you do install the game outside the pool - and the game still runs fine without it.

So right now "an increasing number of PC games" appears to be... one game instead of zero? With just a handful in development, and we don't know whether any of those will require it to work?

It is a nice tech though, if you have the high-end hardware to support it.

Link to comment
Share on other sites

  • 0
8 hours ago, Shane said:

Note that your linked site notes the feature isn't actually enabled yet in Diablo 4 - so it can't take advantage of DirectStorage even if you do install the game outside the pool - and the game still runs fine without it.

So right now "an increasing number of PC games" appears to be... one game instead of zero? With just a handful in development, and we don't know whether any of those will require it to work?

It is a nice tech though, if you have the high-end hardware to support it.

Thank you for your reply. I would like to clarify some points:

Regarding BypassIO, it was indeed the primary focus of my initial post. It's crucial to understand that BypassIO is currently operational on any Windows 11 system equipped with an M.2 SSD. This high-performance I/O path is not exclusive to DirectStorage; it also serves as a foundation for other technologies, such as I/O Rings.

As for DirectStorage, I concur with your observation. Currently, only Forspoken supports DirectStorage, with Diablo 4 expected to follow suit later this year. I apologize if my previous post gave a different impression; my intention was to provide accurate information, hence the inclusion of relevant articles.

DirectStorage, which is built upon BypassIO, is designed to enhance game performance by facilitating direct loading of assets from an NVMe SSD to the GPU, bypassing the CPU. This is particularly beneficial for games featuring expansive open-world environments that require streaming of substantial graphical assets.

The adoption of new technologies in the gaming industry often follows a pattern of initial limited implementation, followed by rapid expansion as the benefits become more evident and the technology enters the mainstream. This pattern is evident in the adoption of technologies such as DLSS/FSR or ray tracing, which, despite initial limited support, are now increasingly prevalent.

It's also worth noting that the underlying technology empowering DirectStorage is not confined to the PC platform. Both the PlayStation 5 and Xbox Series X have implemented similar concepts with their custom SSD solutions that facilitate rapid asset streaming. The significant investment by both major console manufacturers in this technology underscores its importance for the future of gaming, and we can anticipate future PC ports of games designed to benefit from these storage architectures.

In the realm of PC gaming, Nvidia's RTX IO serves as a prime example of this trend. RTX IO, designed to work in tandem with Microsoft's DirectStorage API, facilitates rapid GPU-based loading and game asset decompression. This mechanism allows developers to load assets directly into the GPU memory, bypassing the CPU and reducing the strain on the system's storage subsystem.

While the current number of games utilizing DirectStorage may be small, the potential impact of these technologies on the future of gaming is substantial. Still, today, just having BypassIO support would be very welcome.

Link to comment
Share on other sites

  • 0

Having done some looking it does appear that BypassIO is planned to be used for storage performance in general instead of just gaming (which is the main end-user impetus for it currently) and that it will eventually be expanded to interfaces beyond NVMe, with Microsoft pushing for drivers to at minimum be updated to respond to the (Windows 11) OS whether they do or do not support it.

So I'd imagine Stablebit would want to add it, it'd just be a matter of priorities as to when.

For anyone curious, you can check whether any drivers are preventing or only partially supporting BypassIO for a given drive/path via the command fsutil bypassio state path (e.g. "c:\").

Note that it might only tell you about one driver being an issue even if other drivers are also an issue. If you get "bypassio is an invalid parameter" then you're on an older version of Windows that doesn't have BypassIO.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...