Skip to main content
從 March 2024 GDK 開始,XBOX DirectStorage API 中的 swizzle 模式參數提供了數個額外選項。這些選項的設計目的是在搭配 BCPACK 或 ZLib 型壓縮使用時,進一步節省壓縮後的大小。 這些隨機排列格式各自描述資料儲存在磁碟上時的重新排列方式,搭配預期的 BCn 格式使用時,可改善壓縮後的大小。DirectStorage 中的 swizzle 模式選項會在將資料寫出至記憶體時重新排列資料,以準備進行最終修正。計算著色器會對資料執行最終修正,以還原正確的位元組順序。 下方提供的參考程式碼示範如何準備資料在磁碟上的格式。可執行資料最終「修正」的範例著色器可應要求提供。如果您想要取得這些著色器的複本,請連絡您的 Microsoft 代表。
雖然下文所述的功能適用於任何符合對齊需求的資料,但其設計用途是搭配離線 swizzle 處理的內容,而且在此情況下最有效。

內容

DSTORAGE_SWIZZLE_MODE_4K_4K_8K

此模式適用於 BC1 編碼的內容。未壓縮內容的大小必須是 16KB 的倍數。此模式假設來源資料依串流 (亦即端點和索引) 分組,以改善可壓縮性。來源資料也必須使用 Zlib 或 BCPack 進行壓縮。當為 DSTORAGE_REQUEST_OPTIONS::SwizzleMode 選項提供 DSTORAGE_SWIZZLE_MODE_4K_4K_8K 時,DirectStorage 會從分組內容中的對應資料擷取,將記憶體中未壓縮的內容重新排列為大小 16KB 的交錯群組。每個 16KB 群組都包含原始 BC1 內容的所有資料,但仍保持分組。可以使用計算著色器從 16KB 群組就地完整重建原始內容。 DSTORAGE_SWIZZLE_MODE_4K_4K_8K 轉換的圖表

DSTORAGE_SWIZZLE_MODE_4K_12K_4K_4K_8K

此模式適用於 BC3 編碼的內容。未壓縮內容的大小必須是 32KB 的倍數。此模式假設來源資料依串流 (亦即端點和索引) 分組,以改善可壓縮性。來源資料也必須使用 Zlib 或 BCPack 進行壓縮。當為 DSTORAGE_REQUEST_OPTIONS::SwizzleMode 選項提供 DSTORAGE_SWIZZLE_MODE_4K_12K_4K_4K_8K 時,DirectStorage 會從分組內容中的對應資料擷取,將記憶體中未壓縮的內容重新排列為大小 32KB 的交錯群組。每個 32KB 群組都包含原始 BC3 內容的所有資料,但仍保持分組。可以使用計算著色器從 32KB 群組就地完整重建原始內容。 DSTORAGE_SWIZZLE_MODE_4K_12K_4K_4K_8K 轉換的圖表

DSTORAGE_SWIZZLE_MODE_4K_4K_24K

此模式適用於 BC4 編碼的內容。未壓縮內容的大小必須是 32KB 的倍數。此模式假設來源資料依串流 (亦即端點和索引) 分組,以改善可壓縮性。來源資料也必須使用 Zlib 或 BCPack 進行壓縮。當為 DSTORAGE_REQUEST_OPTIONS::SwizzleMode 選項提供 DSTORAGE_SWIZZLE_MODE_4K_4K_24K 時,DirectStorage 會從分組內容中的對應資料擷取,將記憶體中未壓縮的內容重新排列為大小 32KB 的交錯群組。每個 32KB 群組都包含原始 BC4 內容的所有資料,但仍保持分組。可以使用計算著色器從 32KB 群組就地完整重建原始內容。 DSTORAGE_SWIZZLE_MODE_4K_4K_24K 轉換的圖表

DSTORAGE_SWIZZLE_MODE_4K_12K_4K_12K

此模式適用於 BC5 編碼的內容。未壓縮內容的大小必須是 32KB 的倍數。此模式假設來源資料依串流 (亦即端點和索引) 分組,以改善可壓縮性。來源資料也必須使用 Zlib 或 BCPack 進行壓縮。當為 DSTORAGE_REQUEST_OPTIONS::SwizzleMode 選項提供 DSTORAGE_SWIZZLE_MODE_4K_12K_4K_12K 時,DirectStorage 會從分組內容中的對應資料擷取,將記憶體中未壓縮的內容重新排列為大小 32KB 的交錯群組。每個 32KB 群組都包含原始 BC5 內容的所有資料,但仍保持分組。可以使用計算著色器從 32KB 群組就地完整重建原始內容。 DSTORAGE_SWIZZLE_MODE_4K_12K_4K_12K 轉換的圖表

另請參閱

DirectStorage DirectStorage 使用方式與內部細節 分析 DirectStorage 效能 GDK 範例清單
Last modified on October 6, 2026