Reject function out-parameters if they are opaque.

GLSL lets you pass opaque objects to functions, but it's not legal to
make them out-parameters. Previously, we silently allowed this, but it
would generate invalid GLSL.

(I noticed this while working on readonly/writeonly; originally it was
proposed to use in/out modifiers to stand in for readonly/writeonly,
but I realized that these modifiers were already allowed today even
though they were broken.)

Change-Id: Iaa86f239048575ded5a09de72f98feab22c2dbe8
Bug: skia:13609
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/565009
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
4 files changed