PixelShaderGen: Use bitwise AND for wrapping indirect texture coordinates

(x % y) is not defined in GLSL when sign(x) != sign(y).
This also has the added benefit of behaving the same as sampler wrapping modes, in regards to negative inputs.
This commit is contained in:
Stenzek 2016-01-14 01:57:01 +10:00
parent 87464d432b
commit edebadc093
2 changed files with 7 additions and 7 deletions

View file

@ -374,15 +374,15 @@ static inline s32 WrapIndirectCoord(s32 coord, int wrapMode)
case ITW_OFF:
return coord;
case ITW_256:
return (coord % (256 << 7));
return (coord & ((256 << 7) - 1));
case ITW_128:
return (coord % (128 << 7));
return (coord & ((128 << 7) - 1));
case ITW_64:
return (coord % (64 << 7));
return (coord & ((64 << 7) - 1));
case ITW_32:
return (coord % (32 << 7));
return (coord & ((32 << 7) - 1));
case ITW_16:
return (coord % (16 << 7));
return (coord & ((16 << 7) - 1));
case ITW_0:
return 0;
default: