> ## 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 (família XBOX One)

> D3D12_RESOURCE_FLAGS (consoles da família XBOX One) — Identifica opções para recursos. Referência da API de gráficos Direct3D 12 para desenvolvimento de jogos XBOX.

Identifica opções para recursos.

## Sintaxe

```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
```

## Constantes

| Constante | Descrição |
| - | - |
| D3D12\_RESOURCE\_FLAG\_NONE | Nenhuma opção é especificada. |
| D3D12\_RESOURCE\_FLAG\_ALLOW\_RENDER\_TARGET | Permite que uma exibição de destino de renderização seja criada para o recurso e permite que o recurso faça a transição para o estado **D3D12\_RESOURCE\_STATE\_RENDER\_TARGET**. Para reduzir a largura de banda efetiva durante a renderização comum, algumas arquiteturas de adaptador alocam memória extra para texturas com esse sinalizador.<br /><br /> Essa característica pode não ser benéfica para texturas que nunca são renderizadas, nem está disponível para texturas compactadas com formatos BC. <br /><br /> Os aplicativos não devem definir esse sinalizador se a renderização nunca ocorrer. As seguintes restrições e interações se aplicam: <ul><li>O formato da textura deve oferecer suporte aos recursos de destino de renderização no nível de recurso atual ou, quando o formato não tiver tipo, um formato dentro do mesmo grupo sem tipo deve oferecer suporte aos recursos de destino de renderização no nível de recurso atual.</li><li>Essa constante não pode ser definida em conjunto com texturas que têm **D3D12\_TEXTURE\_LAYOUT\_ROW\_MAJOR** quando *D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS::CrossAdapterRowMajorTextureSupported* é FALSE, nem em conjunto com texturas que têm **D3D12\_TEXTURE\_LAYOUT\_64KB\_STANDARD\_SWIZZLE** quando *D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS::StandardSwizzle64KBSupported* é **false**.</li><li>Essa constante não pode ser usada com o alinhamento de 4 KB, com **D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL** nem com heaps que têm **D3D12\_HEAP\_FLAG\_DENY\_RT\_DS\_TEXTURES**.</li></ul> |
| D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL | Permite que uma exibição de profundidade/estêncil seja criada para o recurso e permite que o recurso faça a transição para o estado **D3D12\_RESOURCE\_STATE\_DEPTH\_WRITE** ou **D3D12\_RESOURCE\_STATE\_DEPTH\_READ**. A maioria das arquiteturas de adaptador aloca memória extra para texturas com esse sinalizador, para reduzir a largura de banda efetiva e maximizar as otimizações para o teste de profundidade antecipado. <br /><br /> Os aplicativos não devem definir esse sinalizador se as operações de profundidade nunca ocorrerem. As seguintes restrições e interações se aplicam: <ul><li>O formato da textura deve oferecer suporte aos recursos de profundidade/estêncil no nível de recurso atual ou, quando o formato não tiver tipo, um formato dentro do mesmo grupo sem tipo deve oferecer suporte aos recursos de profundidade/estêncil no nível de recurso atual.</li><li>Essa constante não pode ser usada com **D3D12\_RESOURCE\_DIMENSION\_BUFFER**, alinhamento de 4 KB, **D3D12\_RESOURCE\_FLAG\_ALLOW\_RENDER\_TARGET**, **D3D12\_RESOURCE\_FLAG\_ALLOW\_UNORDERED\_ACCESS**, **D3D12\_RESOURCE\_FLAG\_ALLOW\_SIMULTANEOUS\_ACCESS**, **D3D12\_TEXTURE\_LAYOUT\_64KB\_STANDARD\_SWIZZLE** ou **D3D12\_TEXTURE\_LAYOUT\_ROW\_MAJOR**, nem com heaps que têm **D3D12\_HEAP\_FLAG\_DENY\_RT\_DS\_TEXTURES** ou D3D12\_HEAP\_FLAG\_ALLOW\_DISPLAY.</li><li> O uso dessa constante impede o uso de WriteToSubresource e ReadFromSubresource.</li><li>O uso dessa constante impede o uso da cópia de uma sub-região pela GPU. CopyTextureRegion deve copiar um sub-recurso inteiro de ou para recursos com esse sinalizador.</li></ul> |
| D3D12\_RESOURCE\_FLAG\_ALLOW\_UNORDERED\_ACCESS | Permite que uma exibição de acesso não ordenado seja criada para o recurso e permite que o recurso faça a transição para o estado **D3D12\_RESOURCE\_STATE\_UNORDERED\_ACCESS**. Para fornecer essa funcionalidade, algumas arquiteturas de adaptador precisam recorrer a layouts de textura menos eficientes. Se uma textura raramente for usada para acesso não ordenado, considere ter duas texturas e copiar entre elas; uma textura teria esse sinalizador e a outra não. <br /><br /> Os aplicativos não devem definir esse sinalizador se as operações de acesso não ordenado nunca ocorrerem. As seguintes restrições e interações se aplicam: <ul><li>O formato da textura deve oferecer suporte aos recursos de acesso não ordenado no nível de recurso atual ou, quando o formato não tiver tipo, um formato dentro do mesmo grupo sem tipo deve oferecer suporte aos recursos de acesso não ordenado no nível de recurso atual.</li><li>Essa constante não pode ser definida em conjunto com texturas que têm **D3D12\_TEXTURE\_LAYOUT\_ROW\_MAJOR** quando *D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS::CrossAdapterRowMajorTextureSupported* é **false**, em conjunto com texturas que têm **D3D12\_TEXTURE\_LAYOUT\_64KB\_STANDARD\_SWIZZLE** quando *D3D12\_FEATURE\_DATA\_D3D12\_OPTIONS::StandardSwizzle64KBSupported* é **false**, nem quando o nível de recurso é inferior a 11.0.</li><li>Essa constante não pode ser usada com texturas MSAA.</li></ul> |
| D3D12\_RESOURCE\_FLAG\_DENY\_SHADER\_RESOURCE | Não permite a criação de uma exibição de recurso de sombreador para o recurso e desabilita a transição do recurso para o estado **D3D12\_RESOURCE\_STATE\_NON\_PIXEL\_SHADER\_RESOURCE** ou **D3D12\_RESOURCE\_STATE\_PIXEL\_SHADER\_RESOURCE**.<br /><br /> Quando as exibições de recurso de sombreador são impedidas, algumas arquiteturas de adaptador apresentam aumento de largura de banda para texturas de profundidade/estêncil. Se uma textura raramente for usada como recurso de sombreador, considere ter duas texturas e copiar entre elas; uma textura teria esse sinalizador definido e a outra não.<br /><br /> Os aplicativos devem definir esse sinalizador quando as texturas de profundidade/estêncil nunca forem usadas a partir de exibições de recurso de sombreador.<br /><br /> Essa constante deve ser usada com **D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL**. |
| D3D12\_RESOURCE\_FLAG\_ALLOW\_CROSS\_ADAPTER | Permite que o recurso seja usado para dados entre adaptadores e para os recursos habilitados por **ALLOW\_SIMULTANEOUS\_ACCESS**. Recursos entre adaptadores normalmente impedem o uso de técnicas que reduzem a largura de banda efetiva de textura durante o uso, e algumas arquiteturas de adaptador podem exigir um comportamento de cache diferente. <br /><br /> Os aplicativos não devem definir esse sinalizador se os dados do recurso nunca forem usados com outro adaptador. As seguintes restrições e interações se aplicam: <ul><li>Essa constante deve ser usada com heaps que têm **D3D12\_HEAP\_FLAG\_SHARED\_CROSS\_ADAPTER**.</li><li>Essa constante não pode ser usada com heaps que têm **D3D12\_HEAP\_FLAG\_ALLOW\_DISPLAY**.</li></ul> |
| D3D12\_RESOURCE\_FLAG\_ALLOW\_SIMULTANEOUS\_ACCESS | Permite que um recurso seja acessado simultaneamente por várias filas, dispositivos ou processos diferentes. Por exemplo, esse recurso permite que um recurso seja usado com transições de ResourceBarrier executadas em várias listas de comandos em execução ao mesmo tempo. <br /><br />O acesso simultâneo permite vários leitores e um gravador, desde que o gravador não modifique simultaneamente os texels que outros leitores estão acessando. Algumas arquiteturas de adaptador não conseguem aproveitar técnicas para reduzir a largura de banda efetiva de textura durante o uso. No entanto, os aplicativos não devem definir esse sinalizador se vários leitores não forem necessários durante gravações frequentes e sem sobreposição em texturas.<br /><br /> O uso desse sinalizador pode comprometer a capacidade das fences de recurso de realizar esperas e impede o uso de qualquer compactação com um recurso. <br /><br />As seguintes restrições e interações se aplicam: <ul><li>Essa constante não pode ser usada com **D3D12\_RESOURCE\_DIMENSION\_BUFFER**, mas os buffers sempre têm as propriedades representadas por esse sinalizador.</li><li>Essa constante não pode ser usada com texturas MSAA.</li></ul> |
| D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_INDEX\_BUFFER | Marca o recurso como tendo preferência por ser um buffer de índice. |
| D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_INDIRECT\_BUFFER | Permite que o recurso seja um buffer indireto. Esse sinalizador é necessário para criar buffers indiretos. |
| D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_INDIRECT\_BUFFER | Marca o recurso como tendo preferência por ser um buffer indireto. |
| D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_PREDICATION\_BUFFER | Marca o recurso como tendo preferência por ser um buffer de predicação. |
| D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_STREAM\_OUTPUT | Marca o recurso como tendo preferência por ser usado para saída de fluxo (SO). |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_COMPRESSION\_DATA | Nega ao recurso a capacidade de usar metadados de compactação de todos os tipos. Esse sinalizador impede a criação de superfícies de metadados CMask e FMask para recursos de destino de renderização. Esse sinalizador não impede a criação da superfície de metadados HTile para recursos de profundidade/estêncil. |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_COLOR\_COMPRESSION\_DATA | Nega ao recurso a capacidade de usar dados de compactação de cor. Esse sinalizador impede a criação de superfícies de metadados CMask e FMask para recursos de destino de renderização. |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_DATA | Nega ao recurso a capacidade de usar metadados de compactação de profundidade. Esse sinalizador não impede a criação da superfície de metadados HTile para recursos de profundidade/estêncil. Se um dos sinalizadores de criação de recurso **D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_DATA** ou **D3D12XBOX\_RESOURCE\_FLAG\_DENY\_STENCIL\_COMPRESSION\_DATA** for especificado, as limpezas por computação serão desabilitadas. Se ambos forem especificados, as limpezas rápidas serão desabilitadas. |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_STENCIL\_COMPRESSION\_DATA | Nega ao recurso a capacidade de usar metadados de compactação de estêncil. Esse sinalizador não impede a criação da superfície de metadados HTile para recursos de profundidade/estêncil. Se um dos sinalizadores de criação de recurso **D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_DATA** ou **D3D12XBOX\_RESOURCE\_FLAG\_DENY\_STENCIL\_COMPRESSION\_DATA** for especificado, as limpezas por computação serão desabilitadas. Se ambos forem especificados, as limpezas rápidas serão desabilitadas. |
| D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_DCC | Habilita a Delta Color Compression (DCC) em recursos de destino de renderização de cor compatíveis. No XBOX Series X\|S, isso também pode ser aplicado a recursos de troca. Aplicável ao XBOX Series X\|S e ao XBOX One X, mas sem suporte no XBOX One ou no XBOX One S. |
| D3D12XBOX\_RESOURCE\_FLAG\_FORCE\_TEXTURE\_COMPATIBILITY | Habilita a amostragem de textura de recursos compactados compatíveis, incluindo recursos de destino de renderização de cor e recursos de destino de profundidade compatíveis. Aplicável ao XBOX Series X\|S e ao XBOX One X, mas sem suporte no XBOX One ou no XBOX One S. |
| D3D12XBOX\_RESOURCE\_FLAG\_FORCE\_DCC\_TEXTURE\_COMPATIBILITY | A definir |
| D3D12XBOX\_RESOURCE\_FLAG\_FORCE\_HTILE\_TEXTURE\_COMPATIBILITY | A definir |
| D3D12XBOX\_RESOURCE\_FLAG\_FORCE\_FMASK\_TEXTURE\_COMPATIBILITY | A definir |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_EXPCLEAR | **Buffers de profundidade que terão aliases criados por outros recursos devem usar este sinalizador!** Nega ao HTile a capacidade de usar o valor "expandido e limpo" para a zMask. Esse sinalizador permite que o valor de zMask "15 planos Z" seja usado no HTile, potencialmente proporcionando uma pequena economia de largura de banda em alguns casos, ao custo de tempos de descompactação mais longos nos casos em que muitos blocos não são gravados, mas já estão expandidos. Esse sinalizador pode ajudar em cenários de aliasing de recursos de profundidade/estêncil em que o conteúdo anterior da memória pode conter o padrão de bits para "expandido e limpo" e [ClearDepthStencilView](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_cleardepthstencilview_public) ignoraria a limpeza dos blocos que têm esse valor. Para resolver esse problema, chame [DiscardResource](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_discardresource_public) para reinicializar os metadados ou especifique esse sinalizador. |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_PLANES | Nega ao HTile a capacidade de armazenar informações de plano z na zMask. Os blocos serão expandidos em gravações de DB (sem limpeza). A descompactação ainda deve ser usada para gravar blocos não tocados desde a limpeza quando eles não estiverem em um estado expclear. |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_STENCIL\_COMPRESSION\_SMEM | Nega ao HTile a capacidade de armazenar informações de estêncil na sMem. Os blocos serão expandidos em gravações de DB (sem limpeza). |
| D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_AUTOMATIC\_GAMEDVR\_TONE\_MAP | Habilita o mapeamento de tons SDR automático do buffer de troca HDR de um jogo HDR. A imagem SDR é usada para gravar clipes SDR do Game DVR ou para transmitir para monitores SDR. Isso gera custo adicional de GPU e memória, pois o driver gráfico aloca automaticamente buffers para uma cadeia de troca extra e injeta um sombreador de computação logo antes da chamada de apresentação. Esse sinalizador não é aplicável aos consoles XBOX Series X\|S. No XBOX Series X\|S, o mapeador de tons SDR automático é executado no hardware de vídeo, o que não gera custo de GPU nem de memória. Para o XBOX Series X\|S, o mapeador de tons de hardware é habilitado simplesmente não definindo esse sinalizador. O HDR não é compatível com o XBOX One; portanto, esse sinalizador só é aplicável ao XBOX One S e ao XBOX One X. |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_STENCIL\_HTILE | Impede a criação de uma superfície de metadados HTile com um recurso de profundidade/estêncil. Esse sinalizador implica efetivamente todos os sinalizadores D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH e D3D12XBOX\_RESOURCE\_FLAG\_DENY\_STENCIL, já que os dados relevantes residem no HTile. |
| D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_EXPCLEAR | Alias para D3D12XBOX\_RESOURCE\_FLAG\_DENY\_DEPTH\_COMPRESSION\_EXPCLEAR. |

