D3D12_RESOURCE_FLAGS列舉 (d3d12.h)

定義常數,指定使用資源的選項。

Syntax

typedef enum D3D12_RESOURCE_FLAGS {
  D3D12_RESOURCE_FLAG_NONE = 0,
  D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
  D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
  D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
  D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
  D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
  D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
  D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
  D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
  D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
} ;

常數

 
D3D12_RESOURCE_FLAG_NONE
值: 0
未指定任何選項。
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET
值: 0x1
允許為資源建立轉譯目標檢視;也可讓資源轉換為 D3D12_RESOURCE_STATE_RENDER_TARGET的狀態。 某些配接器架構會針對具有此旗標的紋理配置額外的記憶體,以降低一般轉譯期間的有效頻寬。 這種特性可能不適用於從未轉譯成的紋理,也不適用於以 BC 格式壓縮的紋理。 您的應用程式應該避免在轉譯永遠不會發生時設定此旗標。

適用下列限制和互動:
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL
值: 0x2
允許為資源建立深度樣板檢視,以及讓資源轉換為 D3D12_RESOURCE_STATE_DEPTH_WRITE 和/或 D3D12_RESOURCE_STATE_DEPTH_READ的狀態。 大部分的配接器架構都會為此旗標的紋理配置額外的記憶體,以減少有效的頻寬,並將早期深度測試的優化最大化。 您的應用程式應該避免在永遠不會發生深度作業時設定此旗標。

適用下列限制和互動:

  • 紋理格式必須支援目前功能層級的深度樣板功能。 或者,當格式是無類型格式時,相同無類型群組中的格式必須支援目前功能層級的深度樣板功能。

  • 無法與D3D12_RESOURCE_DIMENSION_BUFFER搭配使用, 4KB 對齊、D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGETD3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESSD3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESSD3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLED3D12_TEXTURE_LAYOUT_ROW_MAJOR,也不搭配具有D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES的堆積使用D3D12_HEAP_FLAG_ALLOW_DISPLAY

  • 排除 WriteToSubresourceReadFromSubresource的使用方式。

  • 排除 GPU 複製子系。 CopyTextureRegion 必須使用此旗標,將整個子資源複製到或從資源複製。

D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS
值: 0x4
允許為資源建立未排序的存取檢視,以及讓資源轉換為 D3D12_RESOURCE_STATE_UNORDERED_ACCESS的狀態。 某些配接器架構必須依賴較不有效率的紋理配置,才能提供這項功能。 如果紋理很少用於未排序的存取,則可能值得有兩個紋理四周,並在兩者之間複製。 其中一個紋理會有這個旗標,而另一個則不會。 當永遠不會發生未排序的存取作業時,您的應用程式應該避免設定此旗標。

適用下列限制和互動:
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE
值: 0x8
不允許為資源建立著色器資源檢視,以及停用資源轉換為 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCED3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE的狀態。 某些配接器架構會在遮蔽著色器資源檢視時,體驗深度樣板紋理的頻寬增加。 如果紋理很少用於著色器資源,則可能值得有兩個紋理四周,並在兩者之間複製。 其中一個紋理會有這個旗標,而另一個則不會。 當從著色器資源檢視使用深度樣板紋理時,您的應用程式應該設定此旗標。

適用下列限制和互動:

  • 必須與 D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL搭配使用。

D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER
值: 0x10
允許資源用於交叉配接器資料,以及由 D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS所啟用的功能。 交叉配接器資源通常排除在使用期間降低有效紋理頻寬的技術,而某些介面卡架構可能需要不同的快取行為。 當資源資料永遠不會與另一個配接器搭配使用時,您的應用程式應該避免設定此旗標。

適用下列限制和互動:
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS
值: 0x20
例如,允許多個不同的佇列、裝置或進程同時存取資源 (,允許資源與在多個命令清單中執行的 ResourceBarrier 轉換一起使用) 。

同時存取允許多個讀取器和一個寫入器,只要寫入器不會同時修改其他讀取器正在存取的材質。 某些配接器架構無法利用技術來降低使用期間的有效紋理頻寬。

不過,如果您的應用程式應該避免在經常、非重迭的紋理寫入期間不需要多個讀取器時設定此旗標。 使用此旗標可能會危害資源柵欄以執行等候,並防止任何壓縮與資源搭配使用。

適用下列限制和互動:

  • 無法與 D3D12_RESOURCE_DIMENSION_BUFFER搭配使用;但緩衝區一律具有此旗標所代表的屬性。

  • 無法搭配 MSAA 紋理使用。

  • 無法與 D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL搭配使用。

D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY
值: 0x40
此資源只能做為解碼參考框架的規格。 它可以由影片解碼作業寫入或唯讀。

D3D12_VIDEO_DECODE_TIER_1D3D12_VIDEO_DECODE_TIER_2可能會在 D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT 結構組態旗標中報告D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED。 如果發生這種情況,您的應用程式必須使用 D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY 資源旗標來配置參考畫面。

D3D12_VIDEO_DECODE_TIER_3 不得設定 [D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED]
(../d3d12video/ne-d3d12video-d3d12_video_decode_configuration_flags) 組態旗標,而且不需使用此資源旗標。
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY
值: 0x80
此資源只能做為編碼參考框架的規格。 它可以由視訊編碼作業寫入或唯讀。
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE
值: 0x100
保留供未來使用。 請勿使用。

需要 DirectX 12 靈活度 SDK 1.7 或更新版本。 表示緩衝區要當做光線追蹤加速結構使用。

備註

此列舉是由D3D12_RESOURCE_DESCFlags成員使用。

需求

   
標頭 d3d12.h

另請參閱