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:
Diffstat (limited to 'reference/opt')
-rw-r--r--reference/opt/shaders-hlsl/asm/frag/pass-by-value.asm.frag24
-rw-r--r--reference/opt/shaders-msl/asm/frag/pass-by-value.asm.frag22
-rw-r--r--reference/opt/shaders/asm/frag/pass-by-value.asm.frag16
3 files changed, 62 insertions, 0 deletions
diff --git a/reference/opt/shaders-hlsl/asm/frag/pass-by-value.asm.frag b/reference/opt/shaders-hlsl/asm/frag/pass-by-value.asm.frag
new file mode 100644
index 00000000..4fe2a197
--- /dev/null
+++ b/reference/opt/shaders-hlsl/asm/frag/pass-by-value.asm.frag
@@ -0,0 +1,24 @@
+cbuffer registers
+{
+ float registers_foo : packoffset(c0);
+};
+
+static float FragColor;
+
+struct SPIRV_Cross_Output
+{
+ float FragColor : SV_Target0;
+};
+
+void frag_main()
+{
+ FragColor = 10.0f + registers_foo;
+}
+
+SPIRV_Cross_Output main()
+{
+ frag_main();
+ SPIRV_Cross_Output stage_output;
+ stage_output.FragColor = FragColor;
+ return stage_output;
+}
diff --git a/reference/opt/shaders-msl/asm/frag/pass-by-value.asm.frag b/reference/opt/shaders-msl/asm/frag/pass-by-value.asm.frag
new file mode 100644
index 00000000..3858f6da
--- /dev/null
+++ b/reference/opt/shaders-msl/asm/frag/pass-by-value.asm.frag
@@ -0,0 +1,22 @@
+#include <metal_stdlib>
+#include <simd/simd.h>
+
+using namespace metal;
+
+struct Registers
+{
+ float foo;
+};
+
+struct main0_out
+{
+ float FragColor [[color(0)]];
+};
+
+fragment main0_out main0(constant Registers& registers [[buffer(0)]])
+{
+ main0_out out = {};
+ out.FragColor = 10.0 + registers.foo;
+ return out;
+}
+
diff --git a/reference/opt/shaders/asm/frag/pass-by-value.asm.frag b/reference/opt/shaders/asm/frag/pass-by-value.asm.frag
new file mode 100644
index 00000000..fbbfe18b
--- /dev/null
+++ b/reference/opt/shaders/asm/frag/pass-by-value.asm.frag
@@ -0,0 +1,16 @@
+#version 450
+
+struct Registers
+{
+ float foo;
+};
+
+uniform Registers registers;
+
+layout(location = 0) out float FragColor;
+
+void main()
+{
+ FragColor = 10.0 + registers.foo;
+}
+