## Comentários

A estrutura [D3D12\_RESOURCE\_DESC](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/ns-d3d12-d3d12_resource_desc) usa esta enumeração.

**D3D12XBOX\_RESOURCE\_FLAG\_ALLOW\_INDIRECT\_BUFFER** e **D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_INDIRECT\_BUFFER** exigem que a memória do recurso seja alocada como executável pela GPU. Para alocar a memória do recurso como executável pela GPU, use [XMemVirtualAlloc](https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/reference/system/xmem/functions/xmemvirtualalloc) com **PAGE\_GPU\_EXECUTE** ou use [XMemAlloc](https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/reference/system/xmem/functions/xmemalloc) com **XALLOC\_MEMTYPE\_GRAPHICS\_COMMAND\_BUFFER\_WRITECOMBINE** ou **XALLOC\_MEMTYPE\_GRAPHICS\_COMMAND\_BUFFER\_CACHEABLE**.

O Microsoft Game Development Kit (GDK) para XBOX One define os membros de extensão nesta enumeração, começando com **D3D12XBOX\_RESOURCE\_FLAG\_PREFER\_INDEX\_BUFFER**. Para a versão desta enumeração não específica do XBOX, consulte [D3D12\_RESOURCE\_FLAGS](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/ne-d3d12-d3d12_resource_flags).

## Requisitos

**Cabeçalho:** d3d12\_x.h

**Plataformas compatíveis:** família XBOX One

## Confira também

[d3d12\_x](/pt-BR/reference/graphics/d3d12_x/d3d12_x_members)


## Related topics

- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [D3D12_PROTECTED_RESOURCE_SESSION_FLAGS](/es/reference/graphics/d3d12/enums/d3d12_protected_resource_session_flags_public.md)
- [D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS](/es/reference/graphics/d3d12/enums/d3d12_protected_resource_session_support_flags_public.md)
- [D3D12_RESOURCE_DESC1](/reference/graphics/d3d12/structs/d3d12_resource_desc1_public.md)
