Pular para o conteúdo principal
A partir do GDK de março de 2024, há várias opções adicionais para o parâmetro de modo de swizzle na API DirectStorage do XBOX. Essas opções foram projetadas para proporcionar economia adicional no tamanho compactado quando usadas em conjunto com a compactação baseada em BCPACK ou ZLib. Cada um desses formatos de embaralhamento descreve uma reorganização dos dados quando armazenados em disco que pode gerar melhorias no tamanho compactado quando usada com o formato BCn pretendido. A opção de modo de swizzle no DirectStorage reorganiza os dados à medida que os grava na memória para prepará-los para uma correção final. Um sombreador de computação realiza uma correção final dos dados para restaurar a ordem correta dos bytes. O código de referência fornecido abaixo demonstra como preparar o formato em disco dos dados. Um sombreador de exemplo que pode realizar a “correção” final dos dados pode ser disponibilizado mediante solicitação. Entre em contato com seu representante da Microsoft se quiser uma cópia desses sombreadores.
Embora a funcionalidade descrita abaixo funcione com quaisquer dados que atendam aos requisitos de alinhamento, ela se destina a conteúdo com swizzle offline e é mais eficaz quando combinada com ele.

Conteúdo

DSTORAGE_SWIZZLE_MODE_4K_4K_8K

Este modo destina-se ao uso com conteúdo codificado em BC1. O tamanho do conteúdo não compactado deve ser um múltiplo de 16 KB. Este modo pressupõe que os dados de origem estejam agrupados por fluxo (ou seja, pontos de extremidade e índices), o que melhora a compactabilidade. Os dados de origem também devem ser compactados usando Zlib ou BCPack. Quando DSTORAGE_SWIZZLE_MODE_4K_4K_8K é fornecido para a opção DSTORAGE_REQUEST_OPTIONS::SwizzleMode, o DirectStorage reorganiza o conteúdo não compactado na memória em grupos intercalados de 16 KB, extraídos dos dados correspondentes no conteúdo agrupado. Cada grupo de 16 KB contém todos os dados do conteúdo BC1 original, embora ainda agrupados. O conteúdo original pode ser totalmente reconstruído no local a partir do grupo de 16 KB com um sombreador de computação. Diagrama das transformações de DSTORAGE_SWIZZLE_MODE_4K_4K_8K

DSTORAGE_SWIZZLE_MODE_4K_12K_4K_4K_8K

Este modo destina-se ao uso com conteúdo codificado em BC3. O tamanho do conteúdo não compactado deve ser um múltiplo de 32 KB. Este modo pressupõe que os dados de origem estejam agrupados por fluxo (ou seja, pontos de extremidade e índices), o que melhora a compactabilidade. Os dados de origem também devem ser compactados usando Zlib ou BCPack. Quando DSTORAGE_SWIZZLE_MODE_4K_12K_4K_4K_8K é fornecido para a opção DSTORAGE_REQUEST_OPTIONS::SwizzleMode, o DirectStorage reorganiza o conteúdo não compactado na memória em grupos intercalados de 32 KB, extraídos dos dados correspondentes no conteúdo agrupado. Cada grupo de 32 KB contém todos os dados do conteúdo BC3 original, embora ainda agrupados. O conteúdo original pode ser totalmente reconstruído no local a partir do grupo de 32 KB com um sombreador de computação. Diagrama das transformações de DSTORAGE_SWIZZLE_MODE_4K_12K_4K_4K_8K

DSTORAGE_SWIZZLE_MODE_4K_4K_24K

Este modo destina-se ao uso com conteúdo codificado em BC4. O tamanho do conteúdo não compactado deve ser um múltiplo de 32 KB. Este modo pressupõe que os dados de origem estejam agrupados por fluxo (ou seja, pontos de extremidade e índices), o que melhora a compactabilidade. Os dados de origem também devem ser compactados usando Zlib ou BCPack. Quando DSTORAGE_SWIZZLE_MODE_4K_4K_24K é fornecido para a opção DSTORAGE_REQUEST_OPTIONS::SwizzleMode, o DirectStorage reorganiza o conteúdo não compactado na memória em grupos intercalados de 32 KB, extraídos dos dados correspondentes no conteúdo agrupado. Cada grupo de 32 KB contém todos os dados do conteúdo BC4 original, embora ainda agrupados. O conteúdo original pode ser totalmente reconstruído no local a partir do grupo de 32 KB com um sombreador de computação. Diagrama das transformações de DSTORAGE_SWIZZLE_MODE_4K_4K_24K

DSTORAGE_SWIZZLE_MODE_4K_12K_4K_12K

Este modo destina-se ao uso com conteúdo codificado em BC5. O tamanho do conteúdo não compactado deve ser um múltiplo de 32 KB. Este modo pressupõe que os dados de origem estejam agrupados por fluxo (ou seja, pontos de extremidade e índices), o que melhora a compactabilidade. Os dados de origem também devem ser compactados usando Zlib ou BCPack. Quando DSTORAGE_SWIZZLE_MODE_4K_12K_4K_12K é fornecido para a opção DSTORAGE_REQUEST_OPTIONS::SwizzleMode, o DirectStorage reorganiza o conteúdo não compactado na memória em grupos intercalados de 32 KB, extraídos dos dados correspondentes no conteúdo agrupado. Cada grupo de 32 KB contém todos os dados do conteúdo BC5 original, embora ainda agrupados. O conteúdo original pode ser totalmente reconstruído no local a partir do grupo de 32 KB com um sombreador de computação. Diagrama das transformações de DSTORAGE_SWIZZLE_MODE_4K_12K_4K_12K

Confira também

DirectStorage Uso e detalhes internos do DirectStorage Analisando o desempenho do DirectStorage Lista de exemplos do GDK
Última modificação em 6 de outubro de 2026