diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-05-07 13:28:08 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-05-07 13:59:47 +0300 |
commit | e47a30e807990c6fe1998c9c4f291d825f043557 (patch) | |
tree | d795231de807b3489b3b70dde421f9d3689ceb97 /reference/shaders | |
parent | 0eeaffe048b91af45eb289b6934e222bf8ab8ae0 (diff) |
Honor NoContraction qualifier.
We'll need to force a temporary and mark it as precise.
MSL is a little weird here, but we can piggyback on top of the invariant
float math option here to force fma() operations everywhere.
Diffstat (limited to 'reference/shaders')
-rw-r--r-- | reference/shaders/vert/no-contraction.vert | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/reference/shaders/vert/no-contraction.vert b/reference/shaders/vert/no-contraction.vert new file mode 100644 index 00000000..83e392c6 --- /dev/null +++ b/reference/shaders/vert/no-contraction.vert @@ -0,0 +1,24 @@ +#version 450 + +layout(location = 0) in vec4 vA; +layout(location = 1) in vec4 vB; +layout(location = 2) in vec4 vC; + +void main() +{ + precise vec4 _15 = vA * vB; + vec4 mul = _15; + precise vec4 _19 = vA + vB; + vec4 add = _19; + precise vec4 _23 = vA - vB; + vec4 sub = _23; + precise vec4 _27 = vA * vB; + precise vec4 _30 = _27 + vC; + vec4 mad = _30; + precise vec4 _34 = mul + add; + precise vec4 _36 = _34 + sub; + precise vec4 _38 = _36 + mad; + vec4 summed = _38; + gl_Position = summed; +} + |