地心 (sm4 - asm)

查询给定输入资源的维度。

лfo[_uint|_rcpFloat] dest[.mask], srcMipLevel.select_component, srcResource[.swizzle]
说明
dest
[in]操作结果的地址。
srcMipLevel
[in]mip 级别。
srcResource
[in]要查询其尺寸的 t# 或 u# 输入纹理。

备注

srcMipLevel 读取为无符号整数标量,因此,如果源寄存器不是标量即时值,则需要单个组件选择器。

dest 接收 [width, height, depth or array size, total-mip-count],由写入掩码选择。

返回的宽度、高度和深度值针对 srcMipLevel 参数选择的 mip 级别,并且以纹素数表示,与纹素数据大小无关。 对于多重采样资源 (texture2D[Array]MS#) ,宽度和高度也以纹素(而不是样本)返回。

在 dest.w 中返回的总 mip 计数不受 srcMipLevel 参数影响。

对于 u#) (UAV,mip 级别数始终为 1。

此指令的所有方面都基于绑定到 t#/u# 的资源视图的特征,而不是基础基资源。

返回的值都是浮点,除非使用_uint修饰符,在这种情况下,返回的值都是整数。 如果使用_rcpFloat修饰符,则返回的所有值都是浮点值,并且宽度、高度和深度作为倒数返回, (1.0f/width、1.0f/height、1.0f/depth) ,如果 width/height/depth 为 0,则从超出范围的 srcMipLevel 行为返回。 _rcpFloat修饰符仅适用于宽度、高度和深度返回的值,不适用于设置为 0 因而不返回的值,也不适用于数组大小返回。

srcResource 上的重排允许在返回的值写入目标之前任意重排。

如果 srcResource 是 Texture1D,则在 dest.x 中返回 width, dest.yz 设置为 0。

如果 srcResource 是 Texture1DArray,则宽度在 dest.x 中返回,数组大小在 dest.y 中返回, dest.z 设置为 0。

如果 srcResource 是 Texture2D,则在 dest.xy 中返回宽度和高度, dest.z 设置为 0。

如果 srcResource 是 Texture2DArray,则宽度和高度在 dest.xy 中返回,数组大小在 dest.z 中返回。

如果 srcResource 是 Texture3D,则宽度、高度和深度以 dest.xyz 返回。

如果 srcResource 是 TextureCube,则在 dest.xy 中返回各个立方体面尺寸的宽度和高度, 并将 dest.z 设置为 0。

如果 srcResource 是 TextureCubeArray,则各个立方体面尺寸的宽度和高度将在 dest.xy 中返回。 dest.z 设置为未定义的值。

如果在 srcResource 上指定了每资源 mip 夹,则无论固定器如何,都始终返回视图中 mip 计数的 mipmap 总数。 但是,如果给定的 miplevel 的维度由橡胶fo 请求,并且 miplevel 已被固定 (例如,2.2 的夹子表示 mips 0 和 1 已被固定) ,则返回的维度是未定义的。 当错误点超出范围时,某些实现将返回为“共聚物”指定的超出边界行为。 其他实现将返回 mip 的维度,就好像它未被固定一样。

限制

  • srcResource 必须是 t# 或 u# 寄存器,该寄存器不是缓冲区,而是 Texture*。
  • 不允许 srcResource 的相对寻址。
  • 如果 srcMipLevel 不是直接标量,则必须使用单个组件选择器。
  • 从未绑定任何内容的 t# 或 u# 提取,对于宽度、高度、深度或数组大小以及 total-mip-count,返回 0。 在这种情况下,仍遵循_rcpFloat修饰符,因此返回适用的返回值的 INF。
  • 如果 srcMipLevel 超出资源中可用错误参数数的范围,则大小返回 (dest.xyz) 的行为与未绑定的 t# 或 u# 资源的行为相同。 对于这种情况,在 dest.w 中仍返回总 mip 计数。

此指令适用于以下着色器阶段:

顶点着色器 几何着色器 像素着色器
x x x

最小着色器模型

以下着色器模型中支持此函数。

着色器模型 支持
着色器模型 5
着色器模型 4.1
着色器模型 4
着色器模型 3 (DirectX HLSL)
着色器模型 2 (DirectX HLSL)
着色器模型 1 (DirectX HLSL)

着色器模型 4 程序集 (DirectX HLSL)