GLSL: fix storage texture binding.

The binding number simply wasn't being emitted in Tint's GLSL backend.

Also change all the Emit*Variable() functions in GLSL's ASTPrinter
to take a sem::GlobalVariable, rather than taking a sem::Variable and
casting it back.

Bug: dawn:1692
Change-Id: Iab7742732b62be5b2714f9c31e1b2073117fb4b7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/197975
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.glsl
index ecbd64a..8de85f8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.glsl
@@ -7,7 +7,7 @@
   uint pad;
 } prevent_dce;
 
-layout(rgba32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_15aa17() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
@@ -28,7 +28,7 @@
   uint pad;
 } prevent_dce;
 
-layout(rgba32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 0, rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_15aa17() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;