【发布时间】:2022-02-03 06:19:39
【问题描述】:
我正在研究光线追踪像素着色器,但遇到了一个奇怪的错误。我编写以下代码只是为了生成错误,这毫无意义,但我无法弄清楚它有什么问题。
float4 main(/*Any input*/) : SV_TARGET
{
uint uints[2];
float4 light[2];
uints[0] = 0;
uints[1] = 0;
uint c = 1;
[loop] while (c > 0) {
if (uints[c] == 0)
light[c - 1] = 0.0f;
else
light[c - 1] = 0.0f;
c--;
break;
}
return light[0];
}
使用着色器模型 5_0 编译时(有和没有优化)我得到以下错误:
error MSB6006: "fxc.exe" exited with code -1073741819
对代码做一些看似毫无意义的事情,比如删除c--;,可以消除错误。谁能弄清楚这个奇怪的错误是从哪里来的?
【问题讨论】:
-
您使用的是哪个版本的 FXC.EXE?尝试直接从命令行编译以查看更好的诊断。如果您上面的代码 sn-p 是可构建的,但您没有包含您对
PS_INPUT的定义,这也会有所帮助。 -
@ChuckWalbourn 我正在使用来自最新 Windows 10 SDK (10.0.19041.0) (x64) 的 fxc.exe。据我所知,输入无关紧要。我也得到了没有任何输入的错误。
标签: hlsl pixel-shader