本部分包含像素着色器版本 3_0 指令的参考信息。
有多种类型的像素着色器指令,如表所示。 右侧的列表示以下内容:
- 指令槽 - 每个指令使用的指令槽数。
- 安装程序 - 像素着色器必须具有版本指令,并且它必须是第一个指令。
- 算术 - 这些指令在着色器中提供数学运算。
- 纹理 - 这些说明用于加载和采样纹理数据,以及修改纹理坐标。
- 流控制 - 这些指令为指令的执行提供静态和动态流控制。
- 新增 - 这些说明是此版本的新增功能。
指令集
| 名字 | 描述 | 指令槽 | 设置 | 算术 | 质地 | 流控制 | 新增功能 |
|---|---|---|---|---|---|---|---|
| abs - ps | 绝对值 | 1 | x | ||||
| 添加 - ps | 添加两个向量 | 1 | x | ||||
| 中断 - ps | 中断循环...endloop 或 rep...endrep 块 | 1 | x | ||||
| break_comp - ps | 有条件地中断循环...endloop 或 rep...endrep 块,与比较 | 3 | x | ||||
| 断点 - ps | 中断循环...endloop 或 rep...endrep 块,基于谓词 | 3 | x | ||||
| 呼叫 - ps | 调用子例程 | 2 | x | ||||
| callnz bool - ps | 如果布尔寄存器不为零,则调用子例程 | 3 | x | ||||
| callnz pred - ps | 如果谓词寄存器不为零,则调用子例程 | 3 | x | ||||
| cmp - ps | 将源与 0 进行比较 | 1 | x | ||||
| crs - ps | 矢积 | 2 | x | ||||
| dcl_samplerType (sm2, sm3 - ps asm) | 声明采样器的纹理维度 | 0 | x | ||||
| dcl_semantics (sm3 - ps asm) | 声明输入和输出寄存器 | 0 | x | x | |||
| def - ps | 定义常量 | 0 | x | ||||
| defb - ps | 定义布尔常量 | 0 | x | ||||
| 挑衅 - ps | 定义整数常量 | 0 | x | ||||
| dp2add - ps | 2D 点积并添加 | 2 | x | ||||
| dp3 - ps | 3D 点产品 | 1 | x | ||||
| dp4 - ps | 4D 点产品 | 1 | x | ||||
| dsx - ps | x 方向变化率 | 2 | x | ||||
| dsy - ps | y 方向变化率 | 2 | x | ||||
| 其他 - ps | 开始其他块 | 1 | x | ||||
| endif - ps | 结束 if...else 块 | 1 | x | ||||
| endloop - ps | 结束循环 | 2 | x | x | |||
| endrep - ps | 重复块的结束 | 2 | x | ||||
| exp - ps | 全精度 2x | 1 | x | ||||
| frc - ps | 小数部分 | 1 | x | ||||
| 布尔 - ps | 开始一个 if 块 | 3 | x | ||||
| if_comp - ps | 使用比较开始 if 块 | 3 | x | ||||
| pred - ps | 使用谓词启动 if 块 | 3 | x | ||||
| 标签 - ps | 标签 | 0 | x | ||||
| 日志 - ps | 全精度对数(x) | 1 | x | ||||
| 循环 - ps | 圈 | 3 | x | x | |||
| lrp - ps | 线性内插 | 2 | x | ||||
| m3x2 - ps | 3x2 乘法 | 2 | x | ||||
| m3x3 - ps | 3x3 乘法 | 3 | x | ||||
| m3x4 - ps | 3x4 乘法 | 4 | x | ||||
| m4x3 - ps | 4x3 乘法 | 3 | x | ||||
| m4x4 - ps | 4x4 乘法 | 4 | x | ||||
| 疯狂 - ps | 相乘和添加 | 1 | x | ||||
| 最大值 - ps | 最大 | 1 | x | ||||
| 分钟 - ps | 最低 | 1 | x | ||||
| mov - ps | 移动 | 1 | x | ||||
| mul - ps | 乘 | 1 | x | ||||
| nop - ps | 无作 | 1 | x | ||||
| nrm - ps | 正常化 | 3 | x | ||||
| pow - ps | xy | 3 | x | ||||
| ps | 版本 | 0 | x | ||||
| rcp - ps | 倒数 | 1 | x | ||||
| rep - ps | 重复 | 3 | x | ||||
| 重试 - ps | 子例程的结尾 | 1 | x | ||||
| rsq - ps | 倒数平方根 | 1 | x | ||||
| setp_comp | 设置谓词寄存器 | 1 | x | ||||
| sincos - ps | 正弦和余弦值 | 8 | x | ||||
| 子 - ps | 减去 | 1 | x | ||||
| texkill - ps | 终止像素呈现 | 2 | x | ||||
| texld - ps_2_0和向上 | 示例纹理 | 请参阅注释 1 | x | ||||
| texldb - ps | 具有 w-component 中细节级别的偏差的纹理采样 | 6 | x | ||||
| texldl - ps | 具有 w-component 中详细级别的纹理采样 | 请参阅注释 2 | x | x | |||
| texldd - ps | 使用用户提供的渐变进行纹理采样 | 3 | x | ||||
| texldp - ps | 通过投影除以 w-component 进行纹理采样 | 请参阅注释 3 | x |
笔记:
- 如果纹理是立方体贴图,则槽数 = 4;否则槽数 = 1。
- 如果纹理是立方体贴图,则槽数 = 5;否则槽 = 2。
- 如果纹理是立方体贴图,则槽数 = 4;否则槽数 = 3。
相关主题