HLSL 错误和警告
着色器可以返回的错误和警告代码。
常量/值 | 说明 |
---|---|
|
注释在文件末尾继续。 |
|
十六进制值被截断为 32 位。 |
|
八进制值被截断为 32 位。 |
|
十进制值被截断为 32 位。 |
|
字符串在行末继续。 |
|
字符串在文件末尾继续。 |
|
字符在文件末尾继续。 |
|
令牌版本中的错误。 |
|
无效的预处理器语法。 |
|
预处理器指令之后出现了意外的令牌。 |
|
意外到达了文件末尾。 |
|
预处理器表达式中有除数为零。 |
|
无效的预处理器命令。 |
|
支持来自资源或内存的 #include 所需的 include 接口不起作用。 |
|
嵌套的 #includes 太多。 |
|
无法打开指定的源文件。 |
|
出现意外的 #elif 指令。 |
|
出现意外的 #else 指令。 |
|
出现意外的 #endif 指令。 |
|
向指定的宏提供了重复参数。 |
|
无法打开资源。 |
|
#else 指令后出现了意外的 #elif 指令。 |
|
#else 指令后出现了意外的 #else 指令。 |
|
宏扩展中出现意外的文件结尾。 |
|
没有给指定的宏提供足够的实际参数。 |
|
预处理器表达式中的函数定义尚未实现。 |
|
整数常量表达式无效或不受支持。 |
|
指定的宏需要重新定义。 |
|
#hlsl_full_path 指令必须是源文件中的第一个内容。 |
|
#hlsl_full_path 指令格式不正确。 |
|
分析着色器文件时发现了语法错误。 |
|
指定的函数需要重新定义。 |
|
分析着色器文件时发现了未声明的标识符。 |
|
分析着色器文件时发现了对类型的无效使用。 |
|
指定的变量不能声明为外部变量。 |
|
指定的变量不能声明为静态变量。 |
|
指定的变量不能声明为易失性变量。 |
|
指定的变量不能有初始值设定项。 |
|
指定的变量不能声明为组共享变量,或者组共享变量无法执行特定任务。 |
|
指定的变量必须为文本表达式。 |
|
指定的变量缺少初始值设定项。 |
|
该函数不采用指定数量的参数。 |
|
传递给数值类型构造函数的参数数量不正确。 |
|
传递给内部函数的参数数量不正确。 |
|
不支持从一种类型转换为另一种类型。 |
|
下标无效。 |
|
应为一个数值(如浮点数)。 |
|
出现类型不匹配。 例如,如果所有模板类型组件都必须具有相同类型,但实际类型不同,则会返回此错误。 |
|
应为一个数组。 |
|
应为标量、向量或矩阵。 |
|
发生了决定性错误(如错误的观察)。 |
|
应为一个向量。 |
|
应为一个指定常量对象的 l 值。 |
|
矩阵乘法中出现错误。 |
|
数组的索引超出界限。 |
|
分析着色器文件时发现虚数平方根错误。 |
|
分析着色器文件时发现不确定的日志错误。 |
|
分析着色器文件时发现除数为零错误。 |
|
指定的变量不能声明为常量。 |
|
重新定义指定的正式参数时出错。 |
|
构造函数仅为数值基类型定义。 |
|
指定的变量必须是数值。 |
|
不能特定于目标。 |
|
不能有批注。 |
|
不支持编译器目标。 |
|
分析着色器文件时发现尚未实现的错误。 |
|
不能有语义。 |
|
缺少指定参数的默认值。 |
|
仅输出且无法初始化。 |
|
输出参数不能声明为常量。 |
|
指定的变量无法声明为统一变量。 |
|
指定了重复的用法。 |
|
不能特定于用法。 |
|
应为矩阵。 |
|
应为标量。 |
|
矢量维度必须介于 1 和 MAX_VECTOR_SIZE 之间。 |
|
矩阵维度必须介于 1 和 MAX_VECTOR_SIZE 之间。 |
|
指定的变量不能声明为共享变量。 |
|
指定的变量不能声明为内联变量。 |
|
指定的变量是文本表达式。 |
|
数组维度必须是文本标量表达式。 |
|
数组维度必须介于 1 到 65536 之间。 |
|
矢量维度必须是文本标量表达式。 |
|
矩阵维度必须是文本标量表达式。 |
|
指定的变量不能声明为“uniform out”。 |
|
指定的变量不能是采样器。 |
|
函数内不允许使用对象文本表达式。 |
|
函数内不允许分配对象。 |
|
应为采样器。 |
|
函数调用不明确。 |
|
函数的返回值与函数原型的返回值不同。 |
|
该函数已有正文。 |
|
分析不定反余弦时发现语法错误。 |
|
分析不定反正弦时发现了语法错误。 |
|
此类型的数组维度必须是显式的。 |
|
辅助数组维度必须是显式的。 |
|
隐式数组缺少值。 |
|
隐式数组类型不匹配。 |
|
void 函数不能附加语义。 |
|
非矩阵类型不能声明为 row_major 或 column_major。 |
|
在 for 循环作用域外部使用的循环控制变量与外部作用域中先前的声明冲突;使用了最新的定义。 |
|
Void 函数无法返回值。 |
|
该函数必须返回值。 |
|
在本应使用初始值设定项列表的地方使用了逗号表达式。 |
|
按位运算符需要 int 或 unsigned int 类型。 |
|
存在冲突的几何图形类型。 |
|
属性参数错误导致属性出错。 |
|
无符号类型不能用于此变量类型。 |
|
在严格模式下,特定语法(DirectX 9 语法)或关键字(pixelhader)已弃用。 |
|
对象没有方法。 |
|
对象没有指定的方法。 |
|
着色器目标或用法无效。 |
|
可写纹理、采样器或 UAV 不能成为具有接口继承的复合类型的成员。 |
|
仅允许在常量缓冲区中使用 Packoffset。 |
|
无符号值的一元否定仍为无符号值。 |
|
执行该操作时内存不足。 |
|
基类型不是结构、类或接口。 |
|
指定了多个具体基类型。 |
|
指定的变量不是模板类型。 |
|
指定的静态方法不能引用实例成员。 |
|
在类中找不到该方法。 |
|
不能对对象调用指定的静态方法。 |
|
在类中找不到指定的静态成员,或该静态成员不是静态变量。 |
|
声明类型与定义类型不同。 |
|
静态成员只能在全局范围内定义。 |
|
指定的变量已声明,但未定义。 |
|
接口不能包含数据。 |
|
接口方法不能是静态的。 |
|
接口方法不能在接口外声明。 |
|
接口无法从其他类型继承。 |
|
该类不实现指定的方法。 |
|
返回类型与重写的方法不匹配。 |
|
接口不能是成员。 |
|
类型不能包含其自身类型的成员。 |
|
不能对指定程序中的 switch 语句使用 call 或 forcecase 属性。 |
|
|
|
默认参数只能在第一个原型中提供。 |
|
指定的寄存器被多次使用。 |
|
API 调用无效。 |
|
调试信息标志只能全局设置。 |
|
接口只能是输入。 |
|
接口数组不能是多维数组。 |
|
指定的索引类型无效。 索引必须是维度数正确的标量或的向量。 |
|
索引表达式中应有数组、矩阵、向量或可索引对象类型。 |
|
矢量元素类型必须是标量类型。 |
|
矩阵元素类型必须是标量类型。 |
|
对象元素类型不能是对象类型。 |
|
.mips 类型只能在双元素索引表达式中使用,例如 .mips[mip][element]。 |
|
指定的方法与不匹配类中的任何原型。 |
|
无法重新声明指定的方法。 |
|
流参数只能是单元素类型。 |
|
警告被视为错误。 |
|
指定的变量不能声明为“单变量”。 |
|
静态接口不能有初始值设定项。 |
|
不能在缓冲区中声明接口。 |
|
不建议使用类型不匹配。 |
|
不建议使用片段。 |
|
语义不适用,已被忽略。 |
|
目的地与值之间出现有符号和无符号的不匹配,并假定无符号。 |
|
无符号整数文本太大,因此被截断。 |
|
在从较大类型转换为较小类型时,可能会丢失数据。 |
|
发生了向量类型的隐式截断。 |
|
初始值设定项被用于全局“const”变量。 这需要设置外部常量。 如果需要文本,请改用“static const”。 |
|
库函数的 10_level_9(9_x 功能级别)顶点着色器版本编译失败。 |
|
库函数的 10_level_9(9_x功能级别)像素着色器版本编译失败。 |
|
尚未实现特定表达式。 |
|
未找到入口点函数。 |
|
指定的输入参数缺少语义。 |
|
指定的输出参数或函数返回值缺少语义。 |
|
该数组的索引超出界限。 |
|
不再支持正在使用的版本;请改用当前版本。 |
|
无法识别编译器目标。 |
|
该类型无法返回值。 |
|
输出参数或返回值从未分配过值。 |
|
由于未将纹理坐标声明为至少一个浮点数,纹理样本被视为依赖项。 |
|
函数缺少实现。 |
|
循环无法展开,循环似乎无法(在指定的迭代次数中)及时终止,或者展开的循环太大。 使用[unroll(n)]属性强制输入一个精确的较大数字。 |
|
采样器数组的索引必须是文本表达式。 |
|
应为数组或特定数组维度。 |
|
指定的输入语义对几何着色器基元无效,它必须是自己的参数。 |
|
目标无效。 例如,用户定义的缓冲区不能特定于目标,而寄存器规范需要特定的绑定。 |
|
Texcube 指令不能有整数偏移量。 |
|
变量未定义。 |
|
中断必须位于循环内。 |
|
继续必须位于循环内。 |
|
纹理投影不能有 texcoord 指令。 |
|
纹理的返回类型太大。 它不能超过四个组件。 |
|
旧目标不支持纹理对象或流。 |
|
不在 DirectX 9 兼容模式下运行时,将禁用 DirectX 9 样式的内部函数。 |
|
指定的属性不能一起使用(如循环和展开),或提供了重复属性。 |
|
该循环无法映射到着色器目标,因为目标不支持中断。 |
|
渐变指令不能在带有中断的循环中使用。 |
|
纹理访问需要文本偏移量和多重采样索引。 |
|
流控制(分支)不能用于此配置文件。 |
|
在此特定情况下,无法通过流控制来平展。 |
|
执行了无效的绑定操作。 例如,缓冲区只能绑定到一个槽或一个常量偏移量;寄存器规范无效,因为预期的特定绑定未发生;不能在 cbuffer 中混合使用 packoffset 元素与非 packoffset 元素。 |
|
用 loop 属性标记的循环无法展开。 |
|
switch 语句中出现重复的默认或 case 语句。 |
|
非空 case 语句必须有中断或返回。 |
|
指定目标不支持部分精度。 最小精度类型可能提供类似的功能。 |
|
执行了不受支持的操作。 例如,旧目标不支持按位运算;CheckAccessFullyMapped 需要着色器模型 5 或更高版本;平铺资源的 TextureXxx 方法需要着色器模型 5 或更高版本。 |
|
使用“剪辑平面”属性时不能使用 SV_ClipDistance 语义,或复制的输入语义不能更改类型、大小或布局。 |
|
不支持 switch 语句中的 fall-through 现象。 如果case/default 语句在无中断的情况下顺序执行到下一个 case/default,则其中不能包含任何代码。 |
|
采样器参数必须来自文本表达式。 |
|
不再支持特定的着色器版本(例如 ps_1_x);在 fxc.exe HLSL 代码编译器中使用 /Gec 自动升级到下一个着色器版本(例如 ps_2_0);或者,fxc 的 /LD 选项允许使用以前的编译器 DLL。 |
|
不支持全局 packoffset 变量。 |
|
指定了无效的 packoffset 位置。 |
|
packoffset 变量不能有目标限定符。 |
|
该操作无法重新解释提供的数据类型。 |
|
指定的目标不支持抽象接口;接口引用必须解析到特定实例。 |
|
没有类实现指定的方法。 |
|
指定目标不支持从纹理缓冲区读取。 |
|
无法更改全局结构和类。 |
|
指定的 uint 只能用于已知正值,请尽可能使用 int。 |
|
互锁目标必须是 groupshared 或 UAV 元素。 或者,指定的目标不支持互锁操作,例如 IncrementCounter/DecrementCounter 只对 RWStructuredBuffer 对象有效。 |
|
采样器数组的索引必须是文本表达式,因此循环会强制展开。 |
|
检测到无限循环,因此循环不会写入任何值。 |
|
该循环无法映射到着色器目标,因为目标不支持中断。 |
|
不能在带中断的循环中使用渐变指令。 |
|
指定语句的属性未知或无效。 |
|
标志与操作不兼容。 |
|
整数除法可能要慢得多,请尽可能使用 uint。 |
|
该循环只执行有限数量的迭代或似乎不执行任何操作,因此可以考虑将其删除或强制展开。 |
|
#endif 指令未初始化。 |
|
循环以非对称方式返回。 |
|
包含超出界限的数组访问的 if 语句无法平展。 |
|
不再支持特定的着色器版本(如 ps_1_x);请使用下一个着色器版本(如 ps_2_0)。 |
|
循环模拟超出界限。 |
|
循环展开超出界限。 |
|
若要获得更好的编译结果,请考虑重新启用指定的规则。 |
|
循环模拟提前完成,使用 /O1 或更高版本可能获得更好的 codegen。 |
|
循环不会提前退出,请确保循环条件尽可能紧凑。 |
|
寄存器语义被忽略。 |
|
未知 pragma 指令被忽略。 |
|
循环执行次数超过了指定着色器目标的最大迭代次数,这会强制循环展开。 |
|
在具有不同迭代的循环中使用渐变指令,会强制循环展开。 |
|
pow(f, e) 内部函数对负值 f 不起作用。如果预计会出现负值,请使用 abs(f) 或有条件地处理它们。 |
|
接口引用必须解析为不可变对象。 |
|
细化因子的缩放被固定在 [0, 1] 范围。 |
|
线程同步操作不能用于不同的流控制。 |
|
循环已禁用自动展开,请考虑使用 [unroll] 属性或手动展开。 或者,不同流控制中的循环终止条件,因此不能依赖从 UAV 读取的数据。 |
|
修补语义必须位于封闭类型中,因此外部语义被忽略。 或者,类型中的语义被变量/函数或封闭类型重写。 |
|
该值不能是无穷大,可能不需要调用 isfinite。 /Gis 会强制执行 isfinite。 或者,该值不能为 NaN,不需要调用 isnan。 /Gis 会强制执行 isnan。 |
|
输出值未完全初始化。 |
|
指定的变量不支持组共享,因此忽略组共享。 |
|
&&、|| 或 ?: 运算符的两侧始终会计算,因此指定侧的副作用是无条件的。 |
|
对无符号值的 abs 运算没有意义,因此被忽略。 |
|
纹理访问必须具有文本偏移量和多重采样索引。 |
|
检测到写入共享资源的争用条件,请注意线程正在写入相同的值,但性能可能会因为争用而降低。 |
|
检测到写入共享内存的争用条件,请注意线程正在写入相同的值,但性能可能会因为争用而降低。 |
|
Source_mark 在 /Od 版本中最有用。 如果没有 /Od source_mark,可以通过优化在最终着色器中移动。 |
|
指定的目标不支持抽象接口,因此接口引用必须解析为特定实例。 |
|
目标使用 A * 倒数 (B) 模拟 A / B。 如果 B 的倒数在最小精度类型中不可表示,则结果可能在数学上不正确。 |
|
库函数中忽略“剪辑平面”属性。 |
|
DirectX 10+ 和 10_level_9(9_x 功能级别)目标不再支持“#pragma def”指令。 请使用兼容性模式以允许编译。 |
|
全局变量不能在指定的目标中使用“半”类型。 若要将此变量视为浮点数,请使用向后兼容性标志。 |
|
指定的目标不支持双精度数据类型值。 |
|
指定的目标不支持 8 位或 16 位整数。 |
|
指定的目标不支持 64 位整数。 |
|
不支持对无符号值执行 abs 运算。 |
|
线程组大小无效。 |
|
缺少线程组的大小。 |
|
预期指定的参数为某个值,但得到的是指定值。 或者,线形或三角形输出拓扑仅适用于等值线域。 或者,最大细化因子必须在 [1,64] 范围内。 |
|
只允许使用一个 InputPatch 或 OutputPatch 参数。 或者,InputPatch 输入只能在外壳和几何图形 (5_0+) 着色器中使用。 或者,OutputPatch 输入只能在域着色器和外壳着色器的修补常量函数中使用。 |
|
修补常量函数必须使用在控制点阶段声明的相同输入控制点类型。 或者,修补常量函数必须使用从控制点阶段返回的相同输出控制点类型。 或者,修补常量函数的输出修补程序输入应具有一定数量的元素,但却只有指定的数量。 |
|
指定的目标不支持互锁操作。 |
|
指定的变量不支持组共享。 |
|
渐变操作使用了可能未为所有像素定义的值(在指定的目标中,UAV 负载无法参与渐变操作)。 |
|
线程同步操作不能用于不同的流控制。 |
|
指定的目标不支持同步操作。 |
|
指定的目标不支持追加/使用缓冲区。 |
|
指定的目标不支持类型化 UAV。 |
|
指定的目标不支持 UAV。 |
|
指定的目标的组共享内存的存储必须仅以 SV_GroupIndex 进行索引。 |
|
索引的资源不能来自条件表达式,它们必须来自文本表达式。 |
|
流参数必须来自文本表达式。 |
|
不同流控制中的循环终止条件,因此不能依赖于从 UAV 读取的数据。 |
|
指定的目标不支持 pull-model 属性计算。 |
|
指定的目标不支持位置的 pull-model 计算。 |
|
只能对直接从输入获取的值执行属性计算。 |
|
不能在条件中使用超出界限的数组引用来展开循环。 |
|
仅支持单组件 32 位元素类型的类型化 UAV 负载。 |
|
指定的目标仅允许一个深度输出。 |
|
尚未实现包含 UAV 或组共享变量的接口可达成员。 |
|
globallycoherent 存储类只能与无序访问视图 (UAV) 缓冲区一起使用,不能与追加/使用缓冲区一起使用。 |
|
定义直通控制点着色器时,必须声明 InputPatch 对象,并且输出控制点数必须为零或与输入修补程序大小匹配。 |
|
指定的目标仅支持对标量 int 或 uint 数据执行互锁操作。 |
|
具有副作用的表达式作为属性参数时无效 |
|
组共享变量不能包含纹理、采样器或 UAV 等资源。 或者,纹理、采样器或 UAV 等资源不能包含其他资源。 |
|
指定的目标不支持双精度浮点。 或者,该操作不能直接用于资源。 或者,该操作不能与双精度值一起使用,请先强制转换为浮点。 或者,给定类型不支持该操作。 |
|
分割因子语义无序。 或者,冲突的 quad/tri/isoline 分割因子语义。 或者,分割因子语义必须位于同一组件中。 |
|
不支持指定的对象。 |
|
双精度类型不能用作着色器输入或输出。 如果需要在着色器阶段之间传递双精度值,则必须将其作为两个 uint 传递,并使用 asuint 和 asdouble 在不同窗体间转换。 |
|
尚未实现索引变量的派生。 |
|
分配的左侧不能强制转换为可索引对象,因此请考虑在右侧使用 asuint、asfloat 或 asdouble。 |
|
正在索引的资源未初始化。 |
|
静态变量初始值设定项中的变量引用无效。 局部变量不能用于初始化静态变量。 |
|
指定的目标不支持中止。 |
|
指定的目标不支持消息。 |
|
检测到写入共享资源的争用条件,因此请考虑将此操作设置为有写入条件。 |
|
检测到写入共享内存的争用条件,因此请考虑将此操作设置为有写入条件。 |
|
检测到无限循环,因此循环永远不会退出。 |
|
指定的变量与模板着色器中的变量匹配,但类型布局不匹配。 |
|
指定的资源与模板着色器存在绑定冲突。 |
|
占位符模板资源只能是简单的资源,因此不支持结构和数组。 |
|
对于指定的资源,模板着色器中不存在绑定。 |
|
指定的目标不支持索引资源。 |
|
fma 内部函数只能与双精度参数一起使用。 |
|
指定的目标不支持最小精度数据。 |
|
指定的目标不支持 16 位浮点转换。 |
|
包含副作用的 if 语句无法平展。 |
|
最小精度类型不支持有符号整数除法。 请强制转换为 int 以使用 32 位除法。 |
|
最小 8 位浮点值无效或不受支持。 |
|
在 switch 语句中不能使用 continue 语句。 |
|
不支持调试。 |
|
不支持指定的函数参数。 |
|
库函数参数和返回值的语义不能重复。 |
|
库函数仅支持像素着色器和顶点着色器。 |
|
无法为库指定入口点。 请使用导出关键字标记库入口点。 |
|
指定的变量声明为静态变量,而库尚不支持该变量。 |
|
指定的变量声明为 tbuffer,而库尚不支持该变量。 |
|
库中不支持类和接口。 |
|
双精度数据类型不能用作库函数输入或输出。 如需将双精度值传递给库函数,则必须将其作为两个 uint 传递,并使用 asuint 和 asdouble 在不同窗体间转换。 |
|
无法重载库入口点。 |
|
“resources_may_alias”选项仅适用于 cs_5_0+ 目标。 |
|
指定的变量未完全初始化就被使用。 |
|
中级预处理器表达式中出现了除以零的情况。 |
|
出现不定对数。 |
|
出现虚数平方根。 |
|
程序过于复杂,因为活动值比寄存器更多。 |
|
出现不定反正弦。 |
|
出现不定反余弦。 |
|
数组索引超出界限。 |
|
出现浮点除以零的情况。 |
|
出现整数除以零的情况。 |
|
出现无符号整数除以零的情况。 |
|
浮点值超出转换的整数范围。 |
|
浮点值超出转换的无符号整数范围。 |
|
发生不确定的导数计算。 |
|
不能在具有差异流控制的循环内进行渐变操作。 |
|
语义太长。 |
|
语义无效。 例如,SV_InstanceID 语义不能用于 10_level_9(9_x功能级别)目标,或不支持零字符语义。 |
|
同一变量不能绑定到同一常量库中的多个常量。 |
|
着色器在依赖性链中使用纹理寻址操作,该操作过于复杂,特定目标着色器模型无法处理。 |
|
发现多个变量具有相同的用户指定位置。 |
|
发现多个变量具有相同的用户指定位置。 |
|
派生是在定义派生之前使用的,因此请考虑将派生赋值移动到程序前面。 |
|
未在不同的流控制分支中定义派生,因此请考虑将派生赋值移动到任意流控制语句之前。 |
|
重新定义了派生,并且只能分配一次派生。 |
|
已知值的派生未实现。 |
|
无法计算指定值的派生值。 |
|
线程同步操作必须处于不可变的流控制中。 由于潜在的争用条件,此同步无效,因此请考虑在读取任何控制着色器执行的值后添加同步。 |
|
数组索引超出界限。 |
|
指定的变量具有最小精度类型,且无法标记为精确。 |
|
检测到无限循环,因此循环永远不会退出。 |
|
文本浮点值超出了转换的整数范围。 |
|
文本浮点值超出了转换的无符号整数范围。 |
|
可能出现了整数除以零的情况。 |
|
可能出现了无符号整数除以零的情况。 |
|
出现了虚数平方根运算。 |
|
出现了不定对数运算。 |
|
优化没有聚合。 |
|
基于渐变的操作必须移出流控制,防止出现分歧。 使用非渐变操作可以提高性能。 |
|
无法以双精度准确表示两个浮点值之和。 |
|
浮点运算会将非规格化的浮点文本刷新为零,因此指定的浮点值失去精度(每次编译只会显示一次该警告)。 |
|
尚未实现从重排矢量剪辑等功能。 |
|
出现不一致的语义定义。 |
|
指定的输入语义无效。 |
|
指定的输出语义无效。 |
|
输出语义发生重叠。 |
|
已超出最大临时寄存器索引。 |
|
已超过最大输入数。 |
|
已超出最大常量寄存器索引。 请尝试减少引用的常量数。 |
|
已超出最大地址寄存器索引。 |
|
使用了无效的寄存器语义,或变量必须绑定到多个寄存器库。 |
|
已超过采样器的最大数目。 |
|
目标不支持相对寻址。 |
|
无法访问纹理坐标 w 组件。 |
|
无法执行以任何方式基于颜色输入的依赖性纹理读取操作。 |
|
程序过大。 |
|
采样器无法绑定到用户指定的阶段或采样器数组。 |
|
无法从采样器中读取用作输入的纹理坐标。 |
|
用户定义的采样器或采样器数组绑定发生冲突。 如果两个采样器具有相同的用户绑定,则它们不能在同一着色器中使用。 |
|
无法从用户绑定或类似的数组访问采样器执行两次纹理查找。 |
|
从纹理坐标加载和读取纹理的次数过多。 |
|
只能从 ps_1_4 及更高版本中读取纹理坐标并用于 texlookup。 |
|
程序太复杂,且临时寄存器用完了。 |
|
仅在 ps_1_4 中支持复制重排。 |
|
此依赖性纹理读取无法映射到 ps_1_x,或者着色器无法编译为 ps_1_x 着色器,因为此模型无法匹配此着色器所需的的所有依赖性纹理读取。 |
|
着色器在使用计算的纹理坐标,因此无法匹配 texm。 |
|
源输入不在适当的纹理坐标中,因此无法匹配 texm*。 有关详细信息,请参阅 ps_1_x程序集引用。 |
|
texm* 在输入纹理坐标上不能有源修饰符,因此无法匹配 texm*。 |
|
texm* 只能在输入 texload 上具有 bx2 修饰符,因此 texm* 无法匹配。 |
|
DEPTH 必须为标量。 |
|
语义(SV_Target 或 COLOR)值必须为四分量向量。 |
|
像素着色器必须至少写入语义(SV_Target0 或 COLOR0)值的所有四个分量。 |
|
不支持 DP4。 |
|
无法将表达式映射到着色器指令集。 |
|
重排无法映射到 ps_1_x。 |
|
无法在 ps_1_x 中执行双依赖性纹理读取。 |
|
无法匹配 texreg2ar 或 texreg2gb 指令,因为不能使用输入修饰符。 |
|
表达式只能映射到 texreg2rgb,但 1_x 不支持此指令。 |
|
无法为 ps_1_x 着色器模型模拟写入掩码。 |
|
SV_Target输出必须从 SV_Target0 连续到 SV_TargetN,或者 COLOR 输出必须从 COLOR0 连续到 COLORn。 |
|
采样器的使用不一致,因此采样器不匹配。 |
|
PSIZE 或 FOG 必须为标量。 |
|
顶点着色器必须至少写入 SV_Position 或 POSITION 的所有四个分量。 |
|
从 texcoord0 到 texcoordn 的纹理坐标输出必须连续。 |
|
片段不支持多寄存器语义。 |
|
剪辑必须来自 ps_1_x 中的 3 个向量。 |
|
遇到了指定目标不支持的纹理类型。 |
|
已超出最大采样器寄存器索引。 |
|
调试信息超过了最大注释大小,因此未发出调试信息。 |
|
常量表信息超过了最大注释大小。 |
|
已超出最大谓词寄存器索引。 |
|
请尝试减少常量分支的数量,从结构/数组中取出布尔值,或将它们移到结构的开头。 |
|
请尝试减少循环数,从结构/数组中取出循环计数器,或将它们移到结构的开头。 |
|
常规循环无法映射到此指令集。 |
|
相对地址引用过深。 |
|
无法在 ps_1_x 着色器模型中模拟矢量条件。 |
|
对指定语义使用了无效类型。 |
|
超出了库的纹理槽最大数量。 |
|
偏移纹理指令必须采用偏移量,该偏移量可以解析为 -8 到 7 之间的整数文本。 |
|
超出了库的最大常量缓冲区槽数。 |
|
目标不支持该用法。 例如,可能不支持示例内插、非内插、非透视或整数输入用法。 |
|
为 POSITION 值指定了不正确的类型。 |
|
目标只能向一定数量的流发出内容。 |
|
超出了输出限制。 |
|
几何着色器未发出任何内容。 |
|
语义过长,被限制为指定的字符数。 |
|
出现了重复的系统值语义定义。 |
|
读取了未初始化的值。 |
|
签名验证期间发生错误。 |
|
并非所有 SV_Position 元素都已写入。 |
|
指定的 cbuffer 寄存器被多次使用。 |
|
出现无效的浮点文本。 |
|
指定的输出包含必须在着色器的每个执行路径中写入的系统解释值。 无条件初始化可能会有帮助。 |
|
尚未实现对 10_level_9(9_x特征级别)目标上的纹理对象使用采样器数组。 |
|
无法从非浮点纹理格式采样。 |
|
10_level_9(9_x功能级别)目标不支持指定的语义。 |
|
已超出接口指针的最大数目。 |
|
已超出库的 UAV 槽最大数目。 |
|
组共享内存的总量(以字节为单位)超过了目标的限制。 |
|
为指定目标编译的着色器只能有一个组共享数据项。 |
|
指定目标的组共享数据中的元素计数必须等于线程组中的线程数。 |
|
超出了目标的最大控制点计数 |
|
指定目标的组共享数据太大,并且在为指定线程数编译时,元素大小必须最多为指定字节数。 |
|
指定目标的组共享数据必须为元素数组。 |
|
使用多个几何着色器输出流时,它们必须是点列表。 |
|
目标的对齐偏移量必须在 -8 到 7 范围内。 |
|
无法在指定目标中寻址剪辑平面;或者,剪辑平面必须是非文本常量,且在指定目标中具有标识重排。 |
|
RWStructuredBuffer 对象可以递增或递减其计数器,但不能同时递增和递减。 |
|
类型化 UAV 存储必须写入所有声明的组件。 |
|
指定的目标不支持 Texture1D 类型。 |
|
TextureCubeArray 上的 GetDimensions 数组元素计数在指定目标上不可用。 |
|
结构化缓冲区元素大小无效。 它必须是指定目标中指定字节的倍数,或者不能大于指定目标中的指定字节。 |
|
已超出着色器的可索引文本值。 着色器使用了的可索引文本值过多,因此请考虑减少常量数组。 |
|
指定常量缓冲区的大小是指定的数字 16 字节条目,超过了允许的最大条目大小。 |
|
着色器库中不支持调试指令。 |
|
无法使用不同的值对接口调用编制索引。 |
|
尚未实现功能。 |
|
错过了 _bias 机会,因为源没有固定在 0 到 1。 |
|
错过了求补机会,因为输入结果被固定在 0 到 1。 |
|
无法匹配 Lerp,因为 lerp 因子不是 _sat。 |
|
范围 -1 到 1 之外的文本值被固定在所有 ps_1_x 着色模型上。 |
|
指定的输入语义已弃用;请改用指定的语义。 |
|
指定的输出语义已弃用;请改用指定的语义。 |
|
ps_1_x 着色器正文中直接使用的纹理坐标输入(即纹理采样以外的输入)始终固定在 0 到 1。 |
|
未找到中级 var。 |
|
该语义已不再使用。 |
|
出现重复的非系统值语义定义。 |
|
无法匹配循环,因为循环计数不是来自整数类型。 |
|
样本偏差值限制为 [-16.00, 15.99] 范围,因此请使用指定的值而不是该值。 |
|
临时寄存器和可索引临时寄存器的总和乘以指定的线程数,超过了建议的线程总数,因此性能可能会降低。 |
|
发出的系统解释值无法在着色器的每个执行路径中写入。 |
|
指定的语义对 10_level_9(9_x功能级别)目标没有特殊意义。 |
|
D3DCompiler_47.dll 或更高版本已弃用效果。 |
要求
要求 | 值 |
---|---|
标头 |
|
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