Compartilhar via


Criando recursos em blocos

Os recursos em bloco são criados especificando o sinalizador D3D11_RESOURCE_MISC_TILED ao criar um recurso.

As restrições sobre quando você pode usar D3D11_RESOURCE_MISC_TILED para criar um recurso são descritas em Parâmetros de criação de recursos em bloco.

O armazenamento de um recurso não em bloco é alocado no sistema gráfico quando o recurso é criado. Por exemplo, quando você chama ID3D11Device::CreateTexture2D para criar uma matriz de texturas 2D, o sistema gráfico aloca armazenamento para essas texturas 2D. Quando um recurso em bloco é criado, o sistema gráfico não aloca o armazenamento para o conteúdo do recurso. Em vez disso, quando um aplicativo cria um recurso em bloco, o sistema gráfico faz uma reserva de espaço de endereço apenas para a área da superfície em bloco e, em seguida, permite que o mapeamento dos blocos seja controlado pelo aplicativo. O "mapeamento" de um bloco é simplesmente a localização física na memória para a qual um bloco lógico em um recurso aponta (ou NULL para um bloco não mapeado). Não confunda esse conceito com a noção de mapeamento de um recurso do Direct3D para acesso de CPU, que apesar de usar o mesmo nome é completamente independente. Você poderá definir e alterar o mapeamento de cada bloco individualmente, conforme necessário, sabendo que todos os blocos para uma superfície não precisam ser mapeadas de uma só vez, fazendo assim o uso eficaz da quantidade de memória disponível.

Esta seção fornece mais informações sobre como criar recursos em bloco.

Nesta seção

Tópico Descrição
Mapeamentos estão em um pool de blocos
Quando um recurso é criado com o sinalizador D3D11_RESOURCE_MISC_TILED , os blocos que compõem o recurso vêm de apontar para locais em um pool de blocos. Um pool de blocos é um pool de memória (sustentado por uma ou mais alocações nos bastidores - nunca vistos pelo app).
Parâmetros de criação de recursos em bloco
Há algumas restrições no tipo de recursos Direct3D que você pode criar com o sinalizador D3D11_RESOURCE_MISC_TILED . Esta seção fornece os parâmetros válidos para a criação de recursos em bloco.
Espaço de endereço disponível para recursos em blocos
Esta seção especifica o espaço de endereço virtual disponível para recursos em bloco.
Parâmetros de criação de pool de blocos
Use os parâmetros nesta seção para definir pools de blocos por meio da API ID3D11Device::CreateBuffer .
Processo cruzado de recursos em bloco e compartilhamento de dispositivo
Os pools de bloco podem ser compartilhados com outros processos como recursos tradicionais. Os recursos em bloco que referenciam pools de blocos não podem ser compartilhados entre dispositivos e processos. Mas processos separados podem criar seus próprios recursos em bloco que são mapeados para pools de blocos que são compartilhados entre esses recursos em bloco.
Operações disponíveis em recursos em blocos
Esta seção lista as operações que você pode executar em recursos em bloco.
Operações disponíveis em pools de blocos
Esta seção lista as operações que você pode executar em pools de blocos.
Como a área de um recurso em bloco é lado a lado
Quando você cria um recurso em bloco, as dimensões, o tamanho do elemento de formato e o número de mipmaps e/ou fatias de matriz (se aplicável) determinam o número de blocos necessários para apoiar toda a área da superfície.

Recursos em bloco