-
Notifications
You must be signed in to change notification settings - Fork 812
Open
Labels
Description
Description
Following simple compute shader fails to compile:
struct MyFloat {
float Value;
MyFloat operator-() {
MyFloat Result;
Result.Value = -Value;
return Result;
}
};
RWByteAddressBuffer Buf : register(u0);
[numthreads(1, 1, 1)]
void mainCS(uint3 dtid: SV_DispatchThreadID) {
MyFloat f1;
f1.Value = 1.0;
MyFloat f2 = -f1;
Buf.Store<float>(0, f2.Value);
}
Steps to Reproduce
Compile the shader with command line:
dxc.exe -T cs_6_0 -E mainCS -Fo MyCS.dxil MyCS.hlsl
Actual Behavior
MyCS.hlsl:14:18: error: scalar, vector, or matrix expected
MyFloat f2 = -f1;
^
It seems that overloading unary operators +MyVar, -MyVar doesn't work. I understand this, but I think in this case it would be better if the compiler reported an error while the operator is defined, not only when I try to actually use it.
Environment
- DXC version:
dxcompiler.dll: 1.8 - 1.8.2502.11 (239921522); dxil.dll: 1.8(1.8.2502.11), as bundled in Windows SDK 10.0.26100.0. - Host Operating System: Windows 11 x86-64 25H2 (OS Build 26200.7171)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
No status