Skip to main content
A GPU do XBOX Series X|S contém dois recursos de hardware projetados sob medida que implementam o Sampler Feedback. O primeiro recurso é o próprio Sampler Feedback: um novo modo de operação para amostragem de texturas que consulta os padrões de amostragem de texturas e os grava em um recurso especial de “mapa de feedback”. O recurso de mapa de feedback pode escolher entre duas representações diferentes, cada uma com atributos exclusivos para diversos cenários de uso. O segundo recurso é um novo modo de filtragem de texturas projetado especificamente para filtrar “mapas MinMip”, que são usados para implementar um limite mínimo de nível de detalhe (LOD) por região de uma textura. Esse novo modo de filtragem foi projetado para resolver deficiências visuais do modo de filtragem “MIN reduction” existente.

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.
  1. 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.
  2. 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.
  3. As coordenadas absolutas de cada amostra de textura são convertidas em coordenadas absolutas em relação ao mapa de feedback.
  4. O conjunto de amostras de textura é mesclado de uma de duas maneiras.
  5. O conjunto mesclado de amostras de textura é gravado no mapa de feedback usando semântica atômica.
O hardware oferece suporte a duas representações diferentes do mapa de feedback. Cada representação define a operação específica das etapas de conversão de coordenadas, mesclagem e gravação mencionadas anteriormente (etapas 3 a 5). O mapa de feedback pode ser considerado “pareado” com a textura em relação à qual o padrão de amostragem está sendo calculado. O mapa de feedback geralmente é muito menor do que a textura pareada e deve ser dimensionado como uma fração em potência de dois das dimensões da textura pareada. Em outras palavras, as dimensões do mapa de feedback devem ser iguais às dimensões calculadas de um dos níveis de mip da textura pareada, esteja esse nível de mip presente ou não na textura pareada. Figura 1. Representação do mapa de feedback MinMip Diagrama que representa um mapa de feedback MinMip Um mapa de feedback MinMip (conforme mostrado na figura 1) é definido como uma textura sem mips pareada com uma textura. Ele tem a mesma dimensionalidade de recurso que a textura pareada; por exemplo, o mapa de feedback MinMip de uma textura de matriz com mipmaps é uma textura de matriz com um mip. O mapa de feedback MinMip de uma textura de volume com mipmaps é uma textura de volume com um mip. Cada texel do mapa de feedback MinMip é um valor numérico que representa o maior nível de mip (de menor valor) que foi amostrado na textura pareada dentro daquela região. Os texels do mapa de feedback MinMip usam um formato de elemento de 8 bits, codificado como um valor de ponto fixo sem sinal 5.3. O tamanho da região de um texel do mapa de feedback MinMip é uma fração em potência de dois das dimensões da textura pareada. Normalmente, o tamanho da região seria escolhido como as dimensões de um bloco de 64 KB na textura pareada ou um pequeno múltiplo disso. Quando a operação de hardware de sampler feedback grava em um mapa de feedback MinMip, ela usa uma operação MIN atômica para realizar a gravação. Para coletar um feedback preciso, todos os texels do mapa de feedback MinMip devem ser inicializados com um valor inicial alto (31,875, codificado como 0xFF) antes da gravação do feedback. Figura 2. Representação do mapa de feedback MipRegionUsed Diagrama que representa um mapa de feedback MipRegionUsed 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.
  1. 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.
  2. 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.
  3. 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.
  4. Para mapas de feedback MinMip, o nível de mip máximo é definido como 0 para remover a cadeia de mips.
Os mapas de feedback da GPU do XBOX Series X|S também têm os seguintes atributos, definidos dentro do descritor de imagem.
  1. 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.
  2. 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.
Usando o design de descritor de recurso vinculado, o Sampler Feedback pode usar todos os opcodes de sombreador de amostragem de imagem existentes sem modificação. Além disso, usando essa codificação, apenas um descritor de imagem é necessário para referenciar duas texturas diferentes (a textura pareada e a textura do mapa de feedback), o que reduz a pressão sobre os registradores no sombreador.

Restrições de hardware do Sampler Feedback

O Sampler Feedback tem as seguintes restrições de hardware.
  1. Sem suporte a deslocamentos inteiros de texel diferentes de zero
  2. Sem suporte a imagens de textura 2D com MSAA (suavização de serrilhado multiamostra)
  3. Sem suporte a coordenadas não normalizadas
  4. 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 Diagrama que representa um 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.

Programação de hardware para filtragem de mapas MinMip

O filtro MinMip é programado no hardware com uma combinação de um descritor de imagem modificado para o mapa MinMip e um estado de sampler modificado que contém os valores de inclinação e de deslocamento do filtro. O descritor de imagem modificado é um descritor de imagem de “recurso vinculado”, construído de forma semelhante ao descritor de imagem do mapa de feedback MinMip, detalhado anteriormente na seção Programação de hardware para mapas de feedback. O descritor deve ser construído com as dimensões da textura em blocos, enquanto as dimensões do mapa MinMip são especificadas como uma fração em potência de dois das dimensões da textura em blocos. O estado do sampler inclui novos campos que especificam os valores de inclinação e de deslocamento do filtro MinMip, nas direções U e V. Para a filtragem de mapas MinMip de volume, a inclinação/deslocamento U do descritor do sampler é usada para as direções U e V, enquanto a inclinação/deslocamento V do descritor do sampler é usada para a direção W. A inclinação do filtro pode ser selecionada entre os 8 valores a seguir: 2,5, 3, 4, 5, 8, 16, 32, 64. O deslocamento do filtro pode ser selecionado entre os 6 valores a seguir: 1/4, 1/8, 1/16, 1/32, 1/64, 1/128. A inclinação aumenta a nitidez visual do filtro. Valores mais altos proporcionam uma aparência mais nítida. O valor de deslocamento afasta o ponto final do filtro do limite entre elementos adjacentes no mapa MinMip. O deslocamento do filtro é usado para garantir que o kernel de filtro de quatro amostras usado para amostrar o mapa MinMip não inclua valores do outro lado do limite do texel que possam representar níveis de mip não residentes. O valor de deslocamento deve ser escolhido usando a fórmula 1/(2^(MaxLOD - MinLOD + 1)), em que MaxLOD e MinLOD representam a maior diferença de valores de LOD esperada através de um limite de texel no mapa MinMip. Por exemplo, se o mapa MinMip contiver valores de 5,0 para representar a residência do nível de mip 5 e um valor de 0,0 puder ser introduzido adjacente a um valor de 5, o valor de deslocamento deverá ser escolhido como (1/(2^(5 - 0 + 1))), ou 1/64.

Consulte também

Versão prévia da API do Direct3D 12 para Sampler Feedback Por que usar o Sampler Feedback Visão geral do Sampler Feedback (versão prévia)
Last modified on October 6, 2026