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>2019-07-01 11:57:27 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2019-07-01 11:57:27 +0300
commitf8b084de61523957546429c627950adf1803afc3 (patch)
tree5ce3b6cae700daed5c2405d7ea9f8adcf713cc53 /reference/opt/shaders/comp
parent04e29895a36b973652aa13c9e17fa6d637ae3f72 (diff)
MSL/HLSL: Support OpOuterProduct.
Diffstat (limited to 'reference/opt/shaders/comp')
-rw-r--r--reference/opt/shaders/comp/outer-product.comp36
1 files changed, 36 insertions, 0 deletions
diff --git a/reference/opt/shaders/comp/outer-product.comp b/reference/opt/shaders/comp/outer-product.comp
new file mode 100644
index 00000000..d31dad3b
--- /dev/null
+++ b/reference/opt/shaders/comp/outer-product.comp
@@ -0,0 +1,36 @@
+#version 450
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+
+layout(binding = 0, std430) writeonly buffer SSBO
+{
+ mat2 m22;
+ mat2x3 m23;
+ mat2x4 m24;
+ mat3x2 m32;
+ mat3 m33;
+ mat3x4 m34;
+ mat4x2 m42;
+ mat4x3 m43;
+ mat4 m44;
+} _21;
+
+layout(binding = 1, std430) readonly buffer ReadSSBO
+{
+ vec2 v2;
+ vec3 v3;
+ vec4 v4;
+} _26;
+
+void main()
+{
+ _21.m22 = outerProduct(_26.v2, _26.v2);
+ _21.m23 = outerProduct(_26.v3, _26.v2);
+ _21.m24 = outerProduct(_26.v4, _26.v2);
+ _21.m32 = outerProduct(_26.v2, _26.v3);
+ _21.m33 = outerProduct(_26.v3, _26.v3);
+ _21.m34 = outerProduct(_26.v4, _26.v3);
+ _21.m42 = outerProduct(_26.v2, _26.v4);
+ _21.m43 = outerProduct(_26.v3, _26.v4);
+ _21.m44 = outerProduct(_26.v4, _26.v4);
+}
+