4cf85073e6
Unsized arrays are now allowed in exactly one place: On the declaration of an interface block. This satisfies the one existing use-case, which is the gl_in (sk_in) declaration for geometry shaders. There is no other useful scenario, and most of our backends don't support them anyway. Several spots were using less strict checks when attaching sizes to arrays, allowing for zero or negative-sized arrays, so those are all fixed now. The existing tests that initialize arrays are still a problem, because Metal doesn't support that (neither does GLES2). Also, ArrayConstructors has gone from generating an error in the Vulkan backend, to invalid SPIR-V. Bug: skia:11013 Bug: skia:11127 Change-Id: Ib08dfe9aeec96bf605661665d6f166419d27e8bc Reviewed-on: https://skia-review.googlesource.com/c/skia/+/353817 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: John Stiles <johnstiles@google.com>
6 lines
117 B
Plaintext
6 lines
117 B
Plaintext
in int arrUnsized[];
|
|
in int arrFloat[1.];
|
|
in int arrBool[true];
|
|
|
|
int unsized_in_expression() { return int[](0)[0]; }
|