D3D11_RESOURCE_FLAGS 結構 (d3d11on12.h)
與 ID3D11On12Device::CreateWrappedResource 搭配使用,以覆寫資源屬性或堆積屬性所推斷的旗標,包括系結旗標、錯誤旗標和 CPU 存取旗標。
語法
typedef struct D3D11_RESOURCE_FLAGS {
UINT BindFlags;
UINT MiscFlags;
UINT CPUAccessFlags;
UINT StructureByteStride;
} D3D11_RESOURCE_FLAGS;
成員
BindFlags
系結旗標必須完全推斷或完全指定,才能讓圖形驅動程式將一般 D3D12 資源的範圍限定為 D3D11 可以了解的專案。
如果指定的系結旗標不受提供的資源支援,則會傳回錯誤。
將不會假設下列系結旗標 (D3D11_BIND_FLAG 列舉常數) ,而且必須指定,才能讓資源以此類方式使用:
- D3D11_BIND_VERTEX_BUFFER
- D3D11_BIND_INDEX_BUFFER
- D3D11_BIND_CONSTANT_BUFFER
- D3D11_BIND_STREAM_OUTPUT
- D3D11_BIND_DECODER
- D3D11_BIND_VIDEO_ENCODER
- D3D11_BIND_SHADER_RESOURCE,只要D3D12_RESOURCE_MISC_DENY_SHADER_RESOURCE不存在
- D3D11_BIND_RENDER_TARGET,如果存在D3D12_RESOURCE_MISC_ALLOW_RENDER_TARGET
- D3D11_BIND_DEPTH_STENCIL,如果存在D3D12_RESOURCE_MISC_ALLOW_DEPTH_STENCIL
- D3D11_BIND_UNORDERED_ACCESS,如果存在D3D12_RESOURCE_MISC_ALLOW_UNORDERED_ACCESS
MiscFlags
如果錯誤旗標為非零,則任何指定的旗標都會使用推斷的旗標,進入最終資源還原。 您可以部分指定 Misc 旗標以新增功能,但無法遮罩隱含的 Misc 旗標。
不會假設下列錯誤旗標 (D3D11_RESOURCE_MISC_FLAG 列舉常數) :
- D3D11_RESOURCE_MISC_GENERATE_MIPS (与 CLAMP) 衝突。
- D3D11_RESOURCE_MISC_TEXTURECUBE (更改默认检视行为) 。
- D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS (与某些系结旗标) 獨佔。
- D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS (与其他类型的UAV) 獨佔。
- D3D11_RESOURCE_MISC_BUFFER_STRUCTURED (与其他类型的UAV) 獨佔。
- D3D11_RESOURCE_MISC_RESOURCE_CLAMP (禁止 D3D10 QIS,與GENERATE_MIPS) 冲突。
- D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX。 可以建立 D3D11 索引鍵的 Mutex 資源、為其建立共用句柄,並透過 11on12 或 D3D11 加以開啟。
- 如果有適當的堆積錯誤旗標,D3D11_RESOURCE_MISC_SHARED、D3D11_RESOURCE_MISC_SHARED_NTHANDLE、D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE。
- D3D11_RESOURCE_MISC_GDI_COMPATIBLE,如果 D3D12 資源與 GDI 相容。
- D3D11_RESOURCE_MISC_TILED,如果 D3D12 資源是透過 CreateReservedResource 建立的。
- D3D11_RESOURCE_MISC_TILE_POOL,如果傳入 D3D12 堆積。
- D3D11_RESOURCE_MISC_RESTRICTED_CONTENT,因為 D3D12 僅支援硬體保護。
- D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER不存在於 12 中,而且無法在資源建立之後加入。
- D3D11_RESOURCE_MISC_GUARDED僅供內部建立機制設定。
CPUAccessFlags
CPUAccessFlags 不會從 D3D12 資源推斷。 這是因為所有資源都會被視為D3D11_USAGE_DEFAULT,因此 CPUAccessFlags 會 強制驗證,這會假設預設緩衝區或紋理的 對應 。 包裝的資源不支援 Map (DISCARD) 。 包裝的資源不支援 Map (NO_OVERWRITE) ,但可以改為對應基礎 D3D12 資源來實作。 在包裝的資源上發出 對應 呼叫,將會與針對該資源提交的所有 D3D11 工作同步處理,除非使用了 DO_NOT_WAIT 旗標。
StructureByteStride
當緩衝區代表結構化緩衝區時,緩衝區結構中的每個專案的大小 (位元組) 。
備註
搭配 CreateWrappedResource 使用此結構。
規格需求
需求 | 值 |
---|---|
標頭 | d3d11on12.h |