D3D10_USAGE列舉 (d3d10.h)

識別轉譯期間的預期資源使用。 使用量會直接反映 CPU 和/或 GPU 是否可存取資源。

Syntax

typedef enum D3D10_USAGE {
  D3D10_USAGE_DEFAULT = 0,
  D3D10_USAGE_IMMUTABLE = 1,
  D3D10_USAGE_DYNAMIC = 2,
  D3D10_USAGE_STAGING = 3
} ;

常數

 
D3D10_USAGE_DEFAULT
值: 0
需要 GPU 讀取和寫入存取權的資源。 這可能是最常見的使用方式選擇。
D3D10_USAGE_IMMUTABLE
值: 1
只能由 GPU 讀取的資源。 它無法由 GPU 寫入,而且完全無法由 CPU 存取。 建立資源時必須初始化此類型的資源,因為它無法在建立之後變更。
D3D10_USAGE_DYNAMIC
值: 2
GPU 和 CPU (只能寫入) 的資源。 動態資源是每個畫面至少由CPU更新一次之資源的絕佳選擇。 若要寫入 CPU 上的動態資源,請使用 Map 方法。 您可以使用 CopyResourceCopySubresourceRegion 寫入 GPU 上的動態資源。
D3D10_USAGE_STAGING
值: 3
支援從 GPU 將) 複製到 CPU (資料傳輸的資源。

備註

應用程式會識別資源在資源描述中用來 (其使用量) 的方式。 建立資源有數個結構,包括:D3D10_TEXTURE1D_DESCD3D10_TEXTURE2D_DESC、D3D10_TEXTURE3D_DESCD3D10_BUFFER_DESCD3DX10_IMAGE_LOAD_INFO

Direct3D 9 與 Direct3D 10 之間的差異:

在 Direct3D 9 中,您會使用 D3DPOOL) ,指定資源在資源建立時間 (應建立的記憶體類型。 這是應用程式的工作,可決定哪些記憶體集區可提供最佳功能與效能組合。

在 Direct3D 10 中,應用程式不再指定集區 () 建立資源的記憶體類型。 相反地,您可以指定資源的預期使用量,並讓運行時間與驅動程式和記憶體管理員一起 () 選擇可達到最佳效能的記憶體類型。

 

資源使用限制

每個使用方式都會決定功能與效能之間的取捨。 一般而言,資源存取是使用下列 API 來完成。 使用下表來選擇最能描述 CPU 和/或 GPU 需要如何存取資源的使用量。 當然,會有效能取捨。
資源使用狀況 Default 動態 固定 預備
GPU-Read 是¹ 1, 2
GPU-Write 是¹ 1, 2
CPU-Read 1, 2
CPU-Write 1, 2
 

資源系結選項

若要將效能最大化,並非所有資源使用選項都可以當做管線的輸入或輸出資源使用。 下表會識別這些限制。
資源可以系結為 Default 動態 固定 預備
階段的輸入 是,是 是⁴
階段的輸出 是,是
 
  • 3 - 如果系結為輸入和輸出使用不同的檢視,則每個檢視都必須使用不同的 子資源
  • 4 - 只能使用單一 子資源來建立資源。 資源不能是紋理陣列。 資源不能是Mipmap鏈結。

規格需求

需求
標頭 d3d10.h

另請參閱

資源列舉