> ## 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.

# D3D12_RESOURCE_FLAGS (XBOX One 系列)

> D3D12_RESOURCE_FLAGS (XBOX One 系列主機)：識別資源的選項。適用於 XBOX 遊戲開發的 Direct3D 12 圖形 API 參考。

識別資源的選項。

## 語法

```cpp theme={null}
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,
    D3D12XBOX_RESOURCE_FLAG_PREFER_INDEX_BUFFER = 0x10000,
    D3D12XBOX_RESOURCE_FLAG_ALLOW_INDIRECT_BUFFER = 0x20000,
    D3D12XBOX_RESOURCE_FLAG_PREFER_INDIRECT_BUFFER = D3D12XBOX_RESOURCE_FLAG_ALLOW_INDIRECT_BUFFER,
    D3D12XBOX_RESOURCE_FLAG_PREFER_PREDICATION_BUFFER = 0x40000,
    D3D12XBOX_RESOURCE_FLAG_PREFER_STREAM_OUTPUT = 0x80000,
    D3D12XBOX_RESOURCE_FLAG_DENY_COMPRESSION_DATA = 0x300000,
    D3D12XBOX_RESOURCE_FLAG_DENY_COLOR_COMPRESSION_DATA = 0x100000,
    D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_DATA = 0x100000,
    D3D12XBOX_RESOURCE_FLAG_DENY_STENCIL_COMPRESSION_DATA = 0x200000,
    D3D12XBOX_RESOURCE_FLAG_ALLOW_DCC = 0x400000,
    D3D12XBOX_RESOURCE_FLAG_FORCE_TEXTURE_COMPATIBILITY       = 0x00800000,
    D3D12XBOX_RESOURCE_FLAG_FORCE_DCC_TEXTURE_COMPATIBILITY   = 0x00000100,
    D3D12XBOX_RESOURCE_FLAG_FORCE_HTILE_TEXTURE_COMPATIBILITY = 0x00000100,
    D3D12XBOX_RESOURCE_FLAG_FORCE_FMASK_TEXTURE_COMPATIBILITY = 0x00000200,
    D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_EXPCLEAR = 0x1000000,
    D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_PLANES = 0x2000000,
    D3D12XBOX_RESOURCE_FLAG_DENY_STENCIL_COMPRESSION_SMEM = 0x4000000,
    D3D12XBOX_RESOURCE_FLAG_ALLOW_AUTOMATIC_GAMEDVR_TONE_MAP = 0x40000000,
    D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_STENCIL_HTILE = 0x80000000,
    D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_EXPCLEAR = D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_EXPCLEAR,
} D3D12_RESOURCE_FLAGS
```

## 常數

