Microsoft aumenta o desempenho com o novo DirectStorage 1.2, mesmo em HDDs mais lentos

Microsoft aumenta o desempenho com o novo DirectStorage 1.2, mesmo em HDDs mais lentos

A Microsoft lançou a versão mais recente de sua API DirectStorage. A nova versão, 1.2, traz alguns novos recursos, bem como correções de bugs. Também há aumento de desempenho na loja, graças a algumas alterações feitas.

Com o DirectStorage 1.2, a Microsoft está trazendo o modo IO em buffer. A empresa diz que é uma resposta aos desenvolvedores que desejam usar o mesmo caminho de código, tanto em unidades de estado sólido (SSDs) quanto em unidades de disco rígido (HDDs). Os HDDs operam no modo IO com buffer, pois têm tempos de busca muito mais longos. A empresa escreve:

Atualmente, o DirectStorage abre arquivos no modo sem buffer. Isso nos permite evitar cópias desnecessárias, colocando os dados na GPU o mais rápido possível. No entanto, ouvimos de alguns desenvolvedores que eles gostariam de poder usar o mesmo código tanto em SSDs de alta velocidade quanto em discos rígidos legados. Os discos rígidos herdados requerem IO em buffer para mascarar os longos tempos de busca. Por esse motivo, adicionamos a capacidade de configurar o DirectStorage para abrir arquivos no modo de buffer.

Além do IO em buffer, foi introduzida uma nova API GetCompressionSupport que adiciona a capacidade de consultar o caminho de descompactação usado, seja a GPU ou o caminho de CPU de fallback. O changelog completo para DirectStorage 1.2 é fornecido abaixo:

Novas características

  • Adicione suporte para habilitar E/S de arquivo em buffer para uso em HDDs que podem se beneficiar de comportamentos de cache de arquivo do sistema operacional.
  • Adicione a API IDStorageQueue2::GetCompressionSupport para indicar qual caminho o tempo de execução do DirectStorage seguirá ao descompactar um formato de descompactação de GPU com suporte.
  • Atualize dstorage.h e dstorageerr.h para serem cobertos pela licença MIT.
  • Adicione Microsoft.Direct3D.DirectStorage.winmd , para facilitar a geração de associações não C++ à API.

Correções de bugs

  • Adicione o campo “Reservado1” a DSTORAGE_REQUEST_OPTIONS. Isso torna o layout da estrutura na memória mais explícito, mas na verdade não altera o layout das versões anteriores.
  • Corrija DSTORAGE_REQUEST_DESTINATION_TEXTURE_REGION para texturas 3D.
  • Correção do problema de agendamento que se manifestava ao transferir dados não compactados da memória para os buffers

Melhorias de desempenho

  • Mova a cópia após a descompactação da GPU para a fila de computação para GPUs onde isso é mais rápido.

Você pode encontrar mais detalhes na postagem do blog oficial aqui .

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *