Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2021-05-07 13:28:08 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2021-05-07 13:59:47 +0300
commite47a30e807990c6fe1998c9c4f291d825f043557 (patch)
treed795231de807b3489b3b70dde421f9d3689ceb97 /reference/shaders
parent0eeaffe048b91af45eb289b6934e222bf8ab8ae0 (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.vert24
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;
+}
+