| 常數 | 描述 |
| - | - |
| D3D12\_RESOURCE\_FLAG\_NONE | 未指定任何選項。 |
| D3D12\_RESOURCE\_FLAG\_ALLOW\_RENDER\_TARGET | 允許為資源建立轉譯目標檢視，並讓資源能轉換為 **D3D12\_RESOURCE\_STATE\_RENDER\_TARGET** 狀態。為了在一般轉譯期間降低有效頻寬，某些介面卡架構會為具有此旗標的紋理配置額外記憶體。<br /><br /> 此特性對於從未轉譯的紋理可能沒有益處，也不適用於以 BC 格式壓縮的紋理。<br /><br /> 若永遠不會進行轉譯，應用程式不應設定此旗標。下列限制與互動適用：<ul><li>紋理格式必須在目前的功能層級支援轉譯目標功能；或者，當格式為無類型時，同一無類型群組中的某個格式必須在目前的功能層級支援轉譯目標功能。</li><li>當 *D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS::CrossAdapterRowMajorTextureSupported* 為 FALSE 時，此常數不可與具有 **D3D12\_TEXTURE\_LAYOUT\_ROW\_MAJOR** 的紋理一起設定；當 *D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS::StandardSwizzle64KBSupported* 為 **false** 時，也不可與具有 **D3D12\_TEXTURE\_LAYOUT\_64KB\_STANDARD\_SWIZZLE** 的紋理一起設定。</li><li>此常數不可與 4KB 對齊、**D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL** 一起使用，也不可與具有 **D3D12\_HEAP\_FLAG\_DENY\_RT\_DS\_TEXTURES** 的堆積一起使用。</li></ul> |
| D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL | 允許為資源建立深度樣板檢視，並讓資源能轉換為 **D3D12\_RESOURCE\_STATE\_DEPTH\_WRITE** 或 **D3D12\_RESOURCE\_STATE\_DEPTH\_READ** 狀態。大多數介面卡架構會為具有此旗標的紋理配置額外記憶體，以降低有效頻寬並將早期深度測試的最佳化發揮到最大。<br /><br /> 若永遠不會進行深度作業，應用程式不應設定此旗標。下列限制與互動適用：<ul><li>紋理格式必須在目前的功能層級支援深度樣板功能；或者，當格式為無類型時，同一無類型群組中的某個格式必須在目前的功能層級支援深度樣板功能。</li><li>此常數不可與 **D3D12\_RESOURCE\_DIMENSION\_BUFFER**、4KB 對齊、**D3D12\_RESOURCE\_FLAG\_ALLOW\_RENDER\_TARGET**、**D3D12\_RESOURCE\_FLAG\_ALLOW\_UNORDERED\_ACCESS**、**D3D12\_RESOURCE\_FLAG\_ALLOW\_SIMULTANEOUS\_ACCESS**、**D3D12\_TEXTURE\_LAYOUT\_64KB\_STANDARD\_SWIZZLE** 或 **D3D12\_TEXTURE\_LAYOUT\_ROW\_MAJOR** 一起使用，也不可與具有 **D3D12\_HEAP\_FLAG\_DENY\_RT\_DS\_TEXTURES** 或 D3D12\_HEAP\_FLAG\_ALLOW\_DISPLAY 的堆積一起使用。</li><li> 使用此常數將無法使用 WriteToSubresource 與 ReadFromSubresource。</li><li>使用此常數將無法使用 GPU 複製子區域。CopyTextureRegion 必須將整個子資源複製到具有此旗標的資源，或從中複製。</li></ul> |
| D3D12\_RESOURCE\_FLAG\_ALLOW\_UNORDERED\_ACCESS | 允許為資源建立無序存取檢視，並讓資源能轉換為 **D3D12\_RESOURCE\_STATE\_UNORDERED\_ACCESS** 狀態。為了提供此功能，某些介面卡架構必須改用效率較低的紋理配置。若紋理很少用於無序存取，請考慮使用兩個紋理並在兩者之間複製；其中一個紋理具有此旗標，另一個則沒有。<br /><br /> 若永遠不會進行無序存取作業，應用程式不應設定此旗標。下列限制與互動適用：<ul><li>紋理格式必須在目前的功能層級支援無序存取功能；或者，當格式為無類型時，同一無類型群組中的某個格式必須在目前的功能層級支援無序存取功能。</li><li>當 *D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS::CrossAdapterRowMajorTextureSupported* 為 **false** 時，此常數不可與具有 **D3D12\_TEXTURE\_LAYOUT\_ROW\_MAJOR** 的紋理一起設定；當 *D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS::StandardSwizzle64KBSupported* 為 **false** 時，不可與具有 **D3D12\_TEXTURE\_LAYOUT\_64KB\_STANDARD\_SWIZZLE** 的紋理一起設定；當功能層級低於 11.0 時也不可設定。</li><li>此常數不可與 MSAA 紋理一起使用。</li></ul> |
| D3D12\_RESOURCE\_FLAG\_DENY\_SHADER\_RESOURCE | 不允許為資源建立著色器資源檢視，並停用資源轉換為 **D3D12\_RESOURCE\_STATE\_NON\_PIXEL\_SHADER\_RESOURCE** 或 **D3D12\_RESOURCE\_STATE\_PIXEL\_SHADER\_RESOURCE** 狀態。<br /><br /> 當無法使用著色器資源檢視時，某些介面卡架構的深度樣板紋理頻寬會增加。若紋理很少用於著色器資源，請考慮使用兩個紋理並在兩者之間複製；其中一個紋理設定此旗標，另一個則不設定。<br /><br /> 當深度樣板紋理永遠不會從著色器資源檢視使用時，應用程式應設定此旗標。<br /><br /> 此常數必須與 **D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL** 一起使用。 |
| D3D12\_RESOURCE\_FLAG\_ALLOW\_CROSS\_ADAPTER | 允許資源用於跨介面卡資料，以及 **ALLOW\_SIMULTANEOUS\_ACCESS** 所啟用的功能。跨介面卡資源通常無法使用在使用期間降低有效紋理頻寬的技術，而某些介面卡架構可能需要不同的快取行為。<br /><br /> 若資源資料永遠不會與其他介面卡一起使用，應用程式不應設定此旗標。下列限制與互動適用：<ul><li>此常數必須與具有 **D3D12\_HEAP\_FLAG\_SHARED\_CROSS\_ADAPTER** 的堆積一起使用。</li><li>此常數不可與具有 **D3D12\_HEAP\_FLAG\_ALLOW\_DISPLAY** 的堆積一起使用。</li></ul> |
| D3D12\_RESOURCE\_FLAG\_ALLOW\_SIMULTANEOUS\_ACCESS | 允許多個不同的佇列、裝置或處理程序同時存取資源。例如，此功能可讓資源用於在同時執行的多個命令清單中所執行的 ResourceBarrier 轉換。<br /><br />同時存取允許多個讀取者與一個寫入者，只要寫入者不會同時修改其他讀取者正在存取的紋素即可。某些介面卡架構無法在使用期間運用降低有效紋理頻寬的技術。不過，若在頻繁且不重疊地寫入紋理時不需要多個讀取者，應用程式不應設定此旗標。<br /><br /> 使用此旗標可能會影響資源柵欄執行等候的能力，並會使資源無法使用任何壓縮。<br /><br />下列限制與互動適用：<ul><li>此常數不可與 **D3D12\_RESOURCE\_DIMENSION\_BUFFER** 一起使用，但緩衝區一律具有此旗標所代表的屬性。</li><li>此常數不可與 MSAA 紋理一起使用。</li></ul> |
| D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_INDEX\_BUFFER | 將資源標示為偏好作為索引緩衝區。 |
| D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_INDIRECT\_BUFFER | 允許資源作為間接緩衝區。建立間接緩衝區時需要此旗標。 |
| D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_INDIRECT\_BUFFER | 將資源標示為偏好作為間接緩衝區。 |
| D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_PREDICATION\_BUFFER | 將資源標示為偏好作為述詞緩衝區。 |
| D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_STREAM\_OUTPUT | 將資源標示為偏好用於串流輸出 (SO)。 |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_COMPRESSION\_DATA | 拒絕資源使用所有類型的壓縮中繼資料。此旗標會防止為轉譯目標資源建立 CMask 與 FMask 中繼資料表面。此旗標不會防止為深度樣板資源建立 HTile 中繼資料表面。 |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_COLOR\_COMPRESSION\_DATA | 拒絕資源使用色彩壓縮資料。此旗標會防止為轉譯目標資源建立 CMask 與 FMask 中繼資料表面。 |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_DATA | 拒絕資源使用深度壓縮中繼資料。此旗標不會防止為深度樣板資源建立 HTile 中繼資料表面。若指定了 **D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_DATA** 或 **D3D12XBOX\_RESOURCE\_FLAG\_DENY\_STENCIL\_COMPRESSION\_DATA** 任一資源建立旗標，就會停用計算清除。若兩者皆指定，則會停用快速清除。 |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_STENCIL\_COMPRESSION\_DATA | 拒絕資源使用樣板壓縮中繼資料。此旗標不會防止為深度樣板資源建立 HTile 中繼資料表面。若指定了 **D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_DATA** 或 **D3D12XBOX\_RESOURCE\_FLAG\_DENY\_STENCIL\_COMPRESSION\_DATA** 任一資源建立旗標，就會停用計算清除。若兩者皆指定，則會停用快速清除。 |
| D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_DCC | 在支援的色彩轉譯目標資源上啟用差異色彩壓縮 (DCC)。在 XBOX Series X\|S 中，這也可以套用至交換資源。適用於 XBOX Series X\|S 與 XBOX One X，但不支援 XBOX One 或 XBOX One S。 |
| D3D12XBOX\_RESOURCE\_FLAG\_FORCE\_TEXTURE\_COMPATIBILITY | 啟用相容壓縮資源的紋理取樣，包括支援的色彩轉譯目標資源與深度目標資源。適用於 XBOX Series X\|S 與 XBOX One X，但不支援 XBOX One 或 XBOX One S。 |
| D3D12XBOX\_RESOURCE\_FLAG\_FORCE\_DCC\_TEXTURE\_COMPATIBILITY | 待定 |
| D3D12XBOX\_RESOURCE\_FLAG\_FORCE\_HTILE\_TEXTURE\_COMPATIBILITY | 待定 |
| D3D12XBOX\_RESOURCE\_FLAG\_FORCE\_FMASK\_TEXTURE\_COMPATIBILITY | 待定 |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_EXPCLEAR | **會被其他資源設定別名的深度緩衝區應使用此旗標！** 拒絕 HTile 對 zMask 使用「已展開並清除」值。此旗標允許在 HTile 中使用「15 個 Z 平面」zMask 值，在某些情況下可能稍微節省頻寬，但代價是在許多圖格未被寫入但已展開的情況下，解壓縮時間會變長。此旗標有助於深度樣板資源別名的情境：先前的記憶體內容可能包含「已展開並清除」的位元模式，而 [ClearDepthStencilView](/zh-TW/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_cleardepthstencilview_public) 會略過清除具有該值的圖格。若要解決此問題，請呼叫 [DiscardResource](/zh-TW/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_discardresource_public) 以重新初始化中繼資料，或指定此旗標。 |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_PLANES | 拒絕 HTile 在 zMask 中儲存 Z 平面資訊。圖格會在 DB (非清除) 寫入時展開。對於清除後未被觸及且不處於 expclear 狀態的圖格，仍必須使用解壓縮來寫出。 |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_STENCIL\_COMPRESSION\_SMEM | 拒絕 HTile 在 sMem 中儲存樣板資訊。圖格會在 DB (非清除) 寫入時展開。 |
| D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_AUTOMATIC\_GAMEDVR\_TONE\_MAP | 為 HDR 遊戲的 HDR 交換緩衝區啟用自動 SDR 色調對應。SDR 影像用於錄製 SDR Game DVR 短片或串流至 SDR 顯示器。這會產生額外的 GPU 與記憶體成本，因為圖形驅動程式會自動為額外的交換鏈配置緩衝區，並在 present 呼叫之前插入計算著色器。此旗標不適用於 XBOX Series X\|S 主機。在 XBOX Series X\|S 中，自動 SDR 色調對應是在顯示硬體中完成，不會產生 GPU 與記憶體成本。對於 XBOX Series X\|S，只要不設定此旗標即可啟用硬體色調對應器。XBOX One 不支援 HDR，因此此旗標僅適用於 XBOX One S 與 XBOX One X。 |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_STENCIL\_HTILE | 防止為深度樣板資源建立 HTile 中繼資料表面。由於相關資料位於 HTile 中，此旗標實際上隱含所有 D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH 與 D3D12XBOX\_RESOURCE\_FLAG\_DENY\_STENCIL 旗標。 |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_EXPCLEAR | D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_EXPCLEAR 的別名。 |

