地心 (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) | 否 |