Microsoft DirectStorage 1.2 ya está disponible y viene con varias características nuevas además de una lista de correcciones que los desarrolladores pueden utilizar.
Microsoft presenta DirectStorage 1.2 con nuevas características que podrían ayudar a acelerar los tiempos de carga en HDD
Aunque la API de Microsoft DirectStorage ha estado disponible por un tiempo y es compatible con todos los principales proveedores de GPU y SSD, no hay muchas aplicaciones que la utilicen en este momento. El único título de juego importante que lo admitió fue Forspoken, que se lanzó hace unos meses y, aunque el juego mostró algunos tiempos de carga excelentes, el título en sí no recibió críticas negativas en la plataforma de PC, lo que significó que la gran mayoría de los jugadores y la audiencia de PC aún no ha visto la API en acción.
DirectStorage 1.2 tiene el potencial de mejorar aún más los tiempos de carga de HDD una vez que se implemente en futuros juegos y aplicaciones gracias al modo Force Buffered IO.
Forzar E/S con búfer
DirectStorage actualmente abre archivos en modo sin búfer. Esto nos permite evitar copias innecesarias y llevar los datos a la GPU lo más rápido posible. Sin embargo, escuchamos de algunos desarrolladores que les gustaría poder usar el mismo código tanto en SSD de alta velocidad como en discos duros heredados. Los discos duros heredados requieren E/S almacenada en búfer para enmascarar los largos tiempos de búsqueda. Por este motivo, agregamos la capacidad de configurar DirectStorage para abrir archivos en modo almacenado en búfer.
Esto se puede habilitar configurando el campo «ForceFileBuffering» en DSTORAGE_CONFIGURATION1 en TRUE. Tenga en cuenta que la E/S almacenada en búfer es incompatible con BypassIO y, por lo tanto, DisableBypassIO debe establecerse en TRUE al usar esta opción.
Es responsabilidad del título saber cuándo usar esta configuración. Esta función solo debe habilitarse para unidades de disco duro más lentas que se beneficiarán de las funciones de almacenamiento en búfer de archivos del sistema operativo.
Nueva API GetCompressionSupport
DirectStorage actualmente elige la ruta de descompresión para los formatos de compresión integrados en función de las capacidades compatibles de la GPU. Hay escenarios en los que se elige una ruta alternativa basada en CPU. Escuchamos de los desarrolladores que sería beneficioso comprender qué ruta de descompresión se está utilizando para que la configuración de resolución de textura predeterminada se pueda establecer en función de esto. Para habilitar esto, agregamos una nueva API para consultar qué ruta ha elegido el tiempo de ejecución.
IDStorageQueue2::GetCompressionSupport() devuelve un valor que indica si una implementación optimizada para GPU, respaldo de GPU para respaldo de CPU se usa para la descompresión, así como qué tipos de colas usará DirectStorage para la descompresión.
Corrección de errores
- Resuelto https://github.com/microsoft/DirectStorage/issues/22 agregando un Campo «Reservado1» para DSTORAGE_REQUEST_OPTIONS. Esto hace que el diseño en memoria de la estructura sea más explícito, pero en realidad no cambia el diseño de las versiones anteriores.
- Se corrigió DSTORAGE_REQUEST_DESTINATION_TEXTURE_REGION para texturas 3D, como se nos informó en el Canal de discordia DirectX.
- Se solucionó el problema de programación que se manifestaba al transferir datos sin comprimir de la memoria a los búferes.
Mejoras de rendimiento
- Se movió la copia después de la descompresión de la GPU a la cola de cómputo para las GPU en las que esto es más rápido.