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-08-23 12:29:01 +0300
committerGitHub <noreply@github.com>2021-08-23 12:29:01 +0300
commitfad15907867d23d5b06a8f65d4428c2885a5e8b5 (patch)
tree9dcdf4d2049f6f692a4a9d86dd640995faf58577 /reference/opt/shaders-msl
parent27e7abeab15e2f76dfe1bce8cef242c1fa2b110b (diff)
parent9552ca5473a12d87dfdb3e35327816d8648c7db0 (diff)
Merge pull request #1722 from billhollings/row-maj-mtx-store-from-const
MSL: Support row-major transpose when storing matrix from constant RHS matrix.
Diffstat (limited to 'reference/opt/shaders-msl')
-rw-r--r--reference/opt/shaders-msl/comp/mat3-row-maj-read-write-const.comp21
1 files changed, 21 insertions, 0 deletions
diff --git a/reference/opt/shaders-msl/comp/mat3-row-maj-read-write-const.comp b/reference/opt/shaders-msl/comp/mat3-row-maj-read-write-const.comp
new file mode 100644
index 00000000..47c83afe
--- /dev/null
+++ b/reference/opt/shaders-msl/comp/mat3-row-maj-read-write-const.comp
@@ -0,0 +1,21 @@
+#include <metal_stdlib>
+#include <simd/simd.h>
+
+using namespace metal;
+
+struct model_t
+{
+ float3x3 mtx_rm;
+};
+
+constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u);
+
+kernel void main0(device model_t& model [[buffer(0)]])
+{
+ float _38 = (transpose(model.mtx_rm) * float3x3(float3(4.0, -3.0, 1.0), float3(-7.0, 7.0, -7.0), float3(-5.0, 6.0, -8.0)))[0].x;
+ if ((isunordered(_38, 0.0) || _38 != 0.0))
+ {
+ model.mtx_rm = transpose(float3x3(float3(-5.0, -3.0, -5.0), float3(-2.0, 2.0, -5.0), float3(6.0, 3.0, -8.0)));
+ }
+}
+