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/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert')
-rw-r--r--reference/opt/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert43
1 files changed, 42 insertions, 1 deletions
diff --git a/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert b/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert
index 3142d14c..463ecc87 100644
--- a/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert
+++ b/reference/opt/shaders-msl/masking/write-outputs.mask-point-size.for-tess.vert
@@ -1,14 +1,55 @@
+#pragma clang diagnostic ignored "-Wmissing-prototypes"
+#pragma clang diagnostic ignored "-Wmissing-braces"
+
#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
+template<typename T, size_t Num>
+struct spvUnsafeArray
+{
+ T elements[Num ? Num : 1];
+
+ thread T& operator [] (size_t pos) thread
+ {
+ return elements[pos];
+ }
+ constexpr const thread T& operator [] (size_t pos) const thread
+ {
+ return elements[pos];
+ }
+
+ device T& operator [] (size_t pos) device
+ {
+ return elements[pos];
+ }
+ constexpr const device T& operator [] (size_t pos) const device
+ {
+ return elements[pos];
+ }
+
+ constexpr const constant T& operator [] (size_t pos) const constant
+ {
+ return elements[pos];
+ }
+
+ threadgroup T& operator [] (size_t pos) threadgroup
+ {
+ return elements[pos];
+ }
+ constexpr const threadgroup T& operator [] (size_t pos) const threadgroup
+ {
+ return elements[pos];
+ }
+};
+
struct main0_out
{
float4 v0;
float4 v1;
float4 gl_Position;
- float gl_ClipDistance[2];
+ spvUnsafeArray<float, 2> gl_ClipDistance;
};
kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]])