## 備註

[D3D12\_RESOURCE\_DESC](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/ns-d3d12-d3d12_resource_desc) 結構會使用此列舉。

**D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_INDIRECT\_BUFFER** 與 **D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_INDIRECT\_BUFFER** 都需要將資源記憶體配置為 GPU 可執行。若要將資源記憶體配置為 GPU 可執行，請搭配 **PAGE\_GPU\_EXECUTE** 使用 [XMemVirtualAlloc](https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/reference/system/xmem/functions/xmemvirtualalloc)，或搭配 **XALLOC\_MEMTYPE\_GRAPHICS\_COMMAND\_BUFFER\_WRITECOMBINE** 或 **XALLOC\_MEMTYPE\_GRAPHICS\_COMMAND\_BUFFER\_CACHEABLE** 使用 [XMemAlloc](https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/reference/system/xmem/functions/xmemalloc)。

適用於 XBOX One 的 Microsoft Game Development Kit (GDK) 定義了此列舉中的擴充成員，從 **D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_INDEX\_BUFFER** 開始。如需此列舉的非 XBOX 專用版本，請參閱 [D3D12\_RESOURCE\_FLAGS](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/ne-d3d12-d3d12_resource_flags)。

## 需求

**標頭：** d3d12\_x.h

**支援的平台：** XBOX One 系列

## 另請參閱

[d3d12\_x](/zh-TW/reference/graphics/d3d12_x/d3d12_x_members)


## Related topics

- [NDA 主題目錄 - Microsoft Learn 線上連結](/zh-TW/nda/nda-topic-directory.md)
- [D3D12_PROTECTED_RESOURCE_SESSION_FLAGS](/zh-TW/reference/graphics/d3d12/enums/d3d12_protected_resource_session_flags_public.md)
- [D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS](/zh-TW/reference/graphics/d3d12/enums/d3d12_protected_resource_session_support_flags_public.md)
- [D3D12_RESOURCE_DESC1](/zh-TW/reference/graphics/d3d12/structs/d3d12_resource_desc1_public.md)
- [D3D12_CLEAR_FLAGS](/zh-TW/reference/graphics/d3d12/enums/d3d12_clear_flags_public.md)
