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 |