glslang/Test/hlsl.promote.binary.frag
steve-lunarg e5921f1309 HLSL: Fix unary and binary operator type conversion issues
This fixes defects as follows:

1. handleLvalue could be called on a non-L-value, and it shouldn't be.

2. HLSL allows unary negation on non-bool values.  TUnaryOperator::promote
   can now promote other types (e.g, int, float) to bool for this op.

3. HLSL allows binary logical operations (&&, ||) on arbitrary types, similar
   (2).

4. HLSL allows mod operation on arbitrary types, which will be promoted.
   E.g, int % float -> float % float.
2016-10-18 16:56:37 -06:00

29 lines
381 B
GLSL

struct PS_OUTPUT
{
float4 Color : SV_Target0;
};
uniform bool bval;
uniform bool4 bval4;
uniform int ival;
uniform int4 ival4;
uniform float fval;
uniform float4 fval4;
PS_OUTPUT main()
{
ival % fval;
ival4 % fval4;
bval % fval;
bval4 % fval4;
int l_int = 1;
l_int %= fval;
PS_OUTPUT psout;
psout.Color = 0;
return psout;
}