Pular para o conteúdo principal
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 (unidade de processamento gráfico).

Sintaxe

Constantes

Comentários

Um aplicativo identifica como um recurso deve ser usado (seu uso) em uma descrição de recurso. Há várias estruturas para criar recursos, incluindo XG_TEXTURE1D_DESC, XG_TEXTURE2D_DESC, XG_TEXTURE3D_DESC e XG_BUFFER_DESC. Um aplicativo não especifica o tipo de memória (o pool) no qual um recurso deve ser criado. 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 acessibilidade para a CPU e/ou a GPU. Em geral, um acesso de maior desempenho para um desses dois processadores significa um acesso de menor desempenho para o outro. Nos extremos estão os usos XG_USAGE_DEFAULT e XG_USAGE_STAGING. XG_USAGE_DEFAULT restringe o acesso quase inteiramente à GPU. XG_USAGE_STAGING restringe o acesso quase inteiramente à CPU e permite apenas uma transferência de dados (cópia) de um recurso entre a GPU e a CPU. O uso XG_USAGE_DYNAMIC é um caso especial que otimiza o fluxo de dados da CPU para a GPU quando a CPU gera esses dados dinamicamente e os envia com alta frequência. XG_USAGE_DYNAMIC normalmente é usado em recursos com dados de vértice e em buffers de constantes. O uso XG_USAGE_IMMUTABLE é outro caso especial que faz com que a GPU gere dados apenas uma vez, quando você cria um recurso. XG_USAGE_IMMUTABLE é adequado para dados como texturas, porque esses dados normalmente são lidos na memória a partir de algum formato de arquivo. Portanto, quando você cria uma textura com XG_USAGE_IMMUTABLE, a GPU lê essa textura diretamente na memória. Use a tabela a seguir para escolher o uso que melhor descreve como o recurso deve ser acessado pela CPU e pela GPU. Há compensações de desempenho. 1: As leituras e gravações da GPU de um recurso com o uso XG_USAGE_STAGING são restritas a operações de cópia. Além disso, como os formatos de profundidade e estêncil e os layouts de multiamostragem são detalhes de implementação de um design de GPU específico, em geral, o sistema operacional não pode expor esses formatos e layouts à CPU. Portanto, os recursos de preparo não podem ser buffers de profundidade e estêncil nem destinos de renderização com multiamostragem. Como os recursos XG_USAGE_DYNAMIC consomem recursos de hardware específicos, use-os com moderação. O driver de vídeo normalmente aloca memória para recursos XG_USAGE_DYNAMIC com um algoritmo de cache que favorece as gravações da CPU e prejudica as leituras da CPU. Portanto, não espere alto desempenho ou mesmo leituras consistentes da CPU a partir de recursos XG_USAGE_DYNAMIC.

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.
  • 2: Se associado como entrada e saída usando exibições diferentes, cada exibição deve usar sub-recursos diferentes.
  • 3: O recurso só pode ser criado com um único sub-recurso, não pode ser uma matriz de texturas e não pode ser uma cadeia de mipmaps.

Requisitos

Cabeçalho: xg.h Biblioteca: xg_x.lib Plataformas com suporte: família XBOX One

Confira também

Referência do XG
Última modificação em 6 de outubro de 2026