cb40008b43
SkVM implements switches as a pseudo-loop; breaks are handled with the condition mask just like a for loop. Fallthrough is handled via a scratch Value in a temporary slot. `writeStore` neeeded to be refactored to support writing into slot(s) without an associated Variable. At IR generation time, SwitchStatements are now emitted without error even in strict-ES2 mode. The GLSL code generator currently reports these as an error in strict-ES2 mode, but this will be fixed in a followup coming shortly (the switch will be rewritten as ifs inside a one-shot loop, similar to our IR-rewrite strategy). Change-Id: I5507257246c42a35d2f46b4b9a89492a5ffeff9b Bug: skia:12450 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451421 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com> Auto-Submit: John Stiles <johnstiles@google.com>
11 lines
220 B
Plaintext
11 lines
220 B
Plaintext
4 registers, 8 instructions:
|
|
0 r0 = uniform32 ptr0 4
|
|
1 r1 = uniform32 ptr0 8
|
|
2 r2 = uniform32 ptr0 C
|
|
3 r3 = uniform32 ptr0 10
|
|
loop:
|
|
4 store32 ptr1 r0
|
|
5 store32 ptr2 r1
|
|
6 store32 ptr3 r2
|
|
7 store32 ptr4 r3
|