skia2/resources/sksl/runtime/GlobalVariables.rte
Brian Osman fc4b9919d3 Force global initializers to be constant expressions
Prevents us from accepting code that can't be correctly transformed to
GLSL, like:

  uniform float x;
  float y = x;

(Previously, writing code like that in a runtime effect would
effectively produce the exact same code all the way through to GLSL, and
the driver would fail to compile it).

Bug: skia:11336
Change-Id: Iaa797587c4a4a7289ed59ce2736cf0bf0fc5bca3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/384698
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-03-15 16:54:05 +00:00

15 lines
298 B
Plaintext

/*#pragma settings NoInline*/
const float gInitialized = -1.0;
float gInitializedFromOther = -gInitialized;
float gUninitialized;
void init_globals() {
gUninitialized = gInitialized + 2;
}
float4 main() {
init_globals();
return float4(0, gInitializedFromOther, 0, gUninitialized);
}