Skip to main content
À partir du GDK de mars 2024, plusieurs options supplémentaires sont disponibles pour le paramètre de mode de swizzle dans l’API DirectStorage XBOX. Ces options sont conçues pour réduire davantage la taille compressée lorsqu’elles sont utilisées conjointement avec une compression basée sur BCPACK ou ZLib. Chacun de ces formats de shuffle décrit un réarrangement des données lors de leur stockage sur disque, qui peut améliorer la taille compressée lorsqu’il est utilisé avec le format BCn prévu. L’option de mode de swizzle de DirectStorage réarrange les données à mesure qu’elle les écrit en mémoire afin de les préparer à une correction finale. Un compute shader effectue une correction finale des données pour restaurer l’ordre correct des octets. Le code de référence fourni ci-dessous montre comment préparer le format sur disque des données. Un exemple de shader capable d’effectuer la « correction » finale des données peut être mis à disposition sur demande. Contactez votre représentant Microsoft si vous souhaitez obtenir une copie de ces shaders.
Bien que la fonctionnalité décrite ci-dessous fonctionne avec toutes les données qui respectent les exigences d’alignement, elle est destinée au contenu swizzlé hors ligne et s’avère plus efficace lorsqu’elle est associée à celui-ci.

Contenu

DSTORAGE_SWIZZLE_MODE_4K_4K_8K

Ce mode est destiné au contenu encodé en BC1. La taille du contenu non compressé doit être un multiple de 16 Ko. Ce mode suppose que les données sources sont regroupées par flux (c’est-à-dire points de terminaison et index), ce qui améliore la compressibilité. Les données sources doivent également être compressées avec Zlib ou BCPack. Lorsque DSTORAGE_SWIZZLE_MODE_4K_4K_8K est fourni pour l’option DSTORAGE_REQUEST_OPTIONS::SwizzleMode, DirectStorage réarrange le contenu non compressé en mémoire en groupes entrelacés de 16 Ko, à partir des données correspondantes du contenu regroupé. Chaque groupe de 16 Ko contient toutes les données du contenu BC1 d’origine, toujours regroupées. Le contenu d’origine peut être entièrement reconstruit sur place à partir du groupe de 16 Ko à l’aide d’un compute shader. Diagramme des transformations DSTORAGE_SWIZZLE_MODE_4K_4K_8K

DSTORAGE_SWIZZLE_MODE_4K_12K_4K_4K_8K

Ce mode est destiné au contenu encodé en BC3. La taille du contenu non compressé doit être un multiple de 32 Ko. Ce mode suppose que les données sources sont regroupées par flux (c’est-à-dire points de terminaison et index), ce qui améliore la compressibilité. Les données sources doivent également être compressées avec Zlib ou BCPack. Lorsque DSTORAGE_SWIZZLE_MODE_4K_12K_4K_4K_8K est fourni pour l’option DSTORAGE_REQUEST_OPTIONS::SwizzleMode, DirectStorage réarrange le contenu non compressé en mémoire en groupes entrelacés de 32 Ko, à partir des données correspondantes du contenu regroupé. Chaque groupe de 32 Ko contient toutes les données du contenu BC3 d’origine, toujours regroupées. Le contenu d’origine peut être entièrement reconstruit sur place à partir du groupe de 32 Ko à l’aide d’un compute shader. Diagramme des transformations DSTORAGE_SWIZZLE_MODE_4K_12K_4K_4K_8K

DSTORAGE_SWIZZLE_MODE_4K_4K_24K

Ce mode est destiné au contenu encodé en BC4. La taille du contenu non compressé doit être un multiple de 32 Ko. Ce mode suppose que les données sources sont regroupées par flux (c’est-à-dire points de terminaison et index), ce qui améliore la compressibilité. Les données sources doivent également être compressées avec Zlib ou BCPack. Lorsque DSTORAGE_SWIZZLE_MODE_4K_4K_24K est fourni pour l’option DSTORAGE_REQUEST_OPTIONS::SwizzleMode, DirectStorage réarrange le contenu non compressé en mémoire en groupes entrelacés de 32 Ko, à partir des données correspondantes du contenu regroupé. Chaque groupe de 32 Ko contient toutes les données du contenu BC4 d’origine, toujours regroupées. Le contenu d’origine peut être entièrement reconstruit sur place à partir du groupe de 32 Ko à l’aide d’un compute shader. Diagramme des transformations DSTORAGE_SWIZZLE_MODE_4K_4K_24K

DSTORAGE_SWIZZLE_MODE_4K_12K_4K_12K

Ce mode est destiné au contenu encodé en BC5. La taille du contenu non compressé doit être un multiple de 32 Ko. Ce mode suppose que les données sources sont regroupées par flux (c’est-à-dire points de terminaison et index), ce qui améliore la compressibilité. Les données sources doivent également être compressées avec Zlib ou BCPack. Lorsque DSTORAGE_SWIZZLE_MODE_4K_12K_4K_12K est fourni pour l’option DSTORAGE_REQUEST_OPTIONS::SwizzleMode, DirectStorage réarrange le contenu non compressé en mémoire en groupes entrelacés de 32 Ko, à partir des données correspondantes du contenu regroupé. Chaque groupe de 32 Ko contient toutes les données du contenu BC5 d’origine, toujours regroupées. Le contenu d’origine peut être entièrement reconstruit sur place à partir du groupe de 32 Ko à l’aide d’un compute shader. Diagramme des transformations DSTORAGE_SWIZZLE_MODE_4K_12K_4K_12K

Voir aussi

DirectStorage Utilisation et détails internes de DirectStorage Analyse des performances de DirectStorage Liste des exemples du GDK
Last modified on October 6, 2026