Add dedicated texture2D types for each access level.

This CL removes support in MetalCodeGenerator for using modifiers to
specify texture access-levels, and instead uses the TextureAccess
value from the type. This affects all of the existing compute tests,
which now use the dedicated types like `readonlyTexture2D` instead of
using modifiers like `readonly texture2D`.

A followup CL will restore the tests to their original state, by
allowing the `readonly` and `writeonly` modifiers to apply to the
final type. This will function similarly to `applyPrecisionQualifiers`,
which converts the type/modifier combination of `mediump float` into
`half` at compile time.

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