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>2020-11-26 01:06:28 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2020-11-26 01:06:28 +0300
commitbe527632a6c80291ab012a79758e0e41224ad5e2 (patch)
tree361aa135fb5fc1b6bedce244de93bfa2654825ac
parent3d16060c3243e9f7bfd027de6e2e27c348d1791e (diff)
parentc80cbde7aaa4e53d2ebca671e29688cfd3ea0d19 (diff)
Merge branch 'unused' of git://github.com/comex/SPIRV-Cross
-rw-r--r--reference/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert9
-rw-r--r--shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert7
-rw-r--r--spirv_msl.cpp4
3 files changed, 18 insertions, 2 deletions
diff --git a/reference/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert b/reference/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert
new file mode 100644
index 00000000..9e024c20
--- /dev/null
+++ b/reference/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert
@@ -0,0 +1,9 @@
+#include <metal_stdlib>
+#include <simd/simd.h>
+
+using namespace metal;
+
+vertex void main0()
+{
+}
+
diff --git a/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert b/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert
new file mode 100644
index 00000000..4ec228df
--- /dev/null
+++ b/shaders-msl-no-opt/vert/unused-subgroup-builtin.msl22.vert
@@ -0,0 +1,7 @@
+#version 450
+#extension GL_KHR_shader_subgroup_ballot : require
+
+void main()
+{
+ gl_SubgroupEqMask;
+}
diff --git a/spirv_msl.cpp b/spirv_msl.cpp
index a74f62e0..a9ec650c 100644
--- a/spirv_msl.cpp
+++ b/spirv_msl.cpp
@@ -11052,7 +11052,7 @@ void CompilerMSL::fix_up_shader_inputs_outputs()
uint32_t var_id = var.self;
BuiltIn bi_type = ir.meta[var_id].decoration.builtin_type;
- if (var.storage == StorageClassInput && is_builtin_variable(var))
+ if (var.storage == StorageClassInput && is_builtin_variable(var) && active_input_builtins.get(bi_type))
{
switch (bi_type)
{
@@ -11518,7 +11518,7 @@ void CompilerMSL::fix_up_shader_inputs_outputs()
break;
}
}
- else if (var.storage == StorageClassOutput && is_builtin_variable(var))
+ else if (var.storage == StorageClassOutput && is_builtin_variable(var) && active_output_builtins.get(bi_type))
{
if (bi_type == BuiltInSampleMask && get_execution_model() == ExecutionModelFragment &&
msl_options.additional_fixed_sample_mask != 0xffffffff)