D3D10_USAGE enumeração (d3d10.h)

Identifica o uso esperado de recursos durante a renderização. O uso reflete diretamente se um recurso é acessível pela CPU e/ou pela GPU.

Syntax

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

Constantes

 
D3D10_USAGE_DEFAULT
Valor: 0
Um recurso que requer acesso de leitura e gravação pela GPU. É provável que essa seja a opção de uso mais comum.
D3D10_USAGE_IMMUTABLE
Valor: 1
Um recurso que só pode ser lido pela GPU. Ele não pode ser gravado pela GPU e não pode ser acessado pela CPU. Esse tipo de recurso deve ser inicializado quando ele é criado, pois ele não pode ser alterado após a criação.
D3D10_USAGE_DYNAMIC
Valor: 2
Um recurso acessível pela GPU e pela CPU (somente gravação). Um recurso dinâmico é uma boa opção para um recurso que será atualizado pela CPU pelo menos uma vez por quadro. Para gravar em um recurso dinâmico na CPU, use um método Map . Você pode gravar em um recurso dinâmico na GPU usando CopyResource ou CopySubresourceRegion.
D3D10_USAGE_STAGING
Valor: 3
Um recurso que dá suporte à transferência de dados (cópia) da GPU para a CPU.

Comentários

Um aplicativo identifica a maneira como um recurso deve ser usado (seu uso) em uma descrição do recurso. Há várias estruturas para criar recursos, incluindo: D3D10_TEXTURE1D_DESC, D3D10_TEXTURE2D_DESC, D3D10_TEXTURE3D_DESC, D3D10_BUFFER_DESC e D3DX10_IMAGE_LOAD_INFO.

Diferenças entre o Direct3D 9 e o Direct3D 10:

No Direct3D 9, você especifica o tipo de memória em que um recurso deve ser criado no momento da criação do recurso (usando D3DPOOL). Era trabalho de um aplicativo decidir qual pool de memória forneceria a melhor combinação de funcionalidade e desempenho.

No Direct3D 10, um aplicativo não especifica mais em que tipo de memória (o pool) criar um recurso. Em vez disso, você especifica o uso pretendido do recurso e permite que o runtime (em conjunto com o driver e um gerenciador de memória) escolha o tipo de memória que alcançará o melhor desempenho.

 

Restrições de uso de recursos

Cada uso determina uma compensação entre a funcionalidade e o desempenho. Em geral, o acesso a recursos é realizado com as APIs a seguir. Use a tabela a seguir para escolher o uso que melhor descreve como o recurso precisará ser acessado pela CPU e/ou pela GPU. Claro, haverá compensações de desempenho.
Uso de recurso Default Dinâmico Imutável Staging
GPU-Read sim sim¹ sim Sim, 1, 2
GPU-Write sim¹ Sim, 1, 2
CPU-Read Sim, 1, 2
CPU-Write sim Sim, 1, 2
 

Opções de Associação de Recursos

Para maximizar o desempenho, nem todas as opções de uso de recursos podem ser usadas como recursos de entrada ou saída para o pipeline. Esta tabela identifica essas limitações.
O recurso pode ser associado como Default Dinâmico Imutável Staging
Entrada para um estágio yes³ sim⁴ sim
Saída de um estágio yes³
 
  • 3 - Se associado como uma entrada e uma saída usando exibições diferentes, cada exibição deve usar sub-recursos diferentes.
  • 4 – O recurso só pode ser criado com um único sub-recurso. O recurso não pode ser uma matriz de textura. O recurso não pode ser uma cadeia de mipmap.

Requisitos

Requisito Valor
Cabeçalho d3d10.h

Confira também

Enumerações de recursos