skia2/tests/sksl/shared/StructMaxDepth.metal
John Stiles e7a9535247 Enforce basic limits on global size in SkSL.
Much like http://review.skia.org/467759, this CL defensively guards
against programs which consume more space than is reasonable. Globals
exist outside of functions, so they wouldn't be caught by the stack size
checks.

Change-Id: I035f27d57bc329508820a729a1e367ecaadfe156
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/467760
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-11-04 18:34:19 +00:00

59 lines
677 B
Metal

#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct S1 {
int x;
};
struct S2 {
S1 x;
};
struct S3 {
S2 x;
};
struct S4 {
S3 x;
};
struct S5 {
S4 x;
};
struct S6 {
S5 x;
};
struct S7 {
S6 x;
};
struct S8 {
S7 x;
};
struct SA1 {
array<int, 2> x;
};
struct SA2 {
array<SA1, 2> x;
};
struct SA3 {
array<SA2, 2> x;
};
struct SA4 {
array<SA3, 2> x;
};
struct SA5 {
array<SA4, 2> x;
};
struct SA6 {
array<SA5, 2> x;
};
struct SA7 {
array<SA6, 2> x;
};
struct SA8 {
array<SA7, 2> x;
};
struct Inputs {
S8 s8;
array<SA8, 2> sa8;
};
struct Outputs {
half4 sk_FragColor [[color(0)]];
};