Consulta e gravação do Sampler Feedback
A visão de alto nível da operação de consulta e gravação do Sampler Feedback é a seguinte.- Uma operação de amostragem de textura é definida por uma exibição de recurso de sombreador e pelo estado do sampler de uma textura da cena, pelas coordenadas UV(W) de entrada e pelos gradientes UV(W) calculados por interpolação. No caso de amostragem de textura em um estágio de sombreador que não seja de pixel, um índice de nível de mip é fornecido em vez de gradientes.
- O hardware de endereçamento de texturas calcula um padrão de amostragem de textura, que consiste em uma ou mais amostras, cada uma incluindo coordenadas absolutas de textura e um índice de nível de mip.
- As coordenadas absolutas de cada amostra de textura são convertidas em coordenadas absolutas em relação ao mapa de feedback.
- O conjunto de amostras de textura é mesclado de uma de duas maneiras.
- O conjunto mesclado de amostras de textura é gravado no mapa de feedback usando semântica atômica.

Um mapa de feedback MipRegionUsed (conforme mostrado na figura 2) é definido como uma textura com mips pareada com uma textura. Ele tem a mesma dimensionalidade de recurso que a textura pareada; por exemplo, o mapa de feedback MipRegionUsed de uma textura de matriz com mipmaps é uma textura de matriz com mipmaps. O mapa de feedback MipRegionUsed de uma textura de volume com mipmaps é uma textura de volume com mipmaps. Cada texel do mapa de feedback MipRegionUsed é um conjunto de sinalizadores que indica se aquele local foi amostrado na textura pareada dentro daquela região. Os texels do mapa de feedback MipRegionUsed usam um formato de elemento de 8 bits, com o sinalizador de amostragem registrado em cada elemento. O tamanho da região de um texel do mapa de feedback MipRegionUsed é uma fração em potência de dois das dimensões da textura pareada.
Quando a operação de hardware de sampler feedback grava em um mapa de feedback MipRegionUsed, ela usa uma operação OR atômica para realizar a gravação no sinalizador de amostragem. Para coletar um feedback preciso, todos os texels do mapa de feedback MipRegionUsed devem ser inicializados com zero antes da gravação do feedback.
Programação de hardware para mapas de feedback
O mecanismo de sombreador da GPU implementa dezenas de variantes de instruções de amostragem de imagem, cada uma incluindo ou excluindo várias opções, como gradientes especificados pelo usuário e limitação de LOD. O Sampler Feedback representaria mais uma variante de todas essas operações existentes. No entanto, em vez de dobrar o número de opcodes de sombreador, o Sampler Feedback é iniciado usando um descritor de imagem com codificação especial conhecido como recurso vinculado. Quando o estado de recurso vinculado no descritor de imagem de entrada é detectado pelo hardware de endereçamento de texturas (TA), o caminho de sampler feedback é selecionado em vez do caminho padrão de amostragem de texturas. Um descritor de recurso vinculado é construído usando as etapas a seguir.- Um descritor de imagem é construído (ou copiado) a partir das especificações da textura pareada, incluindo o tipo de recurso da textura pareada (por exemplo, 1D, 2D, matriz 2D e 3D) e, por exemplo, as dimensões UVW e as contagens de mips e de fatias.
- O descritor é marcado como recurso vinculado definindo um sinalizador e selecionando o tipo de recurso vinculado (feedback MinMip ou feedback MipRegionUsed) em um campo separado.
- A dimensão do mapa de feedback é armazenada em um campo. Ela é codificada como frações em potência de dois das dimensões base. Frações separadas são usadas para a dimensão U e para as dimensões V ou W.
- Para mapas de feedback MinMip, o nível de mip máximo é definido como 0 para remover a cadeia de mips.
- O formato de imagem é R8_UINT tanto para mapas de feedback MinMip quanto para MipRegionUsed. A GPU do XBOX Series X|S é capaz de realizar operações atômicas em valores de byte, enquanto as GPUs anteriores normalmente eram restritas a operações atômicas de 32 bits. O hardware de sampler feedback usa uma codificação de ponto fixo sem sinal 5.3 para mapas de feedback MinMip.
- O driver seleciona o modo swizzle SW_256B_S para mapas de feedback, pois ele tem as menores restrições de alinhamento e é o mais adequado para texturas pequenas, como mapas de feedback.
Restrições de hardware do Sampler Feedback
O Sampler Feedback tem as seguintes restrições de hardware.- Sem suporte a deslocamentos inteiros de texel diferentes de zero
- Sem suporte a imagens de textura 2D com MSAA (suavização de serrilhado multiamostra)
- Sem suporte a coordenadas não normalizadas
- Sem suporte a operações de amostragem Gather
Filtragem de mapas MinMip
O Sampler Feedback for Streaming (SFS) introduz o conceito de “mapa MinMip”, que fornece um limite mínimo de LOD por região para uma textura em blocos, de modo que a amostragem dessa textura durante a renderização da cena possa ser limitada ao conjunto de blocos residentes. Cada elemento do mapa MinMip representa uma região do espaço UV dentro de uma textura em blocos, e o valor representa o índice de LOD do maior nível de mip totalmente residente em toda essa região. Um mapa MinMip (conforme mostrado na figura 3) é usado como parte de uma busca de textura dependente ao amostrar de um recurso em blocos. O mapa MinMip é amostrado com o filtro de mapa MinMip e as coordenadas UV(W) da textura, gerando um resultado filtrado: um valor de limite MinMip para essas coordenadas UV(W). Em seguida, o valor de limite MinMip é usado para amostrar a textura em blocos, usando a forma com limite por pixel do método de amostragem de texturas. Figura 3. Representação do mapa MinMip
Design do filtro de hardware
A GPU do XBOX Series X|S inclui um novo filtro bilinear modificado, projetado especificamente para filtrar mapas MinMip e para suceder o filtro “MIN reduction” introduzido com os Tiled Resources do Direct3D 11. Esse novo filtro incorpora uma operação MIN que move a transição bilinear entre texels adjacentes para a região do texel de menor valor. Além disso, o filtro tem inclinação e deslocamentos configuráveis que ajustam a aparência visual do filtro.Mais detalhes serão adicionados a esta seção em uma versão futura.
