Skip to main content

用於原生資源準備的 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 參考。

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

若要在執行階段建立您使用 XG 程式庫預先處理的離線/放置資源,請呼叫 ID3D12Device 的下列方法: D3D12XBOX_COMPONENT_PLACED_ADDRESSES 是與 ID3D12Device::CreateComponentPlacedResourceX 方法搭配使用的結構。此方法類似於 ID3D12Device::CreatePlacedResourceX,但允許遊戲指定最多四個個別的虛擬位址,代表資源的各個部分。 在某些情況下,可以使用 ID3D12Device::CreatePlacedShaderResourceViewX 與 ID3D12Device::CreatePlacedUnorderedAccessViewX API 略過資源建立步驟,直接從圖形虛擬位址以及資源格式與維度建立資源檢視描述元。

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

XBOX One GPU 上有四個硬體直接記憶體存取 (DMA) 引擎,其中三個可供 Game OS 遊戲使用。您可以使用標準複製命令清單與佇列 (D3D12_COMMAND_LIST_TYPE_COPY) 或 XBOX One 延伸 ID3D12XboxDmaCommandList 介面來存取這三個 DMA 引擎。這些 DMA 引擎可用於快速移動資料,以及壓縮與解壓縮資料。DMA 引擎可以複製位於圖形記憶體中的任何資料,包括圖形資源,甚至是僅供 CPU 使用的資料。
Last modified on October 6, 2026