Compartir a través de


resinfo (sm4 - asm)

Consulte las dimensiones de un recurso de entrada determinado.

resinfo[_uint|_rcpFloat] dest[.mask], srcMipLevel.select_component, srcResource[.swizzle]
Elemento Descripción
Dest
[in] Dirección del resultado de la operación.
srcMipLevel
[in] Nivel mip.
srcResource
[in] Textura de entrada de t# o u# para la que se consultan las dimensiones.

Comentarios

srcMipLevel se lee como un valor escalar entero sin signo, por lo que se requiere un único selector de componentes para el registro de origen, si no es un valor inmediato escalar.

dest recibe [ancho, alto, profundidad o tamaño de matriz, total-mip-count], seleccionado por la máscara de escritura.

Los valores devueltos de ancho, alto y profundidad son para el nivel mip seleccionado por el parámetro srcMipLevel y están en número de elementos de textura, independientemente del tamaño de los datos de elementos de textura. En el caso de los recursos de varios ejemplos (texture2D[Array]MS#), el ancho y el alto también se devuelven en elementos de textura, no en muestras.

El recuento total de mip devuelto en dest.w no se ve afectado por el parámetro srcMipLevel .

En el caso de las UAV (u#), el número de niveles mip es siempre 1.

Todos los aspectos de esta instrucción se basan en las características de la vista de recursos enlazada en t#/u#, no en el recurso base subyacente.

Los valores devueltos son todos los puntos flotantes, a menos que se use el modificador _uint, en cuyo caso los valores devueltos son enteros. Si se usa el modificador _rcpFloat, todos los valores devueltos son punto flotante y el ancho, el alto y la profundidad se devuelven como recíprocas (1,0f/width, 1,0f/height, 1,0f/profundidad), incluido INF si el ancho,alto/profundidad son 0 del comportamiento srcMipLevel fuera del intervalo. El modificador _rcpFloat solo se aplica a los valores devueltos de ancho, alto y profundidad, y no se aplica a los valores establecidos en 0 y, por tanto, no se devuelve, y tampoco se aplica a las devoluciones de tamaño de matriz.

El swizzle en srcResource permite que los valores devueltos se desenreden arbitrariamente antes de que se escriban en el destino.

Si srcResource es texture1D, el ancho se devuelve en dest.x y dest.yz se establece en 0.

Si srcResource es texture1DArray, el ancho se devuelve en dest.x, el tamaño de la matriz se devuelve en dest.y y dest.z se establece en 0.

Si srcResource es texture2D, el ancho y el alto se devuelven en dest.xy y dest.z se establece en 0.

Si srcResource es texture2DArray, el ancho y el alto se devuelven en dest.xy y el tamaño de la matriz se devuelve en dest.z.

Si srcResource es texture3D, el ancho, el alto y la profundidad se devuelven en dest.xyz.

Si srcResource es textureCube, el ancho y alto de las dimensiones de cara de cubo individuales se devuelven en dest.xy y dest.z se establece en 0.

Si srcResource es textureCubeArray, el ancho y el alto de las dimensiones de la cara del cubo individuales se devuelven en dest.xy. dest.z se establece en un valor no definido.

Si se ha especificado una abrazadera mip por recurso en srcResource, resinfo siempre devuelve el número total de mapas MIP en la vista para el recuento de mip, independientemente de la abrazadera. Sin embargo, si las dimensiones de un miplevel determinado son solicitadas por resinfo y el miplevel se ha sujetado (por ejemplo, una abrazadera de 2,2 significa que los mips 0 y 1 se han fijado), las dimensiones devueltas son indefinidos. Algunas implementaciones devolverán el comportamiento fuera de los límites especificado para resinfo cuando el miplevel está fuera del intervalo. Otras implementaciones devolverán las dimensiones del mip como si no se hubieran fijado.

Restricciones

  • srcResource debe ser un registro de t# o u# que no es un búfer, pero es una textura*.
  • No se permite el direccionamiento relativo de srcResource .
  • srcMipLevel debe usar un único selector de componentes si no es un valor escalar inmediato.
  • La captura de t# o u# que no tiene nada enlazado a él devuelve 0 para width, height, depth o arraysize y total-mip-count. El modificador _rcpFloat todavía se respeta en este caso, lo que devuelve INF para los valores devueltos aplicables.
  • Si srcMipLevel está fuera del intervalo del número disponible de miplevels en el recurso, el comportamiento de la devolución de tamaño (dest.xyz) es idéntico al de un recurso t# o u# independiente. El recuento total de mip se sigue devolviendo en dest.w para este caso.

Esta instrucción se aplica a las siguientes fases del sombreador:

Sombreador de vértices Sombreador de geometría Sombreador de píxeles
x x x

Modelo de sombreador mínimo

Esta función se admite en los siguientes modelos de sombreador.

Modelo de sombreador Compatible
Modelo de sombreador 5
Modelo de sombreador 4.1
Modelo de sombreador 4
Modelo de sombreador 3 (DirectX HLSL) no
Modelo de sombreador 2 (DirectX HLSL) no
Modelo de sombreador 1 (DirectX HLSL) no

Ensamblado del modelo de sombreador 4 (DirectX HLSL)