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:
authorBill Hollings <bill.hollings@brenwill.com>2021-09-12 23:28:21 +0300
committerBill Hollings <bill.hollings@brenwill.com>2021-09-12 23:28:21 +0300
commit35e92e6ffb1a762700190fbf1ca55bc2b1debaff (patch)
tree11187f3fe77173df40182dde8f664ce8c25dc82b /reference/opt
parentc2500e504d2b823d73d2f129e4f4f050e9618ecb (diff)
MSL: Return fragment function value even when last SPIR-V Op is discard (OpKill).
Add test shader for new functionality. Add legacy test reference shader for unrelated buffer-bitcast test, that doesn't seem to have been added previously.
Diffstat (limited to 'reference/opt')
-rw-r--r--reference/opt/shaders-msl/frag/return-value-after-discard-terminator.frag25
-rw-r--r--reference/opt/shaders/vulkan/comp/buffer-reference-bitcast-uvec2-2.nocompat.invalid.vk.comp.vk22
2 files changed, 47 insertions, 0 deletions
diff --git a/reference/opt/shaders-msl/frag/return-value-after-discard-terminator.frag b/reference/opt/shaders-msl/frag/return-value-after-discard-terminator.frag
new file mode 100644
index 00000000..92097dfa
--- /dev/null
+++ b/reference/opt/shaders-msl/frag/return-value-after-discard-terminator.frag
@@ -0,0 +1,25 @@
+#include <metal_stdlib>
+#include <simd/simd.h>
+
+using namespace metal;
+
+struct buff_t
+{
+ int m0[1024];
+};
+
+struct main0_out
+{
+ float4 frag_clr [[color(0)]];
+};
+
+fragment main0_out main0(device buff_t& buff [[buffer(0)]], float4 gl_FragCoord [[position]])
+{
+ main0_out out = {};
+ int4 _16 = int4(gl_FragCoord);
+ out.frag_clr = float4(0.0, 0.0, 1.0, 1.0);
+ buff.m0[(_16.y * 32) + _16.x] = 1;
+ discard_fragment();
+ return out;
+}
+
diff --git a/reference/opt/shaders/vulkan/comp/buffer-reference-bitcast-uvec2-2.nocompat.invalid.vk.comp.vk b/reference/opt/shaders/vulkan/comp/buffer-reference-bitcast-uvec2-2.nocompat.invalid.vk.comp.vk
new file mode 100644
index 00000000..53c3d21c
--- /dev/null
+++ b/reference/opt/shaders/vulkan/comp/buffer-reference-bitcast-uvec2-2.nocompat.invalid.vk.comp.vk
@@ -0,0 +1,22 @@
+#version 450
+#extension GL_EXT_buffer_reference : require
+#extension GL_EXT_buffer_reference_uvec2 : require
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+
+layout(buffer_reference) buffer PtrInt;
+layout(buffer_reference, std430) buffer PtrInt
+{
+ int value;
+};
+
+layout(set = 0, binding = 0, std430) buffer Buf
+{
+ uvec2 ptr;
+ PtrInt ptrint;
+} _13;
+
+void main()
+{
+ _13.ptr = uvec2(_13.ptrint);
+}
+