Hi! I have a legacy question about HLSL SM 3.0 half versus float. I know that in the ps_5_0 profile, half is just a 'typedef' of float and the GPUs generally aren't required to support half-precision ALU.
However when I run this simple shader:
float x;
float4 main() : COLOR0
{
half y = x * 0.125; // <- "TYPECAST" HERE
return float4(y, y, y, y);
}
through fxc.exe /T ps_3_0, it generates a "mul_pp" DXBC instruction, whereas with floats only, it generates "mul".
What is the driver going to do with it? I reckon it won't honour this and just use single-precision floats everywhere. Do desktop SM 3.0 GPUs even support half-precision ALU?
Thanks!