> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XBOX One 的原生資源管理

> XBOX One 的原生資源管理

## 用於原生資源準備的 XBOX Graphics (XG)

XBOX Graphics 程式庫 (XG) 是一個輔助圖形程式庫，用於準備資源，以及在 Direct3D 執行階段介面範圍之外執行的其他圖形相關工作。XG 類似於 XBOX 360 XDK 中的 XGraphics。

XG 程式庫提供數個 API，可讓您與 XBOX One 硬體原生資源配置及資源記憶體互動。XG 包含可執行下列作業的 API。

* 判斷原生紋理資源記憶體的大小與配置，包括子資源 (MIP 對應與陣列/體積切片)
* 將紋素從線性排序索引並複製為交錯 (swizzled) 排序，反之亦然
* 為資源配置建立硬體原生紋理描述元，並從硬體紋理描述元建立資源配置
* 計算用於轉譯目標表面記憶庫輪替的位址交錯位元
* 針對 XBOX One X GPU 中的差異色彩壓縮 (DCC) 硬體功能，壓縮與解壓縮表面資料

XG 程式庫以兩種形式提供：可與您的遊戲連結的執行階段版本，以及可在任何 Windows 系統 (包括桌面與伺服器平台) 上執行、供離線使用的 64 位元 PC 組建。XG 的離線組建可整合到內容工具或組建系統中。

請使用 xg\_x.dll 與 xg\_x.lib。

如需詳細資訊，請參閱 [XG 參考](/zh-TW/reference/graphics/xg__NR/xg_members)。

## 緩衝區與紋理在記憶體中的資源放置

若要在執行階段建立您使用 [XG 程式庫](/zh-TW/reference/graphics/xg__NR/xg_members)預先處理的離線/放置資源，請呼叫 **ID3D12Device** 的下列方法：

* [ID3D12Device::CreatePlacedResourceX](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_createplacedresourcex)
* [ID3D12Device::CreateComponentPlacedResourceX](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_createcomponentplacedresourcex)

[D3D12XBOX\_COMPONENT\_PLACED\_ADDRESSES](/zh-TW/reference/graphics/d3d12_x/structs/d3d12xbox_component_placed_addresses) 是與 [ID3D12Device::CreateComponentPlacedResourceX](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_createcomponentplacedresourcex) 方法搭配使用的結構。此方法類似於 [ID3D12Device::CreatePlacedResourceX](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_createplacedresourcex)，但允許遊戲指定最多四個個別的虛擬位址，代表資源的各個部分。

在某些情況下，可以使用 [ID3D12Device::CreatePlacedShaderResourceViewX](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_createplacedshaderresourceviewx) 與 [ID3D12Device::CreatePlacedUnorderedAccessViewX](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_createplacedunorderedaccessviewx) API 略過資源建立步驟，直接從圖形虛擬位址以及資源格式與維度建立資源檢視描述元。

<a id="ID4EPAAC" />

## 使用直接記憶體存取 (DMA) 引擎進行快速壓縮/解壓縮

XBOX One GPU 上有四個硬體直接記憶體存取 (DMA) 引擎，其中三個可供 Game OS 遊戲使用。您可以使用標準複製命令清單與佇列 (D3D12\_COMMAND\_LIST\_TYPE\_COPY) 或 XBOX One 延伸 [ID3D12XboxDmaCommandList](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12xboxdmacommandlist/id3d12xboxdmacommandlist) 介面來存取這三個 DMA 引擎。這些 DMA 引擎可用於快速移動資料，以及壓縮與解壓縮資料。DMA 引擎可以複製位於圖形記憶體中的任何資料，包括圖形資源，甚至是僅供 CPU 使用的資料。


## Related topics

- [NDA 主題目錄 - Microsoft Learn 線上連結](/zh-TW/nda/nda-topic-directory.md)
- [存取 GDK 資源與下載](/zh-TW/home/onboarding-access/access-resources.md)
- [在主机 GDK 中使用 Clang/LLVM](/zh-CN/tools/tools-console/visualstudio/vs-clang.md)
- [仅通过向后兼容支持的跨世代游戏](/zh-CN/build/console-features/cross-gen/cross-gen-backcompat-only.md)
- [跨世代游戏](/zh-CN/build/console-features/cross-gen/cross-gen-overview.md)
