diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2019-07-01 11:57:27 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2019-07-01 11:57:27 +0300 |
commit | f8b084de61523957546429c627950adf1803afc3 (patch) | |
tree | 5ce3b6cae700daed5c2405d7ea9f8adcf713cc53 /reference/opt/shaders/comp | |
parent | 04e29895a36b973652aa13c9e17fa6d637ae3f72 (diff) |
MSL/HLSL: Support OpOuterProduct.
Diffstat (limited to 'reference/opt/shaders/comp')
-rw-r--r-- | reference/opt/shaders/comp/outer-product.comp | 36 |
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); +} + |