D3D12_TILED_RESOURCES_TIER enumeração (d3d12.h)
Identifica o nível de camada no qual há suporte para recursos em bloco.
Syntax
typedef enum D3D12_TILED_RESOURCES_TIER {
D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
D3D12_TILED_RESOURCES_TIER_1 = 1,
D3D12_TILED_RESOURCES_TIER_2 = 2,
D3D12_TILED_RESOURCES_TIER_3 = 3,
D3D12_TILED_RESOURCES_TIER_4 = 4
} ;
Constantes
D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED Valor: 0 Indica que as texturas não podem ser criadas com o layout de D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE . ID3D12Device::CreateReservedResource não pode ser usado, nem mesmo para buffers. |
D3D12_TILED_RESOURCES_TIER_1 Valor: 1 Indica que texturas 2D podem ser criadas com o layout D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE. Existem limitações para determinados formatos e propriedades de recursos. Para obter mais detalhes, consulte D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE. ID3D12Device::CreateReservedResource pode ser usado. As leituras ou gravações de GPU em mapeamentos NULL são indefinidas. Os aplicativos são incentivados a solucionar essa limitação mapeando repetidamente a mesma página para todos os lugares em que um mapeamento NULL teria sido usado. Quando o tamanho de um nível de mipmap de textura é um múltiplo inteiro da forma de bloco padrão para seu formato, é garantido que ele não esteja empacotado. |
D3D12_TILED_RESOURCES_TIER_2 Valor: 2 Indica que há suporte para um superconjunto de Tier_1 funcionalidade, incluindo este suporte adicional:
Adaptadores que dão suporte ao nível de recurso 12_0 dão suporte a TIER_2 ou superior. |
D3D12_TILED_RESOURCES_TIER_3 Valor: 3 Indica que há suporte para um superconjunto da Camada 2, com a adição de que há suporte para texturas 3D (Recursos em Blocos de Volume). |
D3D12_TILED_RESOURCES_TIER_4 Valor: 4 |
Comentários
Essa enumeração é usada pela estrutura D3D12_FEATURE_DATA_D3D12_OPTIONS .
Há três partes discretas de funcionalidade agrupadas para a funcionalidade de recurso em bloco:
- Uma opção de layout de textura baseada em bloco em que endereços texel próximos contêm coordenadas de dados próximas. Um bloco de texels contém quase a mesma quantidade de texels em cada dimensão cardinal do recurso. Esse layout é representado em D3D12 por D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE.
- Reserve uma região de espaço de endereço virtual para um recurso, em que cada página é inicialmente mapeada em NULL. Em D3D12, essa operação é encapsulada em ID3D12Device::CreateReservedResource, que funciona apenas com texturas que têm o layout D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE.
- A capacidade de alterar mapeamentos de página e manipular dados de textura em granularidades de bloco. No D3D12, essas operações são ID3D12CommandQueue::UpdateTileMappings, ID3D12CommandQueue::CopyTileMappings e ID3D12GraphicsCommandList::CopyTiles.
- Os pools de blocos são substituídos por heaps. Os heaps fornecem um superconjunto de recursos do que os pools de blocos D3D11.
- Os recursos reservados podem ser mapeados para páginas de vários heaps ao mesmo tempo. A restrição D3D11 de que todas as páginas mapeadas não NULL devem vir do mesmo heap não existe.
- Os aplicativos devem estar cientes dos recursos de endereço virtual de GPU, que permitem testes litmus para cenários de uso específicos. Consulte D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT.
Requisitos
Cabeçalho | d3d12.h |