skia2/resources/sksl
John Stiles 23d8f94535 Fix array-of-matrix/struct comparisons in Metal.
Metal needs helper functions in order to compare arrays, structs, and
matrices. Depending on the input code, it was possible for the
array-comparison helper to be emitted before a matrix-comparison
or struct-comparison helper. If this occurred, array comparisons of that
matrix or struct type would fail, because the operator== for the array's
inner type was defined after array==, and Metal (like C++) parses
top-to-bottom and only considers functions declared above the current
function.

We now emit prototypes for all the array, struct and matrix helper
function. These prototypes are emitted above any helper functions. This
ensures visibility no matter how your comparisons are organized.

Change-Id: Ib3d8828c301fd0fa6c209788f9ea60800371edbe
Bug: skia:12326
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437739
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-08-10 13:49:27 +00:00
..
blend Remove SkBlendMode from SkSL 2021-06-16 21:01:30 +00:00
errors Fix fuzzer-discovered error with SPIR-V interface arrays. 2021-08-05 21:44:16 +00:00
folding Enforce consistency in swizzle domains. 2021-07-09 20:30:22 +00:00
glsl Remove usage of sqrt() as an optimization barrier in tests. 2021-05-24 17:18:54 +00:00
inliner Remove enum support from SkSL 2021-07-09 14:03:15 +00:00
intrinsics Implement compile-time optimization for mix(). 2021-06-01 19:36:05 +00:00
metal Enable proper testing of matrix-scalar ops. 2021-05-17 17:36:22 +00:00
runtime Add unit test for array narrowing conversions. 2021-08-06 13:05:35 +00:00
runtime_errors Add improved regression test for oss-fuzz:36655. 2021-08-06 13:03:32 +00:00
shared Fix array-of-matrix/struct comparisons in Metal. 2021-08-10 13:49:27 +00:00
spirv Enable proper testing of matrix-scalar ops. 2021-05-17 17:36:22 +00:00
workarounds Add a workaround for "ldexp(..., -x)" on Mac/Radeon/GLSL 2021-06-08 01:39:38 +00:00
README.txt Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00

This directory contains source files for testing skslc compilation.
The compiled output files are in the /tests/sksl/ directory.