Compartilhar via


Criar recursos de streaming

Os recursos de streaming criados especificando um sinalizador quando você cria um recurso, indicando que o recurso é um recurso de streaming.

As restrições sobre quando você pode criar um recurso como um recurso de streaming estão descritas em parâmetros de criação de recursos de Streaming.

O armazenamento de um recurso não streaming é alocado no sistema de elementos gráficos quando o recurso é criado, como a alocação para uma matriz de texturas 2D.

Quando um recurso de streaming é criado, o sistema de elementos gráficos não aloca o armazenamento para o conteúdo do recurso. Em vez disso, quando um app cria um recurso de streaming, o sistema de elementos gráficos cria uma reserva de espaço de endereço apenas para a área da superfície lado a lado e, em seguida, permite que o mapeamento dos blocos seja controlado pelo app. 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.

Nesta seção

Tópico Descrição

Mapeamentos estão em um pool de blocos

Quando um recurso é criado como um recurso de streaming, os blocos que compõem o recurso são provenientes do apontamento 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 de streaming

Há algumas restrições sobre o tipo de recursos do Direct3D que você pode criar como um recurso de streaming.

Parâmetros de criação de pool de blocos

Use os parâmetros nesta seção para definir pools de bloco ao criar um buffer.

Processo cruzado de recursos de streaming e compartilhamento de dispositivos

Os pools de bloco podem ser compartilhados com outros processos como recursos tradicionais. O streaming de recursos que faz referência a pools de bloco não pode ser compartilhado entre dispositivos e processos.

Operações disponíveis em recursos de streaming

Esta seção lista operações que podem ser executadas em recursos de streaming.

Operações disponíveis em pools de blocos

As operações em pools de blocos incluem o redimensionamento de um pool de blocos, a oferta de recursos (concedendo memória temporariamente para o sistema para todo o pool de blocos) e a recuperação de recursos.

Como uma área de recurso de streaming é colocada lado a lado

Quando você cria um recurso de streaming, 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 que são necessários para toda a área de superfície.

 

Recursos de streaming