graphite: Fixes for enabling storage buffers for Dawn backend

Misc fixes for enabling storage buffers for the Dawn backend:

1) Correct binding types in the BindGroupLayout based on whether storage
   buffers will be used (Caps::storageBufferPreferred).

2) Use the correct type of buffer (storage or uniform) for unused
   bindings instead of the intrinsics uniform buffer. These are created
   during initialization and cached in DawnCommandBuffer.

3) Specify readonly attribute for render step and paint param storage
   buffer bindings. For render step bindings this is required since WGSL
   requires vertex stage bindings to be read only. For paint params this
   is not required but still good to specify since that's how it's used.

Note that this CL doesn't enable storage buffers just yet - that will
happen in a follow-up CL to minimize any revert-reland churn.

Bug: b/309013541
Change-Id: I66f98c3f0f2e52f4b6bd9c36f69610da9cf4a9c5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/774436
Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
4 files changed