HLSL: Fix #1960: fmod() was not converting int args to float.

This commit is contained in:
John Kessenich 2019-11-12 05:32:51 -07:00
parent f34cdc70ca
commit e7cb9cb9c4
3 changed files with 6086 additions and 6065 deletions

File diff suppressed because it is too large Load Diff

1
Test/hlsl.intrinsics.frag Normal file → Executable file
View File

@ -53,6 +53,7 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, int in
float r031 = floor(inF0); float r031 = floor(inF0);
// TODO: fma(inD0, inD1, inD2); // TODO: fma(inD0, inD1, inD2);
float r033 = fmod(inF0, inF1); float r033 = fmod(inF0, inF1);
float r033i = fmod(inF0, 2);
float r034 = frac(inF0); float r034 = frac(inF0);
float r036 = fwidth(inF0); float r036 = fwidth(inF0);
bool r037 = isinf(inF0); bool r037 = isinf(inF0);

1
glslang/MachineIndependent/Intermediate.cpp Normal file → Executable file
View File

@ -1129,6 +1129,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
case EOpLit: case EOpLit:
case EOpMax: case EOpMax:
case EOpMin: case EOpMin:
case EOpMod:
case EOpModf: case EOpModf:
case EOpPow: case EOpPow:
case EOpReflect: case EOpReflect: