Compartilhar via


resinfo (sm4 – asm)

Consulte as dimensões de um determinado recurso de entrada.

resinfo[_uint|_rcpFloat] dest[.mask], srcMipLevel.select_component, srcResource[.swizzle]
Item Descrição
Dest
[in] O endereço do resultado da operação.
srcMipLevel
[in] O nível de mip.
srcResource
[in] Uma textura de entrada t# ou u# para a qual as dimensões estão sendo consultadas.

Comentários

srcMipLevel é lido como um escalar inteiro sem sinal, portanto, um seletor de componente único é necessário para o registro de origem, se não for um valor escalar imediato.

dest recebe [largura, altura, profundidade ou tamanho da matriz, total-mip-count], selecionado pela máscara de gravação.

Os valores de largura, altura e profundidade retornados são para o nível de mip selecionado pelo parâmetro srcMipLevel e estão em número de texels, independentemente do tamanho dos dados texel. Para recursos de várias amostras (texture2D[Array]MS#), largura e altura também são retornados em texels, não em amostras.

A contagem total de mip retornada em dest.w não é afetada pelo parâmetro srcMipLevel .

Para UAVs (u#), o número de níveis de mip é sempre 1.

Todos os aspectos dessa instrução baseiam-se nas características da exibição de recursos associadas ao t#/u#, não ao recurso base subjacente.

Os valores retornados são todos de ponto flutuante, a menos que o modificador _uint seja usado; nesse caso, os valores retornados são todos inteiros. Se o modificador _rcpFloat for usado, todos os valores retornados serão de ponto flutuante e a largura, altura e profundidade serão retornados como recíprocos (1,0f/largura, 1,0f/altura, 1,0f/profundidade), incluindo INF se largura/altura/profundidade forem 0 do comportamento srcMipLevel fora do intervalo. O modificador _rcpFloat aplica-se apenas a valores retornados de largura, altura e profundidade e não se aplica a valores definidos como 0 e, portanto, não retornados e também não se aplica a retornos de tamanho de matriz.

O swizzle em srcResource permite que os valores retornados sejam girados arbitrariamente antes de serem gravados no destino.

Se srcResource for um Texture1D, a largura será retornada em dest.x e dest.yz será definida como 0.

Se srcResource for texture1DArray, a largura será retornada em dest.x, o tamanho da matriz será retornado em dest.y e dest.z será definido como 0.

Se srcResource for um Texture2D, a largura e a altura serão retornadas em dest.xy e dest.z será definida como 0.

Se srcResource for um Texture2DArray, a largura e a altura serão retornadas em dest.xy e o tamanho da matriz será retornado em dest.z.

Se srcResource for um Texture3D, a largura, a altura e a profundidade serão retornadas em dest.xyz.

Se srcResource for um TextureCube, a largura e a altura das dimensões individuais da face do cubo serão retornadas em dest.xy e dest.z será definida como 0.

Se srcResource for um TextureCubeArray, a largura e a altura das dimensões individuais da face do cubo serão retornadas em dest.xy. dest.z é definido como um valor indefinido.

Se um grampo mip por recurso tiver sido especificado em srcResource, resinfo sempre retornará o número total de mipmaps na exibição para a contagem de mip, independentemente do grampo. No entanto, se as dimensões de um determinado miplevel forem solicitadas por resinfo e o miplevel tiver sido fixado (por exemplo, um grampo de 2,2 significa que mips 0 e 1 foram fixados), as dimensões retornadas serão indefinidas. Algumas implementações retornarão o comportamento fora dos limites especificado para resinfo quando o miplevel estiver fora do intervalo. Outras implementações retornarão as dimensões do mip como se não tivesse sido fixado.

Restrições

  • srcResource deve ser um registro t# ou u# que não seja um Buffer, mas seja uma Textura*.
  • O endereçamento relativo de srcResource não é permitido.
  • srcMipLevel deve usar um seletor de componente único se não for um escalar imediato.
  • Buscar de t# ou u# que não tem nada associado a ele retorna 0 para largura, altura, profundidade ou tamanho de matriz e total mip-count. O modificador _rcpFloat ainda é respeitado nesse caso, retornando, assim, INF para os valores retornados aplicáveis.
  • Se srcMipLevel estiver fora do intervalo do número disponível de miplevels no recurso, o comportamento do retorno de tamanho (dest.xyz) será idêntico ao de um recurso t# ou u# não associado. A contagem total de mip ainda é retornada em dest.w para esse caso.

Esta instrução se aplica aos seguintes estágios de sombreador:

Sombreador de vértice Sombreador de geometria Sombreador de pixel
x x x

Modelo de sombreador mínimo

Essa função tem suporte nos modelos de sombreador a seguir.

Modelo de Sombreador Com suporte
Modelo de sombreador 5 sim
Modelo de sombreador 4.1 sim
Modelo de sombreador 4 sim
Modelo de sombreador 3 (DirectX HLSL) não
Modelo de sombreador 2 (DirectX HLSL) não
Modelo de sombreador 1 (DirectX HLSL) não

Assembly do Modelo de Sombreador 4 (DirectX HLSL)