Represent matrix casts with CompositeCast type.

Vector and matrix typecasting is mechanically very similar, so it makes
sense to represent these with a single constructor type and paper over
the tiny differences in each backend. (SPIR-V in particular needs a
separate path for matrix casting versus vector casting.)

Change-Id: Id9ea7ca6297e69b3e813c69bfdc56073b50d8d89
Bug: skia:11032
Reviewed-by: Brian Osman <>
Commit-Queue: John Stiles <>
Auto-Submit: John Stiles <>
19 files changed