[tint][ir] Cleanup usage of ValidateBindingOptions

Move callsite from Generate to CanGenerate for spirv backend. Actually
call the function for the glsl and hlsl backends. Additional cleanup
of strings and how results are handled as needed.

Significant rework of glsl's version to account for texture/sampler
pairs being allowed.

Updated GLSL binding generation to avoid duplicates from WGSL bindings
in different groups.

Fixes: 423933058, 423917906
Change-Id: I34a83975d39cfe8757380a275b8d986e41be96da
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/246214
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
diff --git a/src/tint/lang/glsl/writer/BUILD.bazel b/src/tint/lang/glsl/writer/BUILD.bazel
index e01095b..390752a 100644
--- a/src/tint/lang/glsl/writer/BUILD.bazel
+++ b/src/tint/lang/glsl/writer/BUILD.bazel
@@ -50,6 +50,7 @@
     "//src/tint/lang/core/constant",
     "//src/tint/lang/core/intrinsic",
     "//src/tint/lang/core/ir",
+    "//src/tint/lang/core/ir/transform",
     "//src/tint/lang/core/type",
     "//src/tint/utils",
     "//src/tint/utils/containers",
diff --git a/src/tint/lang/glsl/writer/BUILD.cmake b/src/tint/lang/glsl/writer/BUILD.cmake
index 3e8277e..d0a3d9b 100644
--- a/src/tint/lang/glsl/writer/BUILD.cmake
+++ b/src/tint/lang/glsl/writer/BUILD.cmake
@@ -56,6 +56,7 @@
   tint_lang_core_constant
   tint_lang_core_intrinsic
   tint_lang_core_ir
+  tint_lang_core_ir_transform
   tint_lang_core_type
   tint_utils
   tint_utils_containers
diff --git a/src/tint/lang/glsl/writer/BUILD.gn b/src/tint/lang/glsl/writer/BUILD.gn
index 9afdceb..4db45b1 100644
--- a/src/tint/lang/glsl/writer/BUILD.gn
+++ b/src/tint/lang/glsl/writer/BUILD.gn
@@ -55,6 +55,7 @@
       "${tint_src_dir}/lang/core/constant",
       "${tint_src_dir}/lang/core/intrinsic",
       "${tint_src_dir}/lang/core/ir",
+      "${tint_src_dir}/lang/core/ir/transform",
       "${tint_src_dir}/lang/core/type",
       "${tint_src_dir}/utils",
       "${tint_src_dir}/utils/containers",
diff --git a/src/tint/lang/glsl/writer/common/option_helpers.cc b/src/tint/lang/glsl/writer/common/option_helpers.cc
index 50b2a20..1cc1780 100644
--- a/src/tint/lang/glsl/writer/common/option_helpers.cc
+++ b/src/tint/lang/glsl/writer/common/option_helpers.cc
@@ -30,81 +30,135 @@
 #include <utility>
 
 #include "src/tint/utils/containers/hashmap.h"
+#include "src/tint/utils/diagnostic/diagnostic.h"
 
 namespace tint::glsl::writer {
 
-diag::Result<SuccessType> ValidateBindingOptions(const Options& options) {
+namespace {
+
+enum class BindingType : uint8_t {
+    kUniform,
+    kStorage,
+    kSampler,
+    kTexture,
+    kStorageTexture,
+    kExternalTexture
+};
+
+std::string_view ToString(BindingType value) {
+    switch (value) {
+        case BindingType::kUniform:
+            return "uniform";
+        case BindingType::kStorage:
+            return "storage";
+        case BindingType::kSampler:
+            return "sampler";
+        case BindingType::kTexture:
+            return "texture";
+        case BindingType::kStorageTexture:
+            return "storage_texture";
+        case BindingType::kExternalTexture:
+            return "external_texture";
+    }
+    TINT_ICE() << "Unknown enum passed to ToString(::BindingType)";
+}
+
+}  // namespace
+
+Result<SuccessType> ValidateBindingOptions(const Options& options) {
     diag::List diagnostics;
 
     tint::Hashmap<tint::BindingPoint, binding::BindingInfo, 8> seen_wgsl_bindings{};
-    tint::Hashmap<binding::BindingInfo, tint::BindingPoint, 8> seen_glsl_bindings{};
-
+    tint::Hashmap<binding::BindingInfo, tint::BindingPoint, 8> seen_glsl_texture_bindings{};
+    tint::Hashmap<binding::BindingInfo, tint::BindingPoint, 8> seen_glsl_sampler_bindings{};
+    tint::Hashmap<binding::BindingInfo, tint::BindingPoint, 8> seen_glsl_other_bindings{};
     // Both wgsl_seen and glsl_seen check to see if the pair of [src, dst] are unique. If
     // we have multiple entries that map the same [src, dst] pair, that's fine. We treat it as valid
     // as it's possible for multiple entry points to use the remapper at the same time. If the pair
     // doesn't match, then we report an error about a duplicate binding point.
+    // For glsl_seen it is also valid for a texture and a sampler have the same GLSL side binding
+    // point.
     auto wgsl_seen = [&diagnostics, &seen_wgsl_bindings](const tint::BindingPoint& src,
                                                          const binding::BindingInfo& dst) -> bool {
-        if (auto binding = seen_wgsl_bindings.Get(src)) {
-            if (*binding != dst) {
-                diagnostics.AddError(Source{}) << "found duplicate WGSL binding point: " << src;
-                return true;
-            }
+        if (auto binding = seen_wgsl_bindings.Add(src, dst); binding.value != dst) {
+            diagnostics.AddError(Source{}) << "found duplicate WGSL binding point: " << src;
+            return true;
         }
-        seen_wgsl_bindings.Add(src, dst);
         return false;
     };
 
-    auto glsl_seen = [&diagnostics, &seen_glsl_bindings](const binding::BindingInfo& src,
-                                                         const tint::BindingPoint& dst) -> bool {
-        if (auto binding = seen_glsl_bindings.Get(src)) {
-            if (*binding != dst) {
-                diagnostics.AddError(Source{})
-                    << "found duplicate GLSL binding point: [binding: " << src.binding << "]";
-                return true;
+    auto glsl_seen = [&diagnostics, &seen_glsl_texture_bindings, &seen_glsl_sampler_bindings,
+                      &seen_glsl_other_bindings](const binding::BindingInfo& src,
+                                                 const tint::BindingPoint& dst,
+                                                 BindingType type) -> bool {
+        auto disallowed_duplicate =
+            [&diagnostics, &src,
+             &dst](const tint::Hashmap<binding::BindingInfo, tint::BindingPoint, 8>& seen_bindings)
+            -> bool {
+            if (auto binding = seen_bindings.Get(src)) {
+                if (*binding != dst) {
+                    diagnostics.AddError(Source{})
+                        << "found duplicate GLSL binding point: [binding: " << src.binding << "]";
+                    return true;
+                }
             }
+            return false;
+        };
+
+        switch (type) {
+            case BindingType::kTexture:
+                if (disallowed_duplicate(seen_glsl_texture_bindings) ||
+                    disallowed_duplicate(seen_glsl_other_bindings)) {
+                    return true;
+                }
+                seen_glsl_texture_bindings.Add(src, dst);
+                break;
+            case BindingType::kSampler:
+                if (disallowed_duplicate(seen_glsl_sampler_bindings) ||
+                    disallowed_duplicate(seen_glsl_other_bindings)) {
+                    return true;
+                }
+                seen_glsl_sampler_bindings.Add(src, dst);
+                break;
+            default:
+                if (disallowed_duplicate(seen_glsl_sampler_bindings) ||
+                    disallowed_duplicate(seen_glsl_texture_bindings) ||
+                    disallowed_duplicate(seen_glsl_other_bindings)) {
+                    return true;
+                }
+                seen_glsl_other_bindings.Add(src, dst);
+                break;
         }
-        seen_glsl_bindings.Add(src, dst);
         return false;
     };
 
-    auto valid = [&wgsl_seen, &glsl_seen](const auto& hsh) -> bool {
+    auto valid = [&wgsl_seen, &glsl_seen, &diagnostics](const auto& hsh, BindingType type) -> bool {
         for (const auto& it : hsh) {
             const auto& src_binding = it.first;
             const auto& dst_binding = it.second;
 
-            if (wgsl_seen(src_binding, dst_binding)) {
-                return false;
-            }
-
-            if (glsl_seen(dst_binding, src_binding)) {
+            if (wgsl_seen(src_binding, dst_binding) || glsl_seen(dst_binding, src_binding, type)) {
+                diagnostics.AddNote(Source{}) << "when processing " << ToString(type);
                 return false;
             }
         }
         return true;
     };
 
-    if (!valid(options.bindings.uniform)) {
-        diagnostics.AddNote(Source{}) << "when processing uniform";
-        return diag::Failure{std::move(diagnostics)};
+    if (!valid(options.bindings.uniform, BindingType::kUniform)) {
+        return Failure{diagnostics.Str()};
     }
-    if (!valid(options.bindings.storage)) {
-        diagnostics.AddNote(Source{}) << "when processing storage";
-        return diag::Failure{std::move(diagnostics)};
+    if (!valid(options.bindings.storage, BindingType::kStorage)) {
+        return Failure{diagnostics.Str()};
     }
-
-    if (!valid(options.bindings.sampler)) {
-        diagnostics.AddNote(Source{}) << "when processing sampler";
-        return diag::Failure{std::move(diagnostics)};
+    if (!valid(options.bindings.sampler, BindingType::kSampler)) {
+        return Failure{diagnostics.Str()};
     }
-
-    if (!valid(options.bindings.texture)) {
-        diagnostics.AddNote(Source{}) << "when processing texture";
-        return diag::Failure{std::move(diagnostics)};
+    if (!valid(options.bindings.texture, BindingType::kTexture)) {
+        return Failure{diagnostics.Str()};
     }
-    if (!valid(options.bindings.storage_texture)) {
-        diagnostics.AddNote(Source{}) << "when processing storage_texture";
-        return diag::Failure{std::move(diagnostics)};
+    if (!valid(options.bindings.storage_texture, BindingType::kStorageTexture)) {
+        return Failure{diagnostics.Str()};
     }
 
     for (const auto& it : options.bindings.external_texture) {
@@ -116,20 +170,17 @@
         // Validate with the actual source regardless of what the remapper will do
         if (wgsl_seen(src_binding, plane0)) {
             diagnostics.AddNote(Source{}) << "when processing external_texture";
-            return diag::Failure{std::move(diagnostics)};
+            return Failure{diagnostics.Str()};
         }
 
-        if (glsl_seen(plane0, src_binding)) {
-            diagnostics.AddNote(Source{}) << "when processing external_texture";
-            return diag::Failure{std::move(diagnostics)};
+        if (glsl_seen(plane0, src_binding, BindingType::kExternalTexture)) {
+            return Failure{diagnostics.Str()};
         }
-        if (glsl_seen(plane1, src_binding)) {
-            diagnostics.AddNote(Source{}) << "when processing external_texture";
-            return diag::Failure{std::move(diagnostics)};
+        if (glsl_seen(plane1, src_binding, BindingType::kExternalTexture)) {
+            return Failure{diagnostics.Str()};
         }
-        if (glsl_seen(metadata, src_binding)) {
-            diagnostics.AddNote(Source{}) << "when processing external_texture";
-            return diag::Failure{std::move(diagnostics)};
+        if (glsl_seen(metadata, src_binding, BindingType::kExternalTexture)) {
+            return Failure{diagnostics.Str()};
         }
     }
 
diff --git a/src/tint/lang/glsl/writer/common/option_helpers.h b/src/tint/lang/glsl/writer/common/option_helpers.h
index bba18c7..ee1dfb1 100644
--- a/src/tint/lang/glsl/writer/common/option_helpers.h
+++ b/src/tint/lang/glsl/writer/common/option_helpers.h
@@ -33,7 +33,6 @@
 #include "src/tint/api/common/binding_point.h"
 #include "src/tint/lang/core/ir/transform/multiplanar_options.h"
 #include "src/tint/lang/glsl/writer/common/options.h"
-#include "src/tint/utils/diagnostic/diagnostic.h"
 
 namespace tint::glsl::writer {
 /// The remapper data
@@ -41,7 +40,7 @@
 
 /// @param options the options
 /// @returns success or failure
-diag::Result<SuccessType> ValidateBindingOptions(const Options& options);
+Result<SuccessType> ValidateBindingOptions(const Options& options);
 
 /// Populates data from the writer options for the remapper and external texture.
 /// @param options the writer options
diff --git a/src/tint/lang/glsl/writer/helpers/generate_bindings.cc b/src/tint/lang/glsl/writer/helpers/generate_bindings.cc
index b3bef11..eebd1c0 100644
--- a/src/tint/lang/glsl/writer/helpers/generate_bindings.cc
+++ b/src/tint/lang/glsl/writer/helpers/generate_bindings.cc
@@ -43,14 +43,25 @@
 
 Bindings GenerateBindings(const core::ir::Module& module) {
     Bindings bindings{};
-
-    std::unordered_set<tint::BindingPoint> seen_binding_points;
-
-    // Set a binding point for the texture-builtins-from-uniform buffer.
+    // Set a next_binding point for the texture-builtins-from-uniform buffer.
     bindings.texture_builtins_from_uniform.ubo_binding = {0u};
 
-    // Collect next valid binding number per group
-    Hashmap<uint32_t, uint32_t, 4> group_to_next_binding_number;
+    // Track the next available GLSL binding number.
+    // NOTE: GLSL does not have a concept of groups, so the next GLSL binding number
+    // is a global value across all WGSL binding groups. The same WGSL binding point should map
+    // consistently to the same GLSL binding number though.
+    uint32_t next_binding = 0;
+    Hashmap<tint::BindingPoint, uint32_t, 4> wgsl_to_glsl_bindings;
+    auto get_binding = [&next_binding,
+                        &wgsl_to_glsl_bindings](const tint::BindingPoint& bp) -> uint32_t {
+        if (auto binding = wgsl_to_glsl_bindings.Get(bp)) {
+            return *binding;
+        }
+        auto binding = next_binding++;
+        wgsl_to_glsl_bindings.Add(bp, binding);
+        return binding;
+    };
+
     Vector<tint::BindingPoint, 4> ext_tex_bps;
     for (auto* inst : *module.root_block) {
         auto* var = inst->As<core::ir::Var>();
@@ -59,12 +70,6 @@
         }
 
         if (auto bp = var->BindingPoint()) {
-            if (auto val = group_to_next_binding_number.Get(bp->group)) {
-                *val = std::max(*val, bp->binding + 1);
-            } else {
-                group_to_next_binding_number.Add(bp->group, bp->binding + 1);
-            }
-
             auto* ptr_type = var->Result()->Type()->As<core::type::Pointer>();
 
             // Store up the external textures, we'll add them in the next step
@@ -73,7 +78,7 @@
                 continue;
             }
 
-            binding::BindingInfo info{bp->binding};
+            binding::BindingInfo info{get_binding(bp.value())};
             switch (ptr_type->AddressSpace()) {
                 case core::AddressSpace::kHandle:
                     Switch(
@@ -110,14 +115,9 @@
     }
 
     for (auto bp : ext_tex_bps) {
-        uint32_t g = bp.group;
-        uint32_t& next_num = group_to_next_binding_number.GetOrAddZero(g);
-
-        binding::BindingInfo plane0{bp.binding};
-        binding::BindingInfo plane1{next_num++};
-        binding::BindingInfo metadata{next_num++};
-
-        group_to_next_binding_number.Replace(g, next_num);
+        binding::BindingInfo plane0{get_binding(bp)};
+        binding::BindingInfo plane1{next_binding++};
+        binding::BindingInfo metadata{next_binding++};
 
         bindings.external_texture.emplace(bp, binding::ExternalTexture{metadata, plane0, plane1});
     }
diff --git a/src/tint/lang/glsl/writer/writer.cc b/src/tint/lang/glsl/writer/writer.cc
index 38510e0..2468398 100644
--- a/src/tint/lang/glsl/writer/writer.cc
+++ b/src/tint/lang/glsl/writer/writer.cc
@@ -33,6 +33,7 @@
 #include "src/tint/lang/core/type/binding_array.h"
 #include "src/tint/lang/core/type/pointer.h"
 #include "src/tint/lang/core/type/storage_texture.h"
+#include "src/tint/lang/glsl/writer/common/option_helpers.h"
 #include "src/tint/lang/glsl/writer/printer/printer.h"
 #include "src/tint/lang/glsl/writer/raise/raise.h"
 
@@ -197,6 +198,13 @@
         }
     }
 
+    {
+        auto res = ValidateBindingOptions(options);
+        if (res != Success) {
+            return res.Failure();
+        }
+    }
+
     return Success;
 }
 
diff --git a/src/tint/lang/hlsl/writer/BUILD.bazel b/src/tint/lang/hlsl/writer/BUILD.bazel
index 8f9f85b..1b8cfe3 100644
--- a/src/tint/lang/hlsl/writer/BUILD.bazel
+++ b/src/tint/lang/hlsl/writer/BUILD.bazel
@@ -49,6 +49,7 @@
     "//src/tint/lang/core",
     "//src/tint/lang/core/constant",
     "//src/tint/lang/core/ir",
+    "//src/tint/lang/core/ir/transform",
     "//src/tint/lang/core/type",
     "//src/tint/lang/hlsl/writer/common",
     "//src/tint/lang/hlsl/writer/printer",
diff --git a/src/tint/lang/hlsl/writer/BUILD.cmake b/src/tint/lang/hlsl/writer/BUILD.cmake
index 5703c4e..895f089 100644
--- a/src/tint/lang/hlsl/writer/BUILD.cmake
+++ b/src/tint/lang/hlsl/writer/BUILD.cmake
@@ -55,6 +55,7 @@
   tint_lang_core
   tint_lang_core_constant
   tint_lang_core_ir
+  tint_lang_core_ir_transform
   tint_lang_core_type
   tint_lang_hlsl_writer_common
   tint_lang_hlsl_writer_printer
diff --git a/src/tint/lang/hlsl/writer/BUILD.gn b/src/tint/lang/hlsl/writer/BUILD.gn
index eadca96..7a6eba9 100644
--- a/src/tint/lang/hlsl/writer/BUILD.gn
+++ b/src/tint/lang/hlsl/writer/BUILD.gn
@@ -54,6 +54,7 @@
       "${tint_src_dir}/lang/core",
       "${tint_src_dir}/lang/core/constant",
       "${tint_src_dir}/lang/core/ir",
+      "${tint_src_dir}/lang/core/ir/transform",
       "${tint_src_dir}/lang/core/type",
       "${tint_src_dir}/lang/hlsl/writer/common",
       "${tint_src_dir}/lang/hlsl/writer/printer",
diff --git a/src/tint/lang/hlsl/writer/common/option_helpers.cc b/src/tint/lang/hlsl/writer/common/option_helpers.cc
index 19bd319..bd42650 100644
--- a/src/tint/lang/hlsl/writer/common/option_helpers.cc
+++ b/src/tint/lang/hlsl/writer/common/option_helpers.cc
@@ -30,13 +30,14 @@
 #include <utility>
 
 #include "src/tint/utils/containers/hashmap.h"
+#include "src/tint/utils/diagnostic/diagnostic.h"
 
 namespace tint::hlsl::writer {
 
 /// binding::BindingInfo to tint::BindingPoint map
 using InfoToPointMap = tint::Hashmap<binding::BindingInfo, tint::BindingPoint, 8>;
 
-diag::Result<SuccessType> ValidateBindingOptions(const Options& options) {
+Result<SuccessType> ValidateBindingOptions(const Options& options) {
     diag::List diagnostics;
 
     tint::Hashmap<tint::BindingPoint, binding::BindingInfo, 8> seen_wgsl_bindings{};
@@ -45,7 +46,7 @@
     InfoToPointMap seen_hlsl_texture_bindings{};
     InfoToPointMap seen_hlsl_sampler_bindings{};
 
-    // Both wgsl_seen and spirv_seen check to see if the pair of [src, dst] are unique. If we have
+    // Both wgsl_seen and hlsl_seen check to see if the pair of [src, dst] are unique. If we have
     // multiple entries that map the same [src, dst] pair, that's fine. We treat it as valid as it's
     // possible for multiple entry points to use the remapper at the same time. If the pair doesn't
     // match, then we report an error about a duplicate binding point.
@@ -67,7 +68,7 @@
         if (auto binding = map.Get(src)) {
             if (*binding != dst) {
                 diagnostics.AddError(Source{})
-                    << "found duplicate MSL binding point: [binding: " << src.binding << "]";
+                    << "found duplicate HLSL binding point: [binding: " << src.binding << "]";
                 return true;
             }
         }
@@ -94,27 +95,27 @@
     // Storage and uniform are both [[buffer()]]
     if (!valid(seen_hlsl_buffer_bindings, options.bindings.uniform)) {
         diagnostics.AddNote(Source{}) << "when processing uniform";
-        return diag::Failure{std::move(diagnostics)};
+        return Failure{diagnostics.Str()};
     }
     if (!valid(seen_hlsl_buffer_bindings, options.bindings.storage)) {
         diagnostics.AddNote(Source{}) << "when processing storage";
-        return diag::Failure{std::move(diagnostics)};
+        return Failure{diagnostics.Str()};
     }
 
     // Sampler is [[sampler()]]
     if (!valid(seen_hlsl_sampler_bindings, options.bindings.sampler)) {
         diagnostics.AddNote(Source{}) << "when processing sampler";
-        return diag::Failure{std::move(diagnostics)};
+        return Failure{diagnostics.Str()};
     }
 
     // Texture and storage texture are [[texture()]]
     if (!valid(seen_hlsl_texture_bindings, options.bindings.texture)) {
         diagnostics.AddNote(Source{}) << "when processing texture";
-        return diag::Failure{std::move(diagnostics)};
+        return Failure{diagnostics.Str()};
     }
     if (!valid(seen_hlsl_texture_bindings, options.bindings.storage_texture)) {
         diagnostics.AddNote(Source{}) << "when processing storage_texture";
-        return diag::Failure{std::move(diagnostics)};
+        return Failure{diagnostics.Str()};
     }
 
     for (const auto& it : options.bindings.external_texture) {
@@ -126,22 +127,22 @@
         // Validate with the actual source regardless of what the remapper will do
         if (wgsl_seen(src_binding, plane0)) {
             diagnostics.AddNote(Source{}) << "when processing external_texture";
-            return diag::Failure{std::move(diagnostics)};
+            return Failure{diagnostics.Str()};
         }
 
         // Plane0 & Plane1 are [[texture()]]
         if (hlsl_seen(seen_hlsl_texture_bindings, plane0, src_binding)) {
             diagnostics.AddNote(Source{}) << "when processing external_texture";
-            return diag::Failure{std::move(diagnostics)};
+            return Failure{diagnostics.Str()};
         }
         if (hlsl_seen(seen_hlsl_texture_bindings, plane1, src_binding)) {
             diagnostics.AddNote(Source{}) << "when processing external_texture";
-            return diag::Failure{std::move(diagnostics)};
+            return Failure{diagnostics.Str()};
         }
         // Metadata is [[buffer()]]
         if (hlsl_seen(seen_hlsl_buffer_bindings, metadata, src_binding)) {
             diagnostics.AddNote(Source{}) << "when processing external_texture";
-            return diag::Failure{std::move(diagnostics)};
+            return Failure{diagnostics.Str()};
         }
     }
 
diff --git a/src/tint/lang/hlsl/writer/common/option_helpers.h b/src/tint/lang/hlsl/writer/common/option_helpers.h
index 3a255af..bdfadd5 100644
--- a/src/tint/lang/hlsl/writer/common/option_helpers.h
+++ b/src/tint/lang/hlsl/writer/common/option_helpers.h
@@ -33,7 +33,6 @@
 #include "src/tint/api/common/binding_point.h"
 #include "src/tint/lang/core/ir/transform/multiplanar_options.h"
 #include "src/tint/lang/hlsl/writer/common/options.h"
-#include "src/tint/utils/diagnostic/diagnostic.h"
 
 namespace tint::hlsl::writer {
 
@@ -42,7 +41,7 @@
 
 /// @param options the options
 /// @returns success or failure
-diag::Result<SuccessType> ValidateBindingOptions(const Options& options);
+Result<SuccessType> ValidateBindingOptions(const Options& options);
 
 /// Populates binding-related option from the writer options
 /// @param options the writer options
diff --git a/src/tint/lang/hlsl/writer/writer.cc b/src/tint/lang/hlsl/writer/writer.cc
index 2d09c13..9eda7e3 100644
--- a/src/tint/lang/hlsl/writer/writer.cc
+++ b/src/tint/lang/hlsl/writer/writer.cc
@@ -35,6 +35,7 @@
 #include "src/tint/lang/core/ir/var.h"
 #include "src/tint/lang/core/type/input_attachment.h"
 #include "src/tint/lang/core/type/pointer.h"
+#include "src/tint/lang/hlsl/writer/common/option_helpers.h"
 #include "src/tint/lang/hlsl/writer/printer/printer.h"
 #include "src/tint/lang/hlsl/writer/raise/raise.h"
 
@@ -88,6 +89,13 @@
         }
     }
 
+    {
+        auto res = ValidateBindingOptions(options);
+        if (res != Success) {
+            return res.Failure();
+        }
+    }
+
     return Success;
 }
 
diff --git a/src/tint/lang/spirv/writer/writer.cc b/src/tint/lang/spirv/writer/writer.cc
index bb3107c..50ef741 100644
--- a/src/tint/lang/spirv/writer/writer.cc
+++ b/src/tint/lang/spirv/writer/writer.cc
@@ -120,10 +120,6 @@
         }
     }
 
-    return Success;
-}
-
-Result<Output> Generate(core::ir::Module& ir, const Options& options) {
     {
         auto res = ValidateBindingOptions(options);
         if (res != Success) {
@@ -131,6 +127,10 @@
         }
     }
 
+    return Success;
+}
+
+Result<Output> Generate(core::ir::Module& ir, const Options& options) {
     // Raise from core-dialect to SPIR-V-dialect.
     if (auto res = Raise(ir, options); res != Success) {
         return std::move(res.Failure());
diff --git a/test/tint/bug/chromium/1273230.wgsl.expected.glsl b/test/tint/bug/chromium/1273230.wgsl.expected.glsl
index 4d793f7..4374687 100644
--- a/test/tint/bug/chromium/1273230.wgsl.expected.glsl
+++ b/test/tint/bug/chromium/1273230.wgsl.expected.glsl
@@ -31,23 +31,23 @@
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
-layout(binding = 10, std430)
+layout(binding = 1, std430)
 buffer U32s_1_ssbo {
   uint values[];
 } indices;
-layout(binding = 11, std430)
+layout(binding = 2, std430)
 buffer F32s_1_ssbo {
   float values[];
 } positions;
-layout(binding = 20, std430)
+layout(binding = 3, std430)
 buffer AU32s_1_ssbo {
   uint values[];
 } counters;
-layout(binding = 21, std430)
+layout(binding = 4, std430)
 buffer AI32s_1_ssbo {
   int values[];
 } LUT;
-layout(binding = 50, std430)
+layout(binding = 5, std430)
 buffer dbg_block_1_ssbo {
   Dbg inner;
 } v_1;
diff --git a/test/tint/bug/chromium/1434271.wgsl.expected.glsl b/test/tint/bug/chromium/1434271.wgsl.expected.glsl
index e3e5634..5a3f3d7 100644
--- a/test/tint/bug/chromium/1434271.wgsl.expected.glsl
+++ b/test/tint/bug/chromium/1434271.wgsl.expected.glsl
@@ -72,7 +72,7 @@
   vec2 quad_pos;
 };
 
-layout(binding = 5, std140)
+layout(binding = 0, std140)
 uniform v_render_params_block_ubo {
   RenderParams inner;
 } v;
@@ -161,19 +161,19 @@
   uint width;
 };
 
-layout(binding = 3, std140)
+layout(binding = 0, std140)
 uniform ubo_block_1_ubo {
   UBO inner;
 } v;
-layout(binding = 4, std430)
+layout(binding = 1, std430)
 buffer Buffer_1_ssbo {
   float weights[];
 } buf_in;
-layout(binding = 5, std430)
+layout(binding = 2, std430)
 buffer Buffer_2_ssbo {
   float weights[];
 } buf_out;
-layout(binding = 7, rgba8) uniform highp writeonly image2D tex_out;
+layout(binding = 3, rgba8) uniform highp writeonly image2D tex_out;
 float tint_float_modulo(float x, float y) {
   return (x - (y * trunc((x / y))));
 }
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
index 8560ba6..961e26a 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
@@ -17,11 +17,11 @@
 uniform ubo_block_1_ubo {
   UBO inner;
 } v;
-layout(binding = 2, std430)
+layout(binding = 1, std430)
 buffer result_block_1_ssbo {
   Result inner;
 } v_1;
-layout(binding = 1, std430)
+layout(binding = 2, std430)
 buffer ssbo_block_1_ssbo {
   SSBO inner;
 } v_2;
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
index 1f3c5a3..5e0b818 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
@@ -17,7 +17,7 @@
 uniform ubo_block_1_ubo {
   UBO inner;
 } v;
-layout(binding = 2, std430)
+layout(binding = 1, std430)
 buffer result_block_1_ssbo {
   Result inner;
 } v_1;
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
index ad39d30..b68dd5c 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
@@ -17,11 +17,11 @@
 uniform ubo_block_1_ubo {
   UBO inner;
 } v;
-layout(binding = 2, std430)
+layout(binding = 1, std430)
 buffer result_block_1_ssbo {
   Result inner;
 } v_1;
-layout(binding = 1, std430)
+layout(binding = 2, std430)
 buffer ssbo_block_1_ssbo {
   SSBO inner;
 } v_2;
diff --git a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
index 99c41c5..1456c4b 100644
--- a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
@@ -16,11 +16,11 @@
   uint i;
 };
 
-layout(binding = 3, std430)
+layout(binding = 0, std430)
 buffer Particles_1_ssbo {
   Particle p[];
 } particles;
-layout(binding = 4, std140)
+layout(binding = 1, std140)
 uniform sim_block_1_ubo {
   Simulation inner;
 } v;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl
index dc8b97f..dfd76dc 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   uint j;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl
index 8293dae..157486d 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   uint j;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl
index fad0e94..bcc0aec 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   uint j;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl
index 3a8253b..5e5162d 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   uint j;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl
index 5b161f5..da663e6 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   uint j;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl
index e6255f0..657d376 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   uint j;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl
index fad0e94..bcc0aec 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   uint j;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl
index 28b025d..6f2f418 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   uint j;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
diff --git a/test/tint/bug/tint/1113.wgsl.expected.glsl b/test/tint/bug/tint/1113.wgsl.expected.glsl
index e917323..55edb6e 100644
--- a/test/tint/bug/tint/1113.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1113.wgsl.expected.glsl
@@ -34,23 +34,23 @@
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
-layout(binding = 10, std430)
+layout(binding = 1, std430)
 buffer U32s_1_ssbo {
   uint values[];
 } indices;
-layout(binding = 11, std430)
+layout(binding = 2, std430)
 buffer F32s_1_ssbo {
   float values[];
 } positions;
-layout(binding = 20, std430)
+layout(binding = 3, std430)
 buffer AU32s_1_ssbo {
   uint values[];
 } counters;
-layout(binding = 21, std430)
+layout(binding = 4, std430)
 buffer AI32s_1_ssbo {
   int values[];
 } LUT;
-layout(binding = 50, std430)
+layout(binding = 5, std430)
 buffer dbg_block_1_ssbo {
   Dbg inner;
 } v_1;
@@ -168,23 +168,23 @@
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
-layout(binding = 10, std430)
+layout(binding = 1, std430)
 buffer U32s_1_ssbo {
   uint values[];
 } indices;
-layout(binding = 11, std430)
+layout(binding = 2, std430)
 buffer F32s_1_ssbo {
   float values[];
 } positions;
-layout(binding = 20, std430)
+layout(binding = 3, std430)
 buffer AU32s_1_ssbo {
   uint values[];
 } counters;
-layout(binding = 21, std430)
+layout(binding = 4, std430)
 buffer AI32s_1_ssbo {
   int values[];
 } LUT;
-layout(binding = 50, std430)
+layout(binding = 5, std430)
 buffer dbg_block_1_ssbo {
   Dbg inner;
 } v_1;
@@ -262,23 +262,23 @@
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
-layout(binding = 10, std430)
+layout(binding = 1, std430)
 buffer U32s_1_ssbo {
   uint values[];
 } indices;
-layout(binding = 11, std430)
+layout(binding = 2, std430)
 buffer F32s_1_ssbo {
   float values[];
 } positions;
-layout(binding = 20, std430)
+layout(binding = 3, std430)
 buffer AU32s_1_ssbo {
   uint values[];
 } counters;
-layout(binding = 21, std430)
+layout(binding = 4, std430)
 buffer AI32s_1_ssbo {
   int values[];
 } LUT;
-layout(binding = 50, std430)
+layout(binding = 5, std430)
 buffer dbg_block_1_ssbo {
   Dbg inner;
 } v_1;
diff --git a/test/tint/bug/tint/1121.wgsl.expected.glsl b/test/tint/bug/tint/1121.wgsl.expected.glsl
index b269b0b..fd08b38 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1121.wgsl.expected.glsl
@@ -37,15 +37,15 @@
 buffer LightsBuffer_1_ssbo {
   LightData lights[];
 } lightsBuffer;
-layout(binding = 0, std430)
+layout(binding = 1, std430)
 buffer tileLightId_block_1_ssbo {
   Tiles inner;
 } v;
-layout(binding = 0, std140)
+layout(binding = 2, std140)
 uniform config_block_1_ubo {
   Config inner;
 } v_1;
-layout(binding = 0, std140)
+layout(binding = 3, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_2;
diff --git a/test/tint/bug/tint/1385.wgsl.expected.glsl b/test/tint/bug/tint/1385.wgsl.expected.glsl
index b8c6f92..f6cc312 100644
--- a/test/tint/bug/tint/1385.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1385.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 310 es
 
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer data_block_1_ssbo {
   int inner[];
 } v;
diff --git a/test/tint/bug/tint/1538.wgsl.expected.glsl b/test/tint/bug/tint/1538.wgsl.expected.glsl
index c086d63..06e241c 100644
--- a/test/tint/bug/tint/1538.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1538.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 310 es
 
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer buf_block_1_ssbo {
   uint inner[1];
 } v;
diff --git a/test/tint/bug/tint/1739.wgsl.expected.glsl b/test/tint/bug/tint/1739.wgsl.expected.glsl
index 0d3811c..a9c1359 100644
--- a/test/tint/bug/tint/1739.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1739.wgsl.expected.glsl
@@ -61,7 +61,7 @@
 uniform t_params_block_std140_1_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_1;
-layout(binding = 1, rgba8) uniform highp writeonly image2D outImage;
+layout(binding = 0, rgba8) uniform highp writeonly image2D outImage;
 uniform highp sampler2D t_plane0;
 uniform highp sampler2D t_plane1;
 vec3 tint_GammaCorrection(vec3 v, tint_GammaTransferParams params) {
diff --git a/test/tint/bug/tint/1875.wgsl.expected.glsl b/test/tint/bug/tint/1875.wgsl.expected.glsl
index a6f0139..efd6f93 100644
--- a/test/tint/bug/tint/1875.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1875.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 uint count = 0u;
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer Outputs_1_ssbo {
   uint data[];
 } outputs;
diff --git a/test/tint/bug/tint/1926.wgsl.expected.glsl b/test/tint/bug/tint/1926.wgsl.expected.glsl
index 179ba7d..3fcc39d 100644
--- a/test/tint/bug/tint/1926.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1926.wgsl.expected.glsl
@@ -1,7 +1,7 @@
 #version 310 es
 
 shared uint sh_atomic_failed;
-layout(binding = 4, std430)
+layout(binding = 0, std430)
 buffer output_block_1_ssbo {
   uint inner;
 } v;
diff --git a/test/tint/bug/tint/1976.wgsl.expected.glsl b/test/tint/bug/tint/1976.wgsl.expected.glsl
index fc93d53..28691a4 100644
--- a/test/tint/bug/tint/1976.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1976.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   float colorSamples[4];
 };
 
-layout(binding = 2, std430)
+layout(binding = 1, std430)
 buffer results_block_1_ssbo {
   Results inner;
 } v;
diff --git a/test/tint/bug/tint/2076.wgsl.expected.glsl b/test/tint/bug/tint/2076.wgsl.expected.glsl
index ca44a32..cd1f6ab 100644
--- a/test/tint/bug/tint/2076.wgsl.expected.glsl
+++ b/test/tint/bug/tint/2076.wgsl.expected.glsl
@@ -42,7 +42,7 @@
 
 uniform highp sampler2D randomTexture_plane0;
 uniform highp sampler2D randomTexture_plane1;
-layout(binding = 4, std140)
+layout(binding = 3, std140)
 uniform randomTexture_params_block_std140_1_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v;
diff --git a/test/tint/bug/tint/294.wgsl.expected.glsl b/test/tint/bug/tint/294.wgsl.expected.glsl
index aec85dc..bfac987 100644
--- a/test/tint/bug/tint/294.wgsl.expected.glsl
+++ b/test/tint/bug/tint/294.wgsl.expected.glsl
@@ -8,7 +8,7 @@
   uint tint_pad_1;
 };
 
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer Lights_1_ssbo {
   Light light[];
 } lights;
diff --git a/test/tint/bug/tint/379127084.wgsl.expected.glsl b/test/tint/bug/tint/379127084.wgsl.expected.glsl
index 61166c8..6c0554e 100644
--- a/test/tint/bug/tint/379127084.wgsl.expected.glsl
+++ b/test/tint/bug/tint/379127084.wgsl.expected.glsl
@@ -27,7 +27,7 @@
   vec4 sk_FragColor;
 };
 
-layout(binding = 2, std430)
+layout(binding = 0, std430)
 buffer f_FSUniforms_ssbo {
   FSUniformData fsUniformData[];
 } _storage1;
diff --git a/test/tint/bug/tint/379684039-2.wgsl.expected.glsl b/test/tint/bug/tint/379684039-2.wgsl.expected.glsl
index b798541..100d781 100644
--- a/test/tint/bug/tint/379684039-2.wgsl.expected.glsl
+++ b/test/tint/bug/tint/379684039-2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 };
 
 uint idx = 0u;
-layout(binding = 2, std430)
+layout(binding = 0, std430)
 buffer FSUniforms_1_ssbo {
   FSUniformData fsUniformData[];
 } _storage;
diff --git a/test/tint/bug/tint/379684039.wgsl.expected.glsl b/test/tint/bug/tint/379684039.wgsl.expected.glsl
index 4505440..bfc711f 100644
--- a/test/tint/bug/tint/379684039.wgsl.expected.glsl
+++ b/test/tint/bug/tint/379684039.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 310 es
 
-layout(binding = 2, std430)
+layout(binding = 0, std430)
 buffer _storage_block_1_ssbo {
   ivec2 inner;
 } v;
diff --git a/test/tint/bug/tint/403.wgsl.expected.glsl b/test/tint/bug/tint/403.wgsl.expected.glsl
index ce7485d..d815369 100644
--- a/test/tint/bug/tint/403.wgsl.expected.glsl
+++ b/test/tint/bug/tint/403.wgsl.expected.glsl
@@ -15,7 +15,7 @@
 uniform v_x_20_block_std140_ubo {
   vertexUniformBuffer1_std140 inner;
 } v;
-layout(binding = 0, std140)
+layout(binding = 1, std140)
 uniform v_x_26_block_std140_ubo {
   vertexUniformBuffer2_std140 inner;
 } v_1;
diff --git a/test/tint/bug/tint/757.wgsl.expected.glsl b/test/tint/bug/tint/757.wgsl.expected.glsl
index e904d93..f2e1eb2 100644
--- a/test/tint/bug/tint/757.wgsl.expected.glsl
+++ b/test/tint/bug/tint/757.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 310 es
 
-layout(binding = 3, std430)
+layout(binding = 1, std430)
 buffer Result_1_ssbo {
   float values[];
 } result;
diff --git a/test/tint/bug/tint/926.wgsl.expected.glsl b/test/tint/bug/tint/926.wgsl.expected.glsl
index f160e9f..fbf1267 100644
--- a/test/tint/bug/tint/926.wgsl.expected.glsl
+++ b/test/tint/bug/tint/926.wgsl.expected.glsl
@@ -5,7 +5,7 @@
   uint vertexCount;
 };
 
-layout(binding = 5, std430)
+layout(binding = 0, std430)
 buffer drawOut_block_1_ssbo {
   DrawIndirectArgs inner;
 } v;
diff --git a/test/tint/bug/tint/942.wgsl.expected.glsl b/test/tint/bug/tint/942.wgsl.expected.glsl
index 71de66c..2440cab 100644
--- a/test/tint/bug/tint/942.wgsl.expected.glsl
+++ b/test/tint/bug/tint/942.wgsl.expected.glsl
@@ -14,8 +14,8 @@
 uniform params_block_1_ubo {
   Params inner;
 } v;
-layout(binding = 2, rgba8) uniform highp writeonly image2D outputTex;
-layout(binding = 3, std140)
+layout(binding = 3, rgba8) uniform highp writeonly image2D outputTex;
+layout(binding = 4, std140)
 uniform flip_block_1_ubo {
   Flip inner;
 } v_1;
diff --git a/test/tint/bug/tint/948.wgsl.expected.glsl b/test/tint/bug/tint/948.wgsl.expected.glsl
index f951583..a566e95 100644
--- a/test/tint/bug/tint/948.wgsl.expected.glsl
+++ b/test/tint/bug/tint/948.wgsl.expected.glsl
@@ -22,7 +22,7 @@
   vec4 glFragColor_1;
 };
 
-layout(binding = 9, std140)
+layout(binding = 0, std140)
 uniform f_x_20_block_ubo {
   LeftOver inner;
 } v;
diff --git a/test/tint/bug/tint/949.wgsl.expected.glsl b/test/tint/bug/tint/949.wgsl.expected.glsl
index 6b9fcec..13c1434 100644
--- a/test/tint/bug/tint/949.wgsl.expected.glsl
+++ b/test/tint/bug/tint/949.wgsl.expected.glsl
@@ -41,7 +41,7 @@
 float u_Float = 0.0f;
 vec3 u_Color = vec3(0.0f);
 vec2 vMainuv = vec2(0.0f);
-layout(binding = 6, std140)
+layout(binding = 2, std140)
 uniform f_x_269_block_ubo {
   LeftOver inner;
 } v;
diff --git a/test/tint/bug/tint/959.wgsl.expected.glsl b/test/tint/bug/tint/959.wgsl.expected.glsl
index 90e0e28..6cb5452 100644
--- a/test/tint/bug/tint/959.wgsl.expected.glsl
+++ b/test/tint/bug/tint/959.wgsl.expected.glsl
@@ -11,63 +11,63 @@
 buffer f_b0_block_ssbo {
   S inner;
 } v;
-layout(binding = 0, std430)
+layout(binding = 1, std430)
 buffer f_b1_block_ssbo {
   S inner;
 } v_1;
-layout(binding = 0, std430)
+layout(binding = 2, std430)
 buffer f_b2_block_ssbo {
   S inner;
 } v_2;
-layout(binding = 0, std430)
+layout(binding = 3, std430)
 buffer f_b3_block_ssbo {
   S inner;
 } v_3;
-layout(binding = 0, std430)
+layout(binding = 4, std430)
 buffer f_b4_block_ssbo {
   S inner;
 } v_4;
-layout(binding = 0, std430)
+layout(binding = 5, std430)
 buffer f_b5_block_ssbo {
   S inner;
 } v_5;
-layout(binding = 0, std430)
+layout(binding = 6, std430)
 buffer f_b6_block_ssbo {
   S inner;
 } v_6;
-layout(binding = 0, std430)
+layout(binding = 7, std430)
 buffer f_b7_block_ssbo {
   S inner;
 } v_7;
-layout(binding = 1, std140)
+layout(binding = 8, std140)
 uniform f_b8_block_ubo {
   S inner;
 } v_8;
-layout(binding = 1, std140)
+layout(binding = 9, std140)
 uniform f_b9_block_ubo {
   S inner;
 } v_9;
-layout(binding = 1, std140)
+layout(binding = 10, std140)
 uniform f_b10_block_ubo {
   S inner;
 } v_10;
-layout(binding = 1, std140)
+layout(binding = 11, std140)
 uniform f_b11_block_ubo {
   S inner;
 } v_11;
-layout(binding = 1, std140)
+layout(binding = 12, std140)
 uniform f_b12_block_ubo {
   S inner;
 } v_12;
-layout(binding = 1, std140)
+layout(binding = 13, std140)
 uniform f_b13_block_ubo {
   S inner;
 } v_13;
-layout(binding = 1, std140)
+layout(binding = 14, std140)
 uniform f_b14_block_ubo {
   S inner;
 } v_14;
-layout(binding = 1, std140)
+layout(binding = 15, std140)
 uniform f_b15_block_ubo {
   S inner;
 } v_15;
diff --git a/test/tint/bug/tint/993.wgsl.expected.glsl b/test/tint/bug/tint/993.wgsl.expected.glsl
index 4da7059..53ded1e 100644
--- a/test/tint/bug/tint/993.wgsl.expected.glsl
+++ b/test/tint/bug/tint/993.wgsl.expected.glsl
@@ -21,7 +21,7 @@
 buffer result_block_1_ssbo {
   Result inner;
 } v_1;
-layout(binding = 0, std430)
+layout(binding = 2, std430)
 buffer s_block_1_ssbo {
   TestData inner;
 } v_2;
diff --git a/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.glsl
index 853185a..bc5adcf 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1cf529.wgsl.expected.glsl
@@ -52,7 +52,7 @@
   uint prevent_dce;
 };
 
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer v_SB_RO_ssbo {
   uint arg_0[];
 } sb_ro;
diff --git a/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.glsl
index fd6594e..1b6f550 100644
--- a/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/3a93e6.wgsl.expected.glsl
@@ -52,7 +52,7 @@
   uint prevent_dce;
 };
 
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer v_SB_RO_ssbo {
   float arg_0[];
 } sb_ro;
diff --git a/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.glsl
index f4666d2..4a23515 100644
--- a/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/9ea96d.wgsl.expected.glsl
@@ -55,7 +55,7 @@
   uint prevent_dce;
 };
 
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer v_SB_RO_ssbo {
   float16_t arg_0[];
 } sb_ro;
diff --git a/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.glsl
index dc82d4b..99523e5 100644
--- a/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/bf7d97.wgsl.expected.glsl
@@ -52,7 +52,7 @@
   uint prevent_dce;
 };
 
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer v_SB_RO_ssbo {
   int arg_0[];
 } sb_ro;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.glsl
index 7edbda8..dcdf10b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_00229f() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_00229f() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.glsl
index 884ac0f..c6b62d5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.glsl
index 81b48e3..cb59f08 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.glsl
index c7ed4c1..7757a49 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 uint textureDimensions_0329b0() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_0329b0() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.glsl
index 513ace2..0867843 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_033ea7() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_033ea7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.glsl
index 848fc2b..ac46074 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_07f1ba() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_07f1ba() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.glsl
index 8353060..715c96d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_088918() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_088918() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.glsl
index f26b2ac..42cd803 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 uvec2 textureDimensions_08e371() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_08e371() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.glsl
index e6d3439..63c40e1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2D f_arg_0;
 uint textureDimensions_09140b() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_09140b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.glsl
index 8ec28cc..d56812f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_0baa0d() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_0baa0d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.glsl
index ac698bd..dbdcc4a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_0c0b0c() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_0c0b0c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.glsl
index c210922..44d9f5d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uvec2 textureDimensions_0d4a7c() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_0d4a7c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.glsl
index d303508..348b333 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_135176() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_135176() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.glsl
index 8dd4832..acf27de 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2D f_arg_0;
 uvec2 textureDimensions_1417dd() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_1417dd() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.glsl
index 6e06934..3e92821 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage3D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage3D f_arg_0;
 uvec3 textureDimensions_15aa17() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_15aa17() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.glsl
index 174c101..b72b248 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.glsl
index a549001..e0229b0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_18f19f() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_18f19f() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.glsl
index 587262d..ace6ec4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D f_arg_0;
 uvec3 textureDimensions_1b720f() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_1b720f() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.glsl
index 76abdad..1a3136b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 uvec2 textureDimensions_1e4024() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_1e4024() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.glsl
index 85a73845..6b9ec7b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 uint textureDimensions_20ecef() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 uint textureDimensions_20ecef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.glsl
index a34cc9d..1484fa8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_212362() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_212362() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.glsl
index bf173bf..609337f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_224113() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_224113() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.glsl
index 3d5ebaf..fa679f0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_25d284() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_25d284() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.glsl
index f4fdbf1..2fb5054 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_2674d8() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_2674d8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.glsl
index c0e8c09..32259c8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D f_arg_0;
 uvec3 textureDimensions_268ddb() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_268ddb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.glsl
index 0e9970e..932f6ab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D f_arg_0;
+layout(binding = 1, r8) uniform highp image3D f_arg_0;
 uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D arg_0;
+layout(binding = 1, r8) uniform highp image3D arg_0;
 uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.glsl
index 18fecda..9768029 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_284c27() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_284c27() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.glsl
index 9cd01a5..26bce85 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_2bafdf() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_2bafdf() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.glsl
index 276a876..0de3088 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uint textureDimensions_2dc5c5() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_2dc5c5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.glsl
index de94f0f..497339d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_2ff32a() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_2ff32a() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.glsl
index e5d66a5..c059be5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_305dd5() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_305dd5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.glsl
index 3e43555..f186bf5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage3D f_arg_0;
 uvec3 textureDimensions_31799c() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_31799c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.glsl
index 1076deb..5624f75 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D f_arg_0;
 uvec3 textureDimensions_31d00d() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_31d00d() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.glsl
index 9424fb5..8d77f5d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage3D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage3D f_arg_0;
 uvec3 textureDimensions_35a7e5() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_35a7e5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.glsl
index f832f00..eec98dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage3D f_arg_0;
 uvec3 textureDimensions_35ee69() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_35ee69() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.glsl
index 42ec333..5d6a21b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2D f_arg_0;
 uvec2 textureDimensions_378a65() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_378a65() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.glsl
index d5431ed..388990e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 uvec2 textureDimensions_3834f8() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_3834f8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.glsl
index 9ba310e..06fdcce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_397dab() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_397dab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.glsl
index 8df11fe..959e1ca 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_3a5bb1() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_3a5bb1() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.glsl
index 2bcc588..c95abce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_3a7b69() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_3a7b69() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.glsl
index 7217b9c..fb274a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_3af3e7() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_3af3e7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.glsl
index fa411a7..3fcc306 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_3baab5() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_3baab5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.glsl
index 6cd558d..365e98e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 uvec2 textureDimensions_3bf12a() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_3bf12a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.glsl
index 4bd119a..a96aa9f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_3ff0a5() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_3ff0a5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.glsl
index a74a48f..6b598f5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage3D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage3D f_arg_0;
 uvec3 textureDimensions_40c671() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_40c671() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.glsl
index e8fcbca..a1688d6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_40da20() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_40da20() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.glsl
index fe59d06..861407e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_40ecf4() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_40ecf4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.glsl
index 3cb60f3..e01c937 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_41545f() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_41545f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.glsl
index 3b94057..558022d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D f_arg_0;
 uvec3 textureDimensions_423519() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_423519() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.glsl
index 7886802..586c83a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2D f_arg_0;
 uvec2 textureDimensions_439651() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_439651() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.glsl
index e671ca1..ea6415a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage3D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage3D f_arg_0;
 uvec3 textureDimensions_44b358() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_44b358() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.glsl
index 29377a0..fba4789 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_452fc1() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_452fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.glsl
index 76c4602..d840ada 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_4716a4() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_4716a4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.glsl
index 2b07aed..ffff23a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D f_arg_0;
 uvec3 textureDimensions_475c10() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_475c10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.glsl
index d6e1b45..0f50ed5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_4acec7() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_4acec7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.glsl
index 0513c73..37b1070 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_4b26ef() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_4b26ef() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.glsl
index ba77066..850dd15 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_4d1f71() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_4d1f71() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.glsl
index 30f57a0..3a0575a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D f_arg_0;
 uvec3 textureDimensions_4d27b3() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_4d27b3() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.glsl
index ac07648..61ea5cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D f_arg_0;
 uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.glsl
index 44cd664..c547bc9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 uint textureDimensions_4e540a() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 uint textureDimensions_4e540a() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.glsl
index 92e7ab6..c8dbbee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_52cf60() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_52cf60() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.glsl
index a8972c1..d53eba2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 uvec2 textureDimensions_534ef8() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_534ef8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.glsl
index d54335c..3747ba0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_542c62() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_542c62() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.glsl
index 9cb4328..1c12556 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.glsl
index e0c16c2..8b481b5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2D f_arg_0;
 uint textureDimensions_58a82d() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_58a82d() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.glsl
index a73d757..5b8b056 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage3D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage3D f_arg_0;
 uvec3 textureDimensions_591981() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_591981() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.glsl
index c96ae86..7f9c0fb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_599ab5() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_599ab5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.glsl
index 18c36a8..02a4634 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_5b4b10() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_5b4b10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.glsl
index 21e4acf..b176463 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2D f_arg_0;
 uint textureDimensions_607979() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_607979() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.glsl
index 24b4d52..0fadc2b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_609d34() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_609d34() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.glsl
index c3f49f5..70d4a67 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp image3D f_arg_0;
 uvec3 textureDimensions_617dc8() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D arg_0;
+layout(binding = 1, r32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_617dc8() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.glsl
index 49aada9..cc83175 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uvec2 textureDimensions_62e7ae() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_62e7ae() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.glsl
index 77d79fa..742bd52 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_674058() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_674058() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.glsl
index 882f89c..ff9bd0c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_6dae40() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_6dae40() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.glsl
index 1a33338..69e10e2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D f_arg_0;
 uvec3 textureDimensions_6dbef4() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_6dbef4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.glsl
index 182b229..f48f715 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_6e72c5() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_6e72c5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.glsl
index edc9fac..6d762ea 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uint textureDimensions_709357() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_709357() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.glsl
index 8c7b076..afd3b6c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2D f_arg_0;
 uint textureDimensions_7228de() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_7228de() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.glsl
index 66bf6a5..def33ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_7327fa() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_7327fa() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.glsl
index 4efc1ab..14898c5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.glsl
index e359ad0..4944e3a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_756304() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_756304() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.glsl
index d5458be..1ead03d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D f_arg_0;
 uvec3 textureDimensions_790e57() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_790e57() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.glsl
index c6a606b..c58a1ed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uint textureDimensions_797c30() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_797c30() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.glsl
index ce4d8bd..9f20a6d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_7c753b() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_7c753b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.glsl
index 6ac01d6..5c90b1b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.glsl
index bf267c1..cf63cb2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uint textureDimensions_7d8439() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_7d8439() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.glsl
index df3d1b5..7a2e67b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_7edb05() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_7edb05() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.glsl
index 4774d60..0258c3c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_8057cb() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_8057cb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.glsl
index d40ffc3..0240d11 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.glsl
index f2db566..4389d9f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 uint textureDimensions_841ebe() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_841ebe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.glsl
index b9d17b5..b81136c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_84f363() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_84f363() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.glsl
index c561809..3101d9e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_867ead() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_867ead() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.glsl
index 28dc9d2..d8566af 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_87b42d() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_87b42d() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.glsl
index c1eceae..b98e750 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_881dd4() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_881dd4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.glsl
index cea81a1..e29762a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_8a35f9() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_8a35f9() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.glsl
index 1750582..137a4c9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_8af728() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_8af728() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.glsl
index 8d05d0b..deb560b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uvec2 textureDimensions_8e15f4() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_8e15f4() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.glsl
index 35a34eb..0449926b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 uint textureDimensions_8e5de6() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_8e5de6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.glsl
index 237c886..1c0d969 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2D f_arg_0;
 uint textureDimensions_8efd47() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_8efd47() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.glsl
index 28916bc..6ee8532 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_902179() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image3D arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_902179() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.glsl
index bdab7c7..174cfba 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_904b0f() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_904b0f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.glsl
index 37ca283..ad35970 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_90dd74() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_90dd74() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.glsl
index 18dc877..43af0da 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D f_arg_0;
 uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.glsl
index 1a123c1..bd21698 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2D f_arg_0;
 uint textureDimensions_92552e() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_92552e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.glsl
index c114bdc..f06f998 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2D f_arg_0;
 uvec2 textureDimensions_9573f3() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_9573f3() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.glsl
index ab9cffe..02fb41f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uint textureDimensions_9944d5() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_9944d5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.glsl
index 6facc24..226d766 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_9b10a0() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_9b10a0() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.glsl
index cbbb79c..0f4d108 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_9cd8ad() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_9cd8ad() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.glsl
index d7788b3..68b7a36 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_9d0bac() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_9d0bac() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.glsl
index d2700ea..3a00b23 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_9d68b8() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 uint textureDimensions_9d68b8() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.glsl
index f0516b9..97aec89 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_9dc27a() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_9dc27a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.glsl
index 0ba8996..16bf137 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, r8) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_a20ba2() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 1, r8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_a20ba2() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.glsl
index c998c4f..055b473 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_a25d9b() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a25d9b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.glsl
index 8b1d2f8..1fd50e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_a3ea91() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a3ea91() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.glsl
index 457448f..8afcc54 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 uvec2 textureDimensions_a65776() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_a65776() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.glsl
index 54ed27a..92b61fd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2D f_arg_0;
 uvec2 textureDimensions_aa4353() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_aa4353() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.glsl
index 44cd56b..eeef62c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2D f_arg_0;
 uint textureDimensions_ad7d3b() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ad7d3b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.glsl
index 249f75e..c7ba169 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image3D f_arg_0;
 uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D arg_0;
+layout(binding = 1, rg32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.glsl
index 73aebd9..e4c6861 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_af46ab() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_af46ab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.glsl
index eda46b9..802735e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_b51345() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_b51345() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.glsl
index 6d60c81..e7a5998 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uvec2 textureDimensions_b56112() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_b56112() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.glsl
index 8a46b35..211d4cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_b5ba03() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 uint textureDimensions_b5ba03() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.glsl
index 9d57e46..9c815d1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D f_arg_0;
 uvec3 textureDimensions_b6bbf4() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_b6bbf4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.glsl
index 5e5e8f8..0adbf0b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uvec2 textureDimensions_b8287f() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_b8287f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.glsl
index b0b6267..c1b163d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 uint textureDimensions_b9e7ef() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_b9e7ef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.glsl
index d2a2a0c..7173fae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_bbe285() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_bbe285() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.glsl
index f6aa0d8..ea82e6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_bec716() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bec716() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.glsl
index f3713d8..e1ba364 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_bf9170() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bf9170() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.glsl
index e0b29d5..a60e0f7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_c1189e() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_c1189e() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.glsl
index 833354e..317316a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2D f_arg_0;
 uvec2 textureDimensions_c1dbf6() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_c1dbf6() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.glsl
index 788dd8b..d47b54b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_c44fc1() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_c44fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.glsl
index 010e1da..67a0a82 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 uvec2 textureDimensions_c6b44c() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_c6b44c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.glsl
index 984a3d6..ca6efd8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.glsl
index ec7b9a6..773b1d6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.glsl
index 024fdb6..7d43202 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.glsl
index 1dbcd81..8cc91f4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2D f_arg_0;
 uvec2 textureDimensions_cad3b7() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_cad3b7() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.glsl
index 2297d96..38de24a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_cc947b() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_cc947b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.glsl
index e7e4d10..3838ed5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_cd3033() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_cd3033() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.glsl
index ae34f83..d921e46 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.glsl
@@ -68,7 +68,7 @@
 } v;
 uniform highp sampler2D f_arg_0_plane0;
 uniform highp sampler2D f_arg_0_plane1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform f_arg_0_params_block_std140_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_1;
@@ -152,7 +152,7 @@
 } v;
 uniform highp sampler2D arg_0_plane0;
 uniform highp sampler2D arg_0_plane1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform arg_0_params_block_std140_1_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_1;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.glsl
index cb056c0..d4c263c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 uint textureDimensions_cedabd() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_cedabd() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.glsl
index deea54d..d4169b2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D f_arg_0;
 uvec3 textureDimensions_d0778e() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_d0778e() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.glsl
index ba4c568..608c84c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2D f_arg_0;
 uint textureDimensions_d08a94() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_d08a94() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.glsl
index 6309324..d67f87f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_d1b882() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d1b882() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.glsl
index 3ab77f0..58a3451 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_d44ac3() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_d44ac3() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.glsl
index 10d85f0a..ce11de7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uvec2 textureDimensions_d44dd1() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_d44dd1() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.glsl
index a121e36..0e5b5c2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_d63c28() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d63c28() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.glsl
index 2118702..c7b25b1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 uvec2 textureDimensions_d6f3cf() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_d6f3cf() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.glsl
index a2c487e..4424945 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2D f_arg_0;
 uvec2 textureDimensions_d8ba68() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_d8ba68() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.glsl
index dddb8b6..a0b7a91 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage3D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage3D f_arg_0;
 uvec3 textureDimensions_d8f887() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_d8f887() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.glsl
index 4f259be..92e455f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_da30d2() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_da30d2() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.glsl
index a127354..2639199 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_daf0fe() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_daf0fe() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.glsl
index d7366e4..0cdb8ce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D f_arg_0;
 uvec3 textureDimensions_db7131() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_db7131() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.glsl
index 3784ddd..2719734 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2D f_arg_0;
 uvec2 textureDimensions_dc83ce() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_dc83ce() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.glsl
index 6715c0d..2ab434b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uint textureDimensions_de03c6() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_de03c6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.glsl
index 619a106..46cbd04 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_dee461() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_dee461() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.glsl
index 44c54a1..fd98c7c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_e122fe() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2D arg_0;
 uint textureDimensions_e122fe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.glsl
index 30fb4ee..b27c04f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage3D f_arg_0;
 uvec3 textureDimensions_e738f4() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_e738f4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.glsl
index a6e314a..0138ad0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.glsl
index a37a587..7b074af 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2D f_arg_0;
 uvec2 textureDimensions_e99308() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_e99308() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.glsl
index d8fb927..a8b2620 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_ea066c() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_ea066c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.glsl
index 6ee0cd0..b3cc343 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2D f_arg_0;
 uint textureDimensions_ea25bc() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ea25bc() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.glsl
index c81928c..d939c38 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_eb03b1() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_eb03b1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.glsl
index dcf0e61..0cac9e1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uvec2 textureDimensions_ed1030() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_ed1030() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.glsl
index 26b0ed6..a4ac49e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage3D f_arg_0;
 uvec3 textureDimensions_ef2e58() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_ef2e58() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.glsl
index 0036a40..3b04958 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2D f_arg_0;
 uint textureDimensions_f264a3() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_f264a3() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.glsl
index 3c908f4..409d383 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_f3a2ac() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f3a2ac() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.glsl
index 2e5c903..afe28cb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D f_arg_0;
 uvec3 textureDimensions_f4321c() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_f4321c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.glsl
index 0d4ab71..d5c7df1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 uvec2 textureDimensions_f48886() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_f48886() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.glsl
index 1f0faaa..7cedf8d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_f4e469() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_f4e469() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.glsl
index be1dbb6..cb84e98 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_f7bac5() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_f7bac5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.glsl
index 2f3ead1..a8d8670 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.glsl
index f47cd69..0fed99d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_fbb15a() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_fbb15a() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.glsl
index 3efd69c..36a048c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_fdbae8() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 uint textureDimensions_fdbae8() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.glsl
index afcfb16..570d2a7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_01cd01() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_01cd01() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.glsl
index 775832a..b6410b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_02ef1f() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_02ef1f() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.glsl
index 330a4b7..ea615b7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_045ec9() {
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_045ec9() {
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.glsl
index 2bdf74b..e67ff81 100644
--- a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_050c33() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_050c33() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.glsl
index def9fff..b2b4bc3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_0674b1() {
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_0674b1() {
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.glsl
index cd83e9d..5813059 100644
--- a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_06ac37() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_06ac37() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.glsl
index 81e5ae0..6c4e665 100644
--- a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_072e26() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_072e26() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.glsl
index 953f96b..1e51f1f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_078bc4() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_078bc4() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.glsl
index 8e782f6..9e3eb2e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_10db82() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_10db82() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.glsl
index a52bd77..a828dda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image3D f_arg_0;
 vec4 textureLoad_126466() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D arg_0;
+layout(binding = 1, rg32f) uniform highp image3D arg_0;
 vec4 textureLoad_126466() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.glsl
index a84f284..6261467 100644
--- a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_127e12() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_127e12() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.glsl
index 77c25b8..9019d99 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_13d539() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_13d539() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.glsl
index 1f2aeea..f724f78 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_13e90c() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_13e90c() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.glsl
index 21cd53f..b06fd76 100644
--- a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_143d84() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_143d84() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.glsl
index 9c1833f..e735952 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_1471b8() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1471b8() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.glsl
index ab42493..3517cdc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_1561a7() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1561a7() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.glsl
index 3382a54..eb03cfc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_15e675() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_15e675() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.glsl
index 3b5fae7..b1acd7f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_1619bf() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_1619bf() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.glsl
index 73deabf..0f61c56 100644
--- a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_18ac11() {
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_18ac11() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.glsl
index d141625..a203b5d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D f_arg_0;
 uvec4 textureLoad_19d6be() {
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_19d6be() {
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.glsl
index 4cc89c4..93c33d0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_19e5ca() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_19e5ca() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.glsl
index 0c9dbbd..f895608 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_1a062f() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_1a062f() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.glsl
index 4400d88..b156f20 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_1a8452() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1a8452() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.glsl
index 6d609ba..b2d8c45 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_1aa950() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1aa950() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.glsl
index bce5b16..2530381 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D f_arg_0;
 uvec4 textureLoad_1b4332() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_1b4332() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl
index cd4ac08..abe79ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl
@@ -66,7 +66,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform f_arg_0_params_block_std140_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
@@ -181,7 +181,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform arg_0_params_block_std140_1_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.glsl
index d5647ba..3e9c635 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_1e6baa() {
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 vec4 textureLoad_1e6baa() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.glsl
index 6f2dfd0..2e4b752 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_1eb93f() {
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_1eb93f() {
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.glsl
index fcd087e..4838c90 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D f_arg_0;
+layout(binding = 1, r8) uniform highp image3D f_arg_0;
 vec4 textureLoad_1fde63() {
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D arg_0;
+layout(binding = 1, r8) uniform highp image3D arg_0;
 vec4 textureLoad_1fde63() {
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.glsl
index 12640d9..8b3c071 100644
--- a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_206a08() {
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_206a08() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.glsl
index 9162ae7..7ebd36f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_20fa2f() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_20fa2f() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.glsl
index a15403a..e9a67b5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_22e963() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_22e963() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.glsl
index 9eb968a..f719e6a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_23007a() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_23007a() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.glsl
index a794524..cbaecd7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_23ff89() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_23ff89() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.glsl
index 08948da..05ea4ec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_26c4f8() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1))).zyxw;
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_26c4f8() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1))).zyxw;
diff --git a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.glsl
index bb42884..171700e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_26d7f1() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_26d7f1() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.glsl
index d882cfd..0083c1b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp image3D f_arg_0;
 vec4 textureLoad_272e7a() {
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D arg_0;
+layout(binding = 1, r32f) uniform highp image3D arg_0;
 vec4 textureLoad_272e7a() {
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.glsl
index 9949cda..b13e0da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_276643() {
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_276643() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.glsl
index d968d33..14ed874 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_276a2c() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_276a2c() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.glsl
index a9143fc..86e43fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_2887d7() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_2887d7() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.glsl
index 68f6fbb..402a40a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_2a82d9() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_2a82d9() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.glsl
index 1db08db..1279327 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_2ae485() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2ae485() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.glsl
index 91da09f..708c412 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_2c72ae() {
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2c72ae() {
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.glsl
index 9a81b57..585e04f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_2d6cf7() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2d6cf7() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.glsl
index c08987e..ba84236 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_2e3552() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_2e3552() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.glsl
index b01c40b..57fc388 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_2eaf31() {
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_2eaf31() {
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.glsl
index 09fd1da..fd702e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_313c73() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_313c73() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.glsl
index 932283f..d5d6059 100644
--- a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_31db4b() {
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_31db4b() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.glsl
index 048a059..03c134d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_321210() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_321210() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.glsl
index 77bc465..5f840b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_33d3aa() {
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_33d3aa() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.glsl
index f8558e6..aca46f7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_348827() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_348827() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.glsl
index 98d3bb6..44f16b8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_34d97c() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_34d97c() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.glsl
index ade6d56..7f93a88 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 vec4 textureLoad_35a5e2() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 vec4 textureLoad_35a5e2() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.glsl
index 720b035..db10b11 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_35d464() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_35d464() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.glsl
index 299f566..4902a8b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_374351() {
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_374351() {
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.glsl
index 31dc21a..01a8bd2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_388688() {
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_388688() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.glsl
index d9869a8..e5aade0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_39ef40() {
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_39ef40() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.glsl
index edb5241..e9ce635 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_3aea13() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_3aea13() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.glsl
index fe84149..bf6b4ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_3bbc2b() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 vec4 textureLoad_3bbc2b() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.glsl
index 212b3b5..5a32cf7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_3c0d9e() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_3c0d9e() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.glsl
index 8186560..d49d464 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_3c9587() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3c9587() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.glsl
index 877f707..f35ec11 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_3d001b() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_3d001b() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.glsl
index 6920e23..fcbd73b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_3d9c90() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_3d9c90() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.glsl
index 7c57579..095fb59 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 vec4 textureLoad_3e16a8() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 vec4 textureLoad_3e16a8() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.glsl
index e298385..1fbdfec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_3e5f6a() {
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3e5f6a() {
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.glsl
index 81519bc..ef3a7a0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_424afd() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_424afd() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.glsl
index fc7f994..96080f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_43484a() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_43484a() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.glsl
index 42df77c..3a0cc4c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_44c826() {
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_44c826() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.glsl
index e4000bd..3ac02e6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_454347() {
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_454347() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.glsl
index ecc10c4..720a54e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_4638a0() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4638a0() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.glsl
index f2e9ae0..734661c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_469912() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_469912() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.glsl
index 87700fd..27e2400 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_46dbf5() {
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_46dbf5() {
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.glsl
index 115aa59..d624f7a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_482627() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_482627() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.glsl
index 1f55f90..e87a56f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_4951bb() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_4951bb() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.glsl
index 062379a..afd18a8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D f_arg_0;
 uvec4 textureLoad_4c1a1e() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_4c1a1e() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.glsl
index 3e61eed..22220ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_4c67be() {
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_4c67be() {
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.glsl
index 4df0998..c143e98 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D f_arg_0;
 uvec4 textureLoad_4ccf9a() {
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_4ccf9a() {
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.glsl
index e231e25..019e453 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_4cdca5() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4cdca5() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.glsl
index 7bb1182..8506ae3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_4f5496() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_4f5496() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.glsl
index cff1660..2531206 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_4fa6ae() {
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u))))).zyxw;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_4fa6ae() {
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u))))).zyxw;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.glsl
index 801bfab..5434a90 100644
--- a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_505aa2() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_505aa2() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.glsl
index 7d575ab..9192479 100644
--- a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_50915c() {
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_50915c() {
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.glsl
index 9407453..76f9fee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_519ab5() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_519ab5() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.glsl
index 816ed60..f70278b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_53378a() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_53378a() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.glsl
index 9a9451b..b037334 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_54e0ce() {
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u))))).zyxw;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_54e0ce() {
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u))))).zyxw;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.glsl
index 5f3286a..19ecac8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_54fb38() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_54fb38() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.glsl
index fe4049e..3c7f63b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_55e745() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_55e745() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.glsl
index 0abfc86..f967f72 100644
--- a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_560573() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_560573() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.glsl
index 55b7bcb..6d63fe3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_56a000() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 vec4 textureLoad_56a000() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.glsl
index a1236ab..f27b875 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_582015() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_582015() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.glsl
index 187a9f1..a81d7cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_589eaa() {
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_589eaa() {
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.glsl
index 9c31077..3c2fcf1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_5abbf2() {
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_5abbf2() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.glsl
index caa35f6..182d6f7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_5bb7fb() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_5bb7fb() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.glsl
index 62ca422..88ee878 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_5cd3fc() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_5cd3fc() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.glsl
index 2ea5c10..43b2ac7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_5cee3b() {
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5cee3b() {
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.glsl
index 2540037..bb75f60 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_5d0a2f() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_5d0a2f() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.glsl
index df7eea6..9ac39fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_5d4042() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_5d4042() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.glsl
index 53bcdfa..fdf5c9ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_5dd4c7() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_5dd4c7() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.glsl
index 619a54d..a5cb36d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_5e8d3f() {
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_5e8d3f() {
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.glsl
index 9ccadba..73172d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_5ed6ad() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_5ed6ad() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.glsl
index d756379..970fcae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_5f4473() {
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5f4473() {
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.glsl
index cc326e1..5d6b580 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_5feb4d() {
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_5feb4d() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.glsl
index 28a1934..7468902 100644
--- a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D f_arg_0;
 ivec4 textureLoad_61e2e8() {
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_61e2e8() {
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.glsl
index f796607..2968837 100644
--- a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_620caa() {
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_620caa() {
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.glsl
index 9f6e620..9def658 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_62d125() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_62d125() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.glsl
index 2738468..2296dd3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_63be18() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_63be18() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.glsl
index e46f487..a5cf5ed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_65a4d0() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_65a4d0() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.glsl
index 790ce41..81e1fb5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_6678b6() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_6678b6() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.glsl
index 5453017..4f12fb8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_67d826() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_67d826() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.glsl
index f59aec5..7b17761 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_67edca() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_67edca() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.glsl
index 171c2f0..5943b6b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_69fee5() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_69fee5() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.glsl
index e100212..6dbd82d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_6d1fb4() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_6d1fb4() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.glsl
index fe42d42..381a18b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_6f0370() {
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_6f0370() {
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.glsl
index 978d3b4..1a47f55 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_6f1750() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_6f1750() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.glsl
index 0a25b10..3326cb0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_72bb3c() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_72bb3c() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.glsl
index 68a7f7a..593d9f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_72c9c3() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 vec4 textureLoad_72c9c3() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.glsl
index a993982..9b46bff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_749704() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_749704() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.glsl
index 14abecb..29544a4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_773c46() {
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_773c46() {
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.glsl
index 6803165..2c532b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_7dab57() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_7dab57() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.glsl
index ea88310..f5a3be8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_7dd3d5() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 vec4 textureLoad_7dd3d5() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.glsl
index 050c53a..5e9f814 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_83162f() {
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_83162f() {
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.glsl
index 37c2c20..45344a40 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_83cea4() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_83cea4() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.glsl
index fed9cd0..8906874 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_83d6e3() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_83d6e3() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.glsl
index a2dee03..c3527d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_84c728() {
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_84c728() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.glsl
index 0e721b2..79bf468 100644
--- a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_862833() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_862833() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.glsl
index cf4add1..60de0d1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_881349() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_881349() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.glsl
index 73c2569..4db5010 100644
--- a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_89620b() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_89620b() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.glsl
index db1835a..ad2a2ee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_8a291b() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_8a291b() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.glsl
index b6e0a27..79de54f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_8a9988() {
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_8a9988() {
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
index 35d61f3..b8c50c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
@@ -66,7 +66,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform f_arg_0_params_block_std140_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
@@ -181,7 +181,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform arg_0_params_block_std140_1_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.glsl
index e3c95ff..2c7d5be 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_8bf8c2() {
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 vec4 textureLoad_8bf8c2() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.glsl
index a2ab971..6f98059 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_8c6176() {
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_8c6176() {
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.glsl
index 0d6617c..ea12eb1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_8d64c3() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_8d64c3() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.glsl
index ec95f7d..125142c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_8db0ce() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_8db0ce() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.glsl
index 4f61782..bc25fba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_8e5032() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_8e5032() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.glsl
index a20d099..b5b5fff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_8ff033() {
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_8ff033() {
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.glsl
index 4c56b8b..e892638 100644
--- a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image3D f_arg_0;
 vec4 textureLoad_91ede5() {
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D arg_0;
+layout(binding = 1, rg32f) uniform highp image3D arg_0;
 vec4 textureLoad_91ede5() {
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.glsl
index 5b62803..5a19d2a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 vec4 textureLoad_92dd61() {
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 vec4 textureLoad_92dd61() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.glsl
index c925ee7..d4318a0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_936952() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_936952() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.glsl
index bd06754..4abba4e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_93f23e() {
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_93f23e() {
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.glsl
index cf3ce55..399d987 100644
--- a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_947107() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_947107() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.glsl
index 016f1dc..8748530 100644
--- a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_970308() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_970308() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.glsl
index 1eb6276..aad26d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D f_arg_0;
+layout(binding = 1, r8) uniform highp image3D f_arg_0;
 vec4 textureLoad_99d8fa() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D arg_0;
+layout(binding = 1, r8) uniform highp image3D arg_0;
 vec4 textureLoad_99d8fa() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.glsl
index d959691..f0049d8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_9a7c90() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_9a7c90() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.glsl
index ff2288c..e06fcfd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_9a8c1e() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_9a8c1e() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.glsl
index 4a590f1..f981aff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_9b5343() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_9b5343() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.glsl
index 1a29f64..b84cc9b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_9c2376() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9c2376() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.glsl
index a6e500b..2ee78b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_9c2a14() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_9c2a14() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.glsl
index 6f5cab7..e991cbc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_9cf7df() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_9cf7df() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.glsl
index 1258bf7..d03afc8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_9de6f5() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9de6f5() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.glsl
index 356087b..2a9e2fc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_a03af1() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_a03af1() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.glsl
index b1937f7..04cef36 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_a5c4e2() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_a5c4e2() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.glsl
index 2a42ac1..4ed6e2a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_a5e0a5() {
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 vec4 textureLoad_a5e0a5() {
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.glsl
index 394ffb3..8435dfc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_a6a85a() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a6a85a() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.glsl
index ce7e6d5..3a3955c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_a6b61d() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_a6b61d() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.glsl
index 73236f0..3f69327 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_a7444c() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_a7444c() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.glsl
index 4f77ba8..6ffda9b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_a7a3c3() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_a7a3c3() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.glsl
index 3089a3e..ed8e6ad 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_a8549b() {
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a8549b() {
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.glsl
index 90702bb..88583b7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_aa6130() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_aa6130() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.glsl
index 652043f..54ff47c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_aa8a0d() {
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aa8a0d() {
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.glsl
index d8b4dcf..568966a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_aae7f6() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_aae7f6() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.glsl
index 01bc741..fff01fb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_ac64f7() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_ac64f7() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.glsl
index 40bf89a4..2a79717 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_ad551e() {
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_ad551e() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.glsl
index 32d8aa3..921e557 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_aeae73() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_aeae73() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.glsl
index b31eff2..e8d3f0f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_aebc09() {
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aebc09() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.glsl
index 12fc7d0..70b59e8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_af0507() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_af0507() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.glsl
index b649b64..849b47f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_b1bf79() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_b1bf79() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.glsl
index 7050fbc..e9bb3c6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_b1ca35() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_b1ca35() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.glsl
index 19504c4..8fe2698 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_b24d27() {
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_b24d27() {
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.glsl
index b19f3e9..ca49100 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_b25644() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_b25644() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.glsl
index 0446797..757db21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D f_arg_0;
 ivec4 textureLoad_b27c33() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_b27c33() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.glsl
index c56d912..3c5c97c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_b4d6c4() {
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 vec4 textureLoad_b4d6c4() {
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.glsl
index 30dca7c..6928812 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_b58c6d() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b58c6d() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.glsl
index 7d66cd5..8e2d8e4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_b6c458() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_b6c458() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.glsl
index 28a5060..f597b4c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_b75c8f() {
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_b75c8f() {
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.glsl
index f4294d8..e424ee2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_b7f74f() {
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u))).zyxw;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_b7f74f() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u))).zyxw;
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.glsl
index 9771273..1d07a76 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_b80e7e() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b80e7e() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.glsl
index 11b598f..68a100e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_b94d15() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_b94d15() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.glsl
index d6456956e..e09e891 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_ba023a() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_ba023a() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.glsl
index 43ecb54..650d10b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_bba04a() {
   uvec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_bba04a() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.glsl
index 7c9f0c4..122b19f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_bc882d() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 vec4 textureLoad_bc882d() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.glsl
index bfb9979..1c4330f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_bdc67a() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_bdc67a() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.glsl
index a0c35ee..76ac31e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_bfd154() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_bfd154() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.glsl
index 441807e..3a00d0a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_c02b74() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c02b74() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.glsl
index 81283f9..f48b761 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_c07013() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c07013() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.glsl
index 1b2ef6b..1a63616 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_c21b33() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c21b33() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.glsl
index de3c388..48be565 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_c2d09a() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_c2d09a() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.glsl
index 0dfe429..b81b542 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_c40dcb() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c40dcb() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.glsl
index 1fd390b..0535ad6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_c456bc() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_c456bc() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.glsl
index c4d9621..36827ee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_c5791b() {
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c5791b() {
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.glsl
index c4789b9..341184e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_c66b20() {
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c66b20() {
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.glsl
index c26aa6f..5a7222f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_c7cbed() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c7cbed() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.glsl
index 2c534c4..89a2daf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_c80691() {
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c80691() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.glsl
index d37451d..17c2e21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_c8ed19() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c8ed19() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.glsl
index 01bb907..c07810c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_c9cc40() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c9cc40() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.glsl
index 95f97ae..0f0bac5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_c9f310() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c9f310() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.glsl
index ab61871..7fc15f5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_cdccd2() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_cdccd2() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.glsl
index 7f5ceaf..40787e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_cdd343() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_cdd343() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.glsl
index 92639d3..7f7866d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D f_arg_0;
 ivec4 textureLoad_cec477() {
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_cec477() {
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.glsl
index c981897..3af796b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_cece6c() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_cece6c() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.glsl
index 5eeac84..69feb68 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_d02afc() {
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_d02afc() {
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.glsl
index e76bf99..f8b56e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_d0e351() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_d0e351() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.glsl
index 8e8bfb5..f1a6168 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_d357bb() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u))).zyxw;
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d357bb() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u))).zyxw;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.glsl
index 9fb439f..ae9d92f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D f_arg_0;
 ivec4 textureLoad_d41c72() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_d41c72() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.glsl
index 6efa42f..4a78516 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_d4df19() {
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d4df19() {
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.glsl
index bed1419..d499918 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_d5c48d() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d5c48d() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.glsl
index b2868b7..ff865dc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_d81c57() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d81c57() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.glsl
index 19b03c6..a0e94b8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_d85d61() {
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d85d61() {
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.glsl
index 50a0572..4904abf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_d8617f() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_d8617f() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.glsl
index 7e555bb..8795f28 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_dbd554() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dbd554() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.glsl
index cbd98ad..4a83d71 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_dd8776() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_dd8776() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.glsl
index 8270596..ae968fb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_ddeed3() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_ddeed3() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.glsl
index 3b078b5..022eeb8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_dee8e7() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dee8e7() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.glsl
index 221e6d2..bd41494 100644
--- a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_defd9a() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 vec4 textureLoad_defd9a() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.glsl
index 23b6966..9bf964f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_dfdf3b() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_dfdf3b() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.glsl
index 3ce1759..6fce027 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_e2292f() {
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_e2292f() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.glsl
index 242b85d..11ada3f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_e2b3a1() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_e2b3a1() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.glsl
index f59eb3c..5010d3d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_e3b08b() {
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_e3b08b() {
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.glsl
index 48637be..115d363 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 vec4 textureLoad_e4051a() {
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 vec4 textureLoad_e4051a() {
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.glsl
index 8fea4d0..a86ba51 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_e57e92() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_e57e92() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.glsl
index 2fff7ae..0d7e13d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_e59fdf() {
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_e59fdf() {
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.glsl
index 6eb1b90..227af84 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_e65916() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_e65916() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.glsl
index 9846483..fca8c2e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_e893d7() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e893d7() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.glsl
index 1493afc..867c525 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_e92dd0() {
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e92dd0() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.glsl
index 187453c..3c648b5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_ea2abd() {
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_ea2abd() {
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.glsl
index a66f7fe..5b6de86 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_eb573b() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_eb573b() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   ivec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.glsl
index f6c0f77..ed3847d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_ecc823() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_ecc823() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.glsl
index 140915d..3aa27c9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_ed55a8() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_ed55a8() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.glsl
index 08d3d0b..7d49b28 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_ee33c5() {
   ivec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(f_arg_0)) - uvec3(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_ee33c5() {
   ivec4 res = imageLoad(arg_0, ivec3(min(uvec3(1u), (uvec3(imageSize(arg_0)) - uvec3(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.glsl
index cff9c43..b483e4d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_eecf7d() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(f_arg_0).xy) - uvec2(1u));
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_eecf7d() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   uvec2 v_2 = (uvec2(imageSize(arg_0).xy) - uvec2(1u));
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.glsl
index 9fe1dc6..97e182f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_ef2ec3() {
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_ef2ec3() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.glsl
index 4e30f39..36a7b00 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_ef5405() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_ef5405() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.glsl
index fac6ad2..b407c24 100644
--- a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_efa787() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_efa787() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.glsl
index e28df5b..517bbcd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_f06b69() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f06b69() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.glsl
index bdd53f5..81946e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp image3D f_arg_0;
 vec4 textureLoad_f1c549() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D arg_0;
+layout(binding = 1, r32f) uniform highp image3D arg_0;
 vec4 textureLoad_f1c549() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.glsl
index c0e735a..813693c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_f2a7ff() {
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_f2a7ff() {
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.glsl
index 18ef605..dc04c8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_f2bdd4() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 vec4 textureLoad_f2bdd4() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.glsl
index bd4db0f..26a2f42 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_f35ac7() {
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f35ac7() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.glsl
index 4ffabce..9fe9ef3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_f379e2() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f379e2() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.glsl
index 0551fef..8b76465 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_f56e6f() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_f56e6f() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   uvec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.glsl
index 517b5c1..0ed479f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_f5aee2() {
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_f5aee2() {
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.glsl
index 1074148..1c1e86a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_f74bd8() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_f74bd8() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.glsl
index 90904cf..353b061 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_f7f936() {
   uint v_1 = min(1u, (uint(imageSize(f_arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0).xy) - uvec2(1u))));
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f7f936() {
   uint v_1 = min(1u, (uint(imageSize(arg_0).z) - 1u));
   ivec2 v_2 = ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0).xy) - uvec2(1u))));
diff --git a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.glsl
index 22ec870..7bf7a1a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_f81792() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_f81792() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.glsl
index 7477a54..ed258a9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_f8a2e8() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1))).zyxw;
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_f8a2e8() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1))).zyxw;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.glsl
index 3cc0abe..12b7d7d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_f92c2d() {
   uvec2 v_1 = (uvec2(imageSize(f_arg_0)) - uvec2(1u));
   vec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 vec4 textureLoad_f92c2d() {
   uvec2 v_1 = (uvec2(imageSize(arg_0)) - uvec2(1u));
   vec4 res = imageLoad(arg_0, ivec2(min(uvec2(ivec2(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.glsl
index 2a00a76..4f07dad 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_f9eaaf() {
   ivec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(f_arg_0)).x - 1u)), 0u)));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f9eaaf() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(min(1u, (uvec2(imageSize(arg_0)).x - 1u)), 0u)));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.glsl
index fad87e6..975c981 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_fc6d36() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_fc6d36() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.glsl
index e09bc53..7a817f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_fd6442() {
   uvec4 res = imageLoad(f_arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(f_arg_0)) - uvec2(1u)))));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_fd6442() {
   uvec4 res = imageLoad(arg_0, ivec2(min(uvec2(1u), (uvec2(imageSize(arg_0)) - uvec2(1u)))));
   return res;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.glsl
index 70e132d..4e7991e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_fdebd0() {
   uint v_1 = (uint(imageSize(f_arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
@@ -30,7 +30,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_fdebd0() {
   uint v_1 = (uint(imageSize(arg_0).z) - 1u);
   uint v_2 = min(uint(1), v_1);
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.glsl
index 6f486b6..1ec9902 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_fe222a() {
   uint v_1 = (uvec2(imageSize(f_arg_0)).x - 1u);
   vec4 res = imageLoad(f_arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_fe222a() {
   uint v_1 = (uvec2(imageSize(arg_0)).x - 1u);
   vec4 res = imageLoad(arg_0, ivec2(uvec2(min(uint(1), v_1), 0u)));
diff --git a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.glsl
index b2c2a24..5181427 100644
--- a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_feab99() {
   uvec3 v_1 = (uvec3(imageSize(f_arg_0)) - uvec3(1u));
   vec4 res = imageLoad(f_arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
@@ -27,7 +27,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_feab99() {
   uvec3 v_1 = (uvec3(imageSize(arg_0)) - uvec3(1u));
   vec4 res = imageLoad(arg_0, ivec3(min(uvec3(ivec3(1)), v_1)));
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.glsl
index 2737661..72ad44f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2DArray f_arg_0;
 uint textureNumLayers_014a3b() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_014a3b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.glsl
index 871b6bf..03c9d0b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uint textureNumLayers_071ebc() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_071ebc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.glsl
index 322df14..8d88bd2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_0fe8dc() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_0fe8dc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.glsl
index df7fca6..14599fd 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.glsl
index 21fe2d7..4cab609 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_1f858a() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_1f858a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.glsl
index 7afe7a6..a5b5831 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uint textureNumLayers_24d572() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_24d572() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.glsl
index 4983cd0..4f18f2a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 uint textureNumLayers_26c9f9() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_26c9f9() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.glsl
index 8fa00f0..0e79a80 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uint textureNumLayers_2d95ea() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_2d95ea() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.glsl
index cba5291..946fec1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_3465ec() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_3465ec() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.glsl
index d30e724..6a02039 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2DArray f_arg_0;
 uint textureNumLayers_3580ab() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_3580ab() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.glsl
index c129a39..0f5a557 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_379cc5() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_379cc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.glsl
index 09ee868..a12fb59 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 uint textureNumLayers_37bc8a() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_37bc8a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.glsl
index 7898d24..63aad21 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 uint textureNumLayers_3ad143() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_3ad143() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.glsl
index 724921e..20ede0f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_3eff89() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_3eff89() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.glsl
index a153785..23330fa 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_485774() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_485774() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.glsl
index c1eaa38..651df68 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 uint textureNumLayers_4adaad() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_4adaad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.glsl
index 541361b..5bff1ca 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_4c4333() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_4c4333() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.glsl
index 5c06da5..311e97d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uint textureNumLayers_520086() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_520086() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.glsl
index 0bae06e..a49ae9c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 uint textureNumLayers_52dfc5() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_52dfc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.glsl
index 32ea44e..4422e49 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uint textureNumLayers_555f67() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_555f67() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.glsl
index 1cc77e2..445307e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_59cc27() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_59cc27() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.glsl
index 4a468e7..94294d8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2DArray f_arg_0;
 uint textureNumLayers_59eb57() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_59eb57() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.glsl
index 3429333..eedd1e7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uint textureNumLayers_5f20d1() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_5f20d1() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.glsl
index 4de3725..0347bd0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2DArray f_arg_0;
 uint textureNumLayers_61bd23() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_61bd23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.glsl
index 933efb4..b9388c7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.glsl
index 2737084..ef61662 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_7895f4() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_7895f4() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.glsl
index 40570b6..1b31805 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_7f28cf() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_7f28cf() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.glsl
index 2e48f6d..c26ae9e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_8356f7() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_8356f7() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.glsl
index 218b066..8177134 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2DArray f_arg_0;
 uint textureNumLayers_878dea() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_878dea() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.glsl
index 7467a0d..d25294f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uint textureNumLayers_87faad() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_87faad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.glsl
index 63eea0b..6bc4728 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2DArray f_arg_0;
 uint textureNumLayers_8bd987() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_8bd987() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.glsl
index 08a4d0a..ffa6abb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_8dbf23() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_8dbf23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.glsl
index 00e8157..93e430e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 uint textureNumLayers_8e1bd0() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_8e1bd0() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.glsl
index 52d10c7..6d5e382 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_90b8cc() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_90b8cc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.glsl
index 89bafdb..986c13f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uint textureNumLayers_9695c6() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_9695c6() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.glsl
index 3d1ffab..492d7dc 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_98a9cf() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_98a9cf() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.glsl
index b2957cd..26a43a1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uint textureNumLayers_9c60e3() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_9c60e3() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.glsl
index bc8f93f..cde61c5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 uint textureNumLayers_aac630() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 uint textureNumLayers_aac630() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.glsl
index c8065d1..f014caa 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 uint textureNumLayers_bf2f76() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_bf2f76() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.glsl
index 54265e8..85d4219 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uint textureNumLayers_d3e21f() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_d3e21f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.glsl
index 59112c2..9263987 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_d75a0b() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_d75a0b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.glsl
index 3d727c2..45fb592 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2DArray f_arg_0;
 uint textureNumLayers_de8087() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_de8087() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.glsl
index 31c73e3..c3505ec 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_f1783f() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_f1783f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
index 2e9f479..e3bcecb 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
@@ -66,7 +66,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 3, std140)
+layout(binding = 4, std140)
 uniform f_arg_0_params_block_std140_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
@@ -175,7 +175,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 3, std140)
+layout(binding = 4, std140)
 uniform arg_0_params_block_std140_1_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
diff --git a/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.glsl
index 853185a..bc5adcf 100644
--- a/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/1cf529.wgsl.expected.glsl
@@ -52,7 +52,7 @@
   uint prevent_dce;
 };
 
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer v_SB_RO_ssbo {
   uint arg_0[];
 } sb_ro;
diff --git a/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.glsl
index fd6594e..1b6f550 100644
--- a/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/3a93e6.wgsl.expected.glsl
@@ -52,7 +52,7 @@
   uint prevent_dce;
 };
 
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer v_SB_RO_ssbo {
   float arg_0[];
 } sb_ro;
diff --git a/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.glsl
index f4666d2..4a23515 100644
--- a/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/9ea96d.wgsl.expected.glsl
@@ -55,7 +55,7 @@
   uint prevent_dce;
 };
 
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer v_SB_RO_ssbo {
   float16_t arg_0[];
 } sb_ro;
diff --git a/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.glsl
index dc82d4b..99523e5 100644
--- a/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/bf7d97.wgsl.expected.glsl
@@ -52,7 +52,7 @@
   uint prevent_dce;
 };
 
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer v_SB_RO_ssbo {
   int arg_0[];
 } sb_ro;
diff --git a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.glsl
index 7edbda8..dcdf10b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_00229f() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_00229f() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.glsl
index 884ac0f..c6b62d5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_01e21e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.glsl
index 81b48e3..cb59f08 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_029589() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.glsl
index c7ed4c1..7757a49 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 uint textureDimensions_0329b0() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_0329b0() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.glsl
index 513ace2..0867843 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_033ea7() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_033ea7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.glsl
index 848fc2b..ac46074 100644
--- a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_07f1ba() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_07f1ba() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.glsl
index 8353060..715c96d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_088918() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_088918() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.glsl
index f26b2ac..42cd803 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 uvec2 textureDimensions_08e371() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_08e371() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.glsl
index e6d3439..63c40e1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2D f_arg_0;
 uint textureDimensions_09140b() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_09140b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.glsl
index 8ec28cc..d56812f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_0baa0d() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_0baa0d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.glsl
index ac698bd..dbdcc4a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_0c0b0c() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_0c0b0c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.glsl
index c210922..44d9f5d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uvec2 textureDimensions_0d4a7c() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_0d4a7c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.glsl
index d303508..348b333 100644
--- a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_135176() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_135176() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.glsl
index 8dd4832..acf27de 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2D f_arg_0;
 uvec2 textureDimensions_1417dd() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_1417dd() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
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 6e06934..3e92821 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage3D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage3D f_arg_0;
 uvec3 textureDimensions_15aa17() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_15aa17() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.glsl
index 174c101..b72b248 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 uvec2 textureDimensions_18160d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.glsl
index a549001..e0229b0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_18f19f() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_18f19f() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.glsl
index 587262d..ace6ec4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D f_arg_0;
 uvec3 textureDimensions_1b720f() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_1b720f() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.glsl
index 76abdad..1a3136b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 uvec2 textureDimensions_1e4024() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_1e4024() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.glsl
index 85a73845..6b9ec7b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 uint textureDimensions_20ecef() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 uint textureDimensions_20ecef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.glsl
index a34cc9d..1484fa8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_212362() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_212362() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.glsl
index bf173bf..609337f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_224113() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_224113() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.glsl
index 3d5ebaf..fa679f0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_25d284() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_25d284() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.glsl
index f4fdbf1..2fb5054 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_2674d8() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_2674d8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.glsl
index c0e8c09..32259c8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D f_arg_0;
 uvec3 textureDimensions_268ddb() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_268ddb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.glsl
index 0e9970e..932f6ab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D f_arg_0;
+layout(binding = 1, r8) uniform highp image3D f_arg_0;
 uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D arg_0;
+layout(binding = 1, r8) uniform highp image3D arg_0;
 uvec3 textureDimensions_282978() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.glsl
index 18fecda..9768029 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_284c27() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_284c27() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.glsl
index 9cd01a5..26bce85 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_2bafdf() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_2bafdf() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.glsl
index 276a876..0de3088 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uint textureDimensions_2dc5c5() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_2dc5c5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.glsl
index de94f0f..497339d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_2ff32a() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_2ff32a() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.glsl
index e5d66a5..c059be5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_305dd5() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_305dd5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.glsl
index 3e43555..f186bf5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage3D f_arg_0;
 uvec3 textureDimensions_31799c() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_31799c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.glsl
index 1076deb..5624f75 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D f_arg_0;
 uvec3 textureDimensions_31d00d() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_31d00d() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.glsl
index 9424fb5..8d77f5d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage3D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage3D f_arg_0;
 uvec3 textureDimensions_35a7e5() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_35a7e5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.glsl
index f832f00..eec98dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage3D f_arg_0;
 uvec3 textureDimensions_35ee69() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_35ee69() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.glsl
index 42ec333..5d6a21b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2D f_arg_0;
 uvec2 textureDimensions_378a65() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_378a65() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.glsl
index d5431ed..388990e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 uvec2 textureDimensions_3834f8() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_3834f8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.glsl
index 9ba310e..06fdcce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_397dab() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_397dab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.glsl
index 8df11fe..959e1ca 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_3a5bb1() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_3a5bb1() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.glsl
index 2bcc588..c95abce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_3a7b69() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_3a7b69() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.glsl
index 7217b9c..fb274a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_3af3e7() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_3af3e7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.glsl
index fa411a7..3fcc306 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_3baab5() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_3baab5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.glsl
index 6cd558d..365e98e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 uvec2 textureDimensions_3bf12a() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_3bf12a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.glsl
index 4bd119a..a96aa9f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_3ff0a5() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_3ff0a5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.glsl
index a74a48f..6b598f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage3D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage3D f_arg_0;
 uvec3 textureDimensions_40c671() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_40c671() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.glsl
index e8fcbca..a1688d6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_40da20() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_40da20() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.glsl
index fe59d06..861407e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_40ecf4() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_40ecf4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.glsl
index 3cb60f3..e01c937 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_41545f() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_41545f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.glsl
index 3b94057..558022d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D f_arg_0;
 uvec3 textureDimensions_423519() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_423519() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.glsl
index 7886802..586c83a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2D f_arg_0;
 uvec2 textureDimensions_439651() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_439651() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.glsl
index e671ca1..ea6415a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage3D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage3D f_arg_0;
 uvec3 textureDimensions_44b358() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_44b358() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.glsl
index 29377a0..fba4789 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_452fc1() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_452fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.glsl
index 76c4602..d840ada 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_4716a4() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_4716a4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.glsl
index 2b07aed..ffff23a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D f_arg_0;
 uvec3 textureDimensions_475c10() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_475c10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.glsl
index d6e1b45..0f50ed5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_4acec7() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_4acec7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.glsl
index 0513c73..37b1070 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_4b26ef() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_4b26ef() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.glsl
index ba77066..850dd15 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_4d1f71() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_4d1f71() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.glsl
index 30f57a0..3a0575a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D f_arg_0;
 uvec3 textureDimensions_4d27b3() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_4d27b3() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.glsl
index ac07648..61ea5cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D f_arg_0;
 uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_4df14c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.glsl
index 44cd664..c547bc9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 uint textureDimensions_4e540a() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 uint textureDimensions_4e540a() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.glsl
index 92e7ab6..c8dbbee 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_52cf60() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_52cf60() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.glsl
index a8972c1..d53eba2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 uvec2 textureDimensions_534ef8() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_534ef8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.glsl
index d54335c..3747ba0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_542c62() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_542c62() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.glsl
index 9cb4328..1c12556 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_578e75() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.glsl
index e0c16c2..8b481b5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2D f_arg_0;
 uint textureDimensions_58a82d() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_58a82d() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.glsl
index a73d757..5b8b056 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage3D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage3D f_arg_0;
 uvec3 textureDimensions_591981() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_591981() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.glsl
index c96ae86..7f9c0fb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_599ab5() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_599ab5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.glsl
index 18c36a8..02a4634 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_5b4b10() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_5b4b10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.glsl
index 21e4acf..b176463 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2D f_arg_0;
 uint textureDimensions_607979() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_607979() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.glsl
index 24b4d52..0fadc2b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_609d34() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_609d34() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.glsl
index c3f49f5..70d4a67 100644
--- a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp image3D f_arg_0;
 uvec3 textureDimensions_617dc8() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D arg_0;
+layout(binding = 1, r32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_617dc8() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.glsl
index 49aada9..cc83175 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uvec2 textureDimensions_62e7ae() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_62e7ae() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.glsl
index 77d79fa..742bd52 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_674058() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_674058() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.glsl
index 882f89c..ff9bd0c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_6dae40() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_6dae40() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.glsl
index 1a33338..69e10e2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D f_arg_0;
 uvec3 textureDimensions_6dbef4() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_6dbef4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.glsl
index 182b229..f48f715 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_6e72c5() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_6e72c5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.glsl
index edc9fac..6d762ea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uint textureDimensions_709357() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_709357() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.glsl
index 8c7b076..afd3b6c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2D f_arg_0;
 uint textureDimensions_7228de() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_7228de() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.glsl
index 66bf6a5..def33ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_7327fa() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_7327fa() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.glsl
index 4efc1ab..14898c5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 uint textureDimensions_740e7c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.glsl
index e359ad0..4944e3a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_756304() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_756304() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.glsl
index d5458be..1ead03d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D f_arg_0;
 uvec3 textureDimensions_790e57() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_790e57() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.glsl
index c6a606b..c58a1ed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uint textureDimensions_797c30() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_797c30() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.glsl
index ce4d8bd..9f20a6d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_7c753b() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_7c753b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.glsl
index 6ac01d6..5c90b1b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_7c7c64() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.glsl
index bf267c1..cf63cb2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uint textureDimensions_7d8439() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_7d8439() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.glsl
index df3d1b5..7a2e67b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_7edb05() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_7edb05() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.glsl
index 4774d60..0258c3c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_8057cb() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_8057cb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.glsl
index d40ffc3..0240d11 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_835f90() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.glsl
index f2db566..4389d9f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 uint textureDimensions_841ebe() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_841ebe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.glsl
index b9d17b5..b81136c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_84f363() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_84f363() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.glsl
index c561809..3101d9e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_867ead() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_867ead() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.glsl
index 28dc9d2..d8566af 100644
--- a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec2 textureDimensions_87b42d() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_87b42d() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.glsl
index c1eceae..b98e750 100644
--- a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_881dd4() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_881dd4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.glsl
index cea81a1..e29762a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_8a35f9() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_8a35f9() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.glsl
index 1750582..137a4c9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_8af728() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_8af728() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.glsl
index 8d05d0b..deb560b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uvec2 textureDimensions_8e15f4() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_8e15f4() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.glsl
index 35a34eb..0449926b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 uint textureDimensions_8e5de6() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_8e5de6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.glsl
index 237c886..1c0d969 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2D f_arg_0;
 uint textureDimensions_8efd47() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_8efd47() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.glsl
index 28916bc..6ee8532 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_902179() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image3D arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_902179() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.glsl
index bdab7c7..174cfba 100644
--- a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_904b0f() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_904b0f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.glsl
index 37ca283..ad35970 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_90dd74() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_90dd74() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.glsl
index 18dc877..43af0da 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D f_arg_0;
 uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_91e3b4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.glsl
index 1a123c1..bd21698 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2D f_arg_0;
 uint textureDimensions_92552e() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_92552e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.glsl
index c114bdc..f06f998 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2D f_arg_0;
 uvec2 textureDimensions_9573f3() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_9573f3() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.glsl
index ab9cffe..02fb41f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uint textureDimensions_9944d5() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_9944d5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.glsl
index 6facc24..226d766 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_9b10a0() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_9b10a0() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.glsl
index cbbb79c..0f4d108 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_9cd8ad() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_9cd8ad() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.glsl
index d7788b3..68b7a36 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_9d0bac() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_9d0bac() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.glsl
index d2700ea..3a00b23 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_9d68b8() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 uint textureDimensions_9d68b8() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.glsl
index f0516b9..97aec89 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_9dc27a() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_9dc27a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.glsl
index 0ba8996..16bf137 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, r8) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_a20ba2() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image3D arg_0;
+layout(binding = 1, r8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_a20ba2() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.glsl
index c998c4f..055b473 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_a25d9b() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a25d9b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.glsl
index 8b1d2f8..1fd50e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_a3ea91() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a3ea91() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.glsl
index 457448f..8afcc54 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 uvec2 textureDimensions_a65776() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_a65776() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.glsl
index 54ed27a..92b61fd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2D f_arg_0;
 uvec2 textureDimensions_aa4353() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_aa4353() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.glsl
index 44cd56b..eeef62c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2D f_arg_0;
 uint textureDimensions_ad7d3b() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ad7d3b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.glsl
index 249f75e..c7ba169 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image3D f_arg_0;
 uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D arg_0;
+layout(binding = 1, rg32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_ae4595() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.glsl
index 73aebd9..e4c6861 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_af46ab() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_af46ab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.glsl
index eda46b9..802735e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_b51345() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_b51345() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.glsl
index 6d60c81..e7a5998 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uvec2 textureDimensions_b56112() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_b56112() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.glsl
index 8a46b35..211d4cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_b5ba03() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 uint textureDimensions_b5ba03() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.glsl
index 9d57e46..9c815d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D f_arg_0;
 uvec3 textureDimensions_b6bbf4() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_b6bbf4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.glsl
index 5e5e8f8..0adbf0b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uvec2 textureDimensions_b8287f() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_b8287f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.glsl
index b0b6267..c1b163d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 uint textureDimensions_b9e7ef() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_b9e7ef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.glsl
index d2a2a0c..7173fae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_bbe285() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_bbe285() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.glsl
index f6aa0d8..ea82e6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_bec716() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bec716() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.glsl
index f3713d8..e1ba364 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D f_arg_0;
 uvec3 textureDimensions_bf9170() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bf9170() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.glsl
index e0b29d5..a60e0f7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_c1189e() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_c1189e() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.glsl
index 833354e..317316a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2D f_arg_0;
 uvec2 textureDimensions_c1dbf6() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_c1dbf6() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.glsl
index 788dd8b..d47b54b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_c44fc1() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_c44fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.glsl
index 010e1da..67a0a82 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 uvec2 textureDimensions_c6b44c() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_c6b44c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.glsl
index 984a3d6..ca6efd8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 uint textureDimensions_c6b985() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.glsl
index ec7b9a6..773b1d6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 uint textureDimensions_c7ea63() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.glsl
index 024fdb6..7d43202 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_c82420() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.glsl
index 1dbcd81..8cc91f4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2D f_arg_0;
 uvec2 textureDimensions_cad3b7() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_cad3b7() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.glsl
index 2297d96..38de24a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_cc947b() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_cc947b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.glsl
index e7e4d10..3838ed5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_cd3033() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_cd3033() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.glsl
index ae34f83..d921e46 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.glsl
@@ -68,7 +68,7 @@
 } v;
 uniform highp sampler2D f_arg_0_plane0;
 uniform highp sampler2D f_arg_0_plane1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform f_arg_0_params_block_std140_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_1;
@@ -152,7 +152,7 @@
 } v;
 uniform highp sampler2D arg_0_plane0;
 uniform highp sampler2D arg_0_plane1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform arg_0_params_block_std140_1_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_1;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.glsl
index cb056c0..d4c263c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 uint textureDimensions_cedabd() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_cedabd() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.glsl
index deea54d..d4169b2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D f_arg_0;
 uvec3 textureDimensions_d0778e() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_d0778e() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.glsl
index ba4c568..608c84c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2D f_arg_0;
 uint textureDimensions_d08a94() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_d08a94() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.glsl
index 6309324..d67f87f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_d1b882() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d1b882() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.glsl
index 3ab77f0..58a3451 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 uvec2 textureDimensions_d44ac3() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_d44ac3() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.glsl
index 10d85f0a..ce11de7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uvec2 textureDimensions_d44dd1() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_d44dd1() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.glsl
index a121e36..0e5b5c2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_d63c28() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d63c28() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.glsl
index 2118702..c7b25b1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 uvec2 textureDimensions_d6f3cf() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_d6f3cf() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.glsl
index a2c487e..4424945 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2D f_arg_0;
 uvec2 textureDimensions_d8ba68() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_d8ba68() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.glsl
index dddb8b6..a0b7a91 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage3D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage3D f_arg_0;
 uvec3 textureDimensions_d8f887() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage3D arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_d8f887() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.glsl
index 4f259be..92e455f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_da30d2() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_da30d2() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.glsl
index a127354..2639199 100644
--- a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 uvec2 textureDimensions_daf0fe() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_daf0fe() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.glsl
index d7366e4..0cdb8ce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D f_arg_0;
 uvec3 textureDimensions_db7131() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_db7131() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.glsl
index 3784ddd..2719734 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2D f_arg_0;
 uvec2 textureDimensions_dc83ce() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_dc83ce() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.glsl
index 6715c0d..2ab434b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uint textureDimensions_de03c6() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_de03c6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.glsl
index 619a106..46cbd04 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_dee461() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_dee461() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.glsl
index 44c54a1..fd98c7c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_e122fe() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2D arg_0;
 uint textureDimensions_e122fe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.glsl
index 30fb4ee..b27c04f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage3D f_arg_0;
 uvec3 textureDimensions_e738f4() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_e738f4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.glsl
index a6e314a..0138ad0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_e824b6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.glsl
index a37a587..7b074af 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2D f_arg_0;
 uvec2 textureDimensions_e99308() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_e99308() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.glsl
index d8fb927..a8b2620 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2D f_arg_0;
 uint textureDimensions_ea066c() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_ea066c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.glsl
index 6ee0cd0..b3cc343 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2D f_arg_0;
 uint textureDimensions_ea25bc() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ea25bc() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.glsl
index c81928c..d939c38 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2DArray f_arg_0;
 uvec2 textureDimensions_eb03b1() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_eb03b1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.glsl
index dcf0e61..0cac9e1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uvec2 textureDimensions_ed1030() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_ed1030() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.glsl
index 26b0ed6..a4ac49e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage3D f_arg_0;
 uvec3 textureDimensions_ef2e58() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_ef2e58() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.glsl
index 0036a40..3b04958 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2D f_arg_0;
 uint textureDimensions_f264a3() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_f264a3() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.glsl
index 3c908f4..409d383 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image3D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image3D f_arg_0;
 uvec3 textureDimensions_f3a2ac() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image3D arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f3a2ac() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.glsl
index 2e5c903..afe28cb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D f_arg_0;
 uvec3 textureDimensions_f4321c() {
   uvec3 res = uvec3(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec3 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_f4321c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.glsl
index 0d4ab71..d5c7df1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 uvec2 textureDimensions_f48886() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_f48886() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.glsl
index 1f0faaa..7cedf8d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_f4e469() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_f4e469() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.glsl
index be1dbb6..cb84e98 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 uvec2 textureDimensions_f7bac5() {
   uvec2 res = uvec2(imageSize(f_arg_0).xy);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_f7bac5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.glsl
index 2f3ead1..a8d8670 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_f94e55() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.glsl
index f47cd69..0fed99d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D f_arg_0;
 uvec2 textureDimensions_fbb15a() {
   uvec2 res = uvec2(imageSize(f_arg_0));
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec2 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_fbb15a() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.glsl
index 3efd69c..36a048c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 uint textureDimensions_fdbae8() {
   uint res = uvec2(imageSize(f_arg_0)).x;
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 uint textureDimensions_fdbae8() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
diff --git a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.glsl
index 87b5eb12..08b2420 100644
--- a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_01cd01() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_01cd01() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.glsl
index 74e7d6c..2de551d 100644
--- a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_02ef1f() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_02ef1f() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.glsl
index 08fa6eb..3f86b99 100644
--- a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_045ec9() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_045ec9() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.glsl
index f8cd5f2..4808e07 100644
--- a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_050c33() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_050c33() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.glsl
index 9fcc14e..e48e805 100644
--- a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_0674b1() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_0674b1() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.glsl
index 15b1819..46d63cd 100644
--- a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_06ac37() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_06ac37() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.glsl
index 92e59e7..7afe5df 100644
--- a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_072e26() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_072e26() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.glsl
index 6dfca1b..ea0a070 100644
--- a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_078bc4() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_078bc4() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.glsl
index d916daa..b73ae23 100644
--- a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_10db82() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_10db82() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.glsl
index 7c7a607..2baaa5a 100644
--- a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image3D f_arg_0;
 vec4 textureLoad_126466() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D arg_0;
+layout(binding = 1, rg32f) uniform highp image3D arg_0;
 vec4 textureLoad_126466() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.glsl
index 5043007..dfedc9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_127e12() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_127e12() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.glsl
index 1f9b1e1..a557dda 100644
--- a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_13d539() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_13d539() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.glsl
index 3bd8602..3197ac3 100644
--- a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_13e90c() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_13e90c() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.glsl
index 4d3ea28..8c09ef8 100644
--- a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_143d84() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_143d84() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.glsl
index 51a6638..fca6730 100644
--- a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_1471b8() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1471b8() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.glsl
index f598ed9..1763e08 100644
--- a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_1561a7() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1561a7() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.glsl
index f79478e..2ea2ab2 100644
--- a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_15e675() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_15e675() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.glsl
index fe30682..047953a 100644
--- a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_1619bf() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_1619bf() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.glsl
index e5ef7a5..9e71c08 100644
--- a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_18ac11() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_18ac11() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.glsl
index 8e327f3..3416d34 100644
--- a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D f_arg_0;
 uvec4 textureLoad_19d6be() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_19d6be() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.glsl
index 9ff3c90..a0ea9e6 100644
--- a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_19e5ca() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_19e5ca() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.glsl
index f1f4d9c..3865700 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_1a062f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_1a062f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.glsl
index bc77861..1253837 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_1a8452() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1a8452() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.glsl
index 25a1821..7f00855 100644
--- a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_1aa950() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1aa950() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.glsl
index 76fb73b..c7fab47 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D f_arg_0;
 uvec4 textureLoad_1b4332() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_1b4332() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl
index 128cc84..448b24e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl
@@ -66,7 +66,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform f_arg_0_params_block_std140_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
@@ -182,7 +182,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform arg_0_params_block_std140_1_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
diff --git a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.glsl
index 3acbf23..5dd0adb 100644
--- a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_1e6baa() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 vec4 textureLoad_1e6baa() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.glsl
index 2d17d14..012b2cc 100644
--- a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_1eb93f() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_1eb93f() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.glsl
index a70d45f..902b6c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D f_arg_0;
+layout(binding = 1, r8) uniform highp image3D f_arg_0;
 vec4 textureLoad_1fde63() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D arg_0;
+layout(binding = 1, r8) uniform highp image3D arg_0;
 vec4 textureLoad_1fde63() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.glsl
index bd9ad22..d3e1161 100644
--- a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_206a08() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_206a08() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.glsl
index fc49e89..992c3bf 100644
--- a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_20fa2f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_20fa2f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.glsl
index a0bbe37..1b0134c 100644
--- a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_22e963() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_22e963() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.glsl
index c25cb88..daa8b67 100644
--- a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_23007a() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_23007a() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.glsl
index af55c03..91300c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_23ff89() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_23ff89() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.glsl
index 206f668..9822e02 100644
--- a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_26c4f8() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_26c4f8() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.glsl
index 1ebf595..13a1380 100644
--- a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_26d7f1() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_26d7f1() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.glsl
index b45aac7..23586ec 100644
--- a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp image3D f_arg_0;
 vec4 textureLoad_272e7a() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D arg_0;
+layout(binding = 1, r32f) uniform highp image3D arg_0;
 vec4 textureLoad_272e7a() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.glsl
index b2982a4..aabaf74 100644
--- a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_276643() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_276643() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.glsl
index 5a9e8a9..4f37375 100644
--- a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_276a2c() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_276a2c() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.glsl
index c870502..ae90470 100644
--- a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_2887d7() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_2887d7() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.glsl
index 1852d07..48d69f3 100644
--- a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_2a82d9() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_2a82d9() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.glsl
index 2cb71a0..6d042a4 100644
--- a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_2ae485() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2ae485() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.glsl
index af308dc..772fe11 100644
--- a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_2c72ae() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2c72ae() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.glsl
index be23c6f..41f1c53 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_2d6cf7() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2d6cf7() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.glsl
index a251355..a0d6283 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_2e3552() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_2e3552() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.glsl
index a3d8987..2282933 100644
--- a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_2eaf31() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_2eaf31() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.glsl
index 47c155d..456ee76 100644
--- a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_313c73() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_313c73() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.glsl
index da1b667..d60a4f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_31db4b() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_31db4b() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.glsl
index 7059d07..d70f338 100644
--- a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_321210() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_321210() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.glsl
index de26121..16a6688 100644
--- a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_33d3aa() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_33d3aa() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.glsl
index 45cd4a3..2d01da3 100644
--- a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_348827() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_348827() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.glsl
index 64f83b0..c79910f 100644
--- a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_34d97c() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_34d97c() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.glsl
index b262156..8ae6144 100644
--- a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 vec4 textureLoad_35a5e2() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 vec4 textureLoad_35a5e2() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.glsl
index 2569e54..c56ea7a 100644
--- a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_35d464() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_35d464() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.glsl
index 312caa94..af51e1f 100644
--- a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_374351() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_374351() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.glsl
index 215f396..7eab293 100644
--- a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_388688() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_388688() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.glsl
index 45f6081..33f504a 100644
--- a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_39ef40() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_39ef40() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.glsl
index c36b50c..0294185 100644
--- a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_3aea13() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_3aea13() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.glsl
index b7e52c6..90e5ed6 100644
--- a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_3bbc2b() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 vec4 textureLoad_3bbc2b() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.glsl
index 8bfb394..a221b1c 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_3c0d9e() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_3c0d9e() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.glsl
index ba34040..c2fb519 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_3c9587() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3c9587() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.glsl
index f2dbc85..e57838b 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_3d001b() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_3d001b() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.glsl
index d712b17..85996e0 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_3d9c90() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_3d9c90() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.glsl
index 7ece344..24ca938 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 vec4 textureLoad_3e16a8() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 vec4 textureLoad_3e16a8() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.glsl
index dfb354a..32a8132 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_3e5f6a() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3e5f6a() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.glsl
index 8d619dc..1c060c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_424afd() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_424afd() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.glsl
index df5401f..e9e1624 100644
--- a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_43484a() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_43484a() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.glsl
index 5b645f6..4a8a095 100644
--- a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_44c826() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_44c826() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.glsl
index 6755ff9..5e49c3f 100644
--- a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_454347() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_454347() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.glsl
index 7582952..a47ba58 100644
--- a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_4638a0() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4638a0() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.glsl
index a650eef..882f2fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_469912() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_469912() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.glsl
index 22ae9bc..2ba0f5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_46dbf5() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_46dbf5() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.glsl
index 3a4d201..6cb2fd1 100644
--- a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_482627() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_482627() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.glsl
index 2275dbf..4d29a6e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_4951bb() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_4951bb() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.glsl
index cb3d884..14eda1d 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D f_arg_0;
 uvec4 textureLoad_4c1a1e() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_4c1a1e() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.glsl
index f5c5c70..ef06de2 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_4c67be() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_4c67be() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.glsl
index fecb610..81a45b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D f_arg_0;
 uvec4 textureLoad_4ccf9a() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_4ccf9a() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.glsl
index 79dd06c..8c20150 100644
--- a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_4cdca5() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4cdca5() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.glsl
index 8a9153e..2967c4a 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_4f5496() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_4f5496() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.glsl
index c223629..ce77af6 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_4fa6ae() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_4fa6ae() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.glsl
index b8b426c..16686c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_505aa2() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_505aa2() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.glsl
index d047636..35a4949 100644
--- a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_50915c() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_50915c() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.glsl
index 42377d79..e3cedd7 100644
--- a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_519ab5() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_519ab5() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.glsl
index 4715b58..165392b 100644
--- a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_53378a() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_53378a() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.glsl
index 513715b..792e9cf 100644
--- a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_54e0ce() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_54e0ce() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.glsl
index 0b1e67f..95beb60 100644
--- a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_54fb38() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_54fb38() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.glsl
index 93e7bd9..e1976b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_55e745() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_55e745() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.glsl
index 15411b3..176e2c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_560573() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_560573() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.glsl
index 8815ffd..f34d61c 100644
--- a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_56a000() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 vec4 textureLoad_56a000() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.glsl
index f5433e6..185e4ae 100644
--- a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_582015() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_582015() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.glsl
index 12ff451..ba4383d 100644
--- a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_589eaa() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_589eaa() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.glsl
index 9cb47f7..c3dc89d 100644
--- a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_5abbf2() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_5abbf2() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.glsl
index 480d1e2..2bf97c9 100644
--- a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_5bb7fb() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_5bb7fb() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.glsl
index 601b71d..77b992f 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_5cd3fc() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_5cd3fc() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.glsl
index 7bbb771..6d85807 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_5cee3b() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5cee3b() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.glsl
index 668ded9..ac0af54 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_5d0a2f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_5d0a2f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.glsl
index ab5cb31..1891299 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_5d4042() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_5d4042() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.glsl
index 71623a9..0b7b105 100644
--- a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_5dd4c7() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_5dd4c7() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.glsl
index 89d221a..bccbfae 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_5e8d3f() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_5e8d3f() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.glsl
index 623be35..80faafc 100644
--- a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_5ed6ad() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_5ed6ad() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.glsl
index 63b9767..e0f994c 100644
--- a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_5f4473() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5f4473() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.glsl
index 9a9b807..1d3dff9 100644
--- a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_5feb4d() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_5feb4d() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.glsl
index b99f1c9..3f7fe81 100644
--- a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D f_arg_0;
 ivec4 textureLoad_61e2e8() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_61e2e8() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.glsl
index 11deea1..dc60bcf 100644
--- a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_620caa() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_620caa() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.glsl
index 8c8b5c9..a2a4315 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_62d125() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_62d125() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.glsl
index 22d88a5..c1df417 100644
--- a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_63be18() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_63be18() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.glsl
index fe63b9c..9d91616 100644
--- a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_65a4d0() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_65a4d0() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.glsl
index 18b90f5..f4c33a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_6678b6() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_6678b6() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.glsl
index 3d88229..74a437a 100644
--- a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_67d826() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_67d826() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.glsl
index a321cfd..697220b 100644
--- a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_67edca() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_67edca() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.glsl
index e71efc1..6ad3828 100644
--- a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_69fee5() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_69fee5() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.glsl
index 1b743ed..51343e9 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_6d1fb4() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_6d1fb4() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.glsl
index 3bec193..4ce1f26 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_6f0370() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_6f0370() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.glsl
index 9dc1f9b..65ba0d1 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_6f1750() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_6f1750() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.glsl
index 143ae7b..56bb1d4 100644
--- a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_72bb3c() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_72bb3c() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.glsl
index 5815cc3..8cec69c 100644
--- a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_72c9c3() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 vec4 textureLoad_72c9c3() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.glsl
index 612236a..018bd72 100644
--- a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_749704() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_749704() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.glsl
index f063f3f..edadf40 100644
--- a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_773c46() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_773c46() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.glsl
index 7b93ca4..b0a2f82 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_7dab57() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_7dab57() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.glsl
index 153b503..3828e7d 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_7dd3d5() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 vec4 textureLoad_7dd3d5() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.glsl
index 33d9fcf..3a0d13f 100644
--- a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_83162f() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_83162f() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.glsl
index a6dfd15..f473cb9 100644
--- a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_83cea4() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_83cea4() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.glsl
index b0c019f..e1fe3ff 100644
--- a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_83d6e3() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_83d6e3() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.glsl
index dff5502..c6d20dc 100644
--- a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_84c728() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_84c728() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.glsl
index 96f093a..19766ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_862833() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_862833() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.glsl
index 5440562..86dc08f 100644
--- a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_881349() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_881349() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.glsl
index 4adb03d..081f270 100644
--- a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_89620b() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_89620b() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.glsl
index b6d3fba..dd29b5c 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_8a291b() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_8a291b() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.glsl
index 436c7e6..0e34aa26 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_8a9988() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_8a9988() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
index f3a670b..093b34b 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
@@ -66,7 +66,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform f_arg_0_params_block_std140_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
@@ -182,7 +182,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 2, std140)
+layout(binding = 3, std140)
 uniform arg_0_params_block_std140_1_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
diff --git a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.glsl
index 067d4ff..b391034 100644
--- a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_8bf8c2() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 vec4 textureLoad_8bf8c2() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.glsl
index 5010c6d..9aaf5cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_8c6176() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_8c6176() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.glsl
index 9d281c9..f5f6f18 100644
--- a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_8d64c3() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_8d64c3() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.glsl
index c1ef562..62d65de 100644
--- a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_8db0ce() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_8db0ce() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.glsl
index 260c1e0..13bc2e5 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_8e5032() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_8e5032() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.glsl
index 9662c68..f85802b 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_8ff033() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_8ff033() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.glsl
index 7f3c386..4de5a7e 100644
--- a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image3D f_arg_0;
 vec4 textureLoad_91ede5() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image3D arg_0;
+layout(binding = 1, rg32f) uniform highp image3D arg_0;
 vec4 textureLoad_91ede5() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.glsl
index 80aeaef..69fb568 100644
--- a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 vec4 textureLoad_92dd61() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 vec4 textureLoad_92dd61() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.glsl
index ea18bb8..0878c2c 100644
--- a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_936952() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_936952() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.glsl
index b7d9d9b..bb57df9 100644
--- a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_93f23e() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_93f23e() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.glsl
index 2607e0e..be65f7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_947107() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_947107() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.glsl
index 7d9a38e..7c8645c 100644
--- a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_970308() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_970308() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.glsl
index aff8278..554b2bb 100644
--- a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D f_arg_0;
+layout(binding = 1, r8) uniform highp image3D f_arg_0;
 vec4 textureLoad_99d8fa() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image3D arg_0;
+layout(binding = 1, r8) uniform highp image3D arg_0;
 vec4 textureLoad_99d8fa() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.glsl
index fda9b5a..67b2437 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_9a7c90() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_9a7c90() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.glsl
index 3b77933..4f6f982 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_9a8c1e() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_9a8c1e() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.glsl
index afcd967..43e9d5c 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_9b5343() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_9b5343() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.glsl
index 4f462b8..780c239 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_9c2376() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9c2376() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.glsl
index 9f9e583..3251dfc 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_9c2a14() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_9c2a14() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.glsl
index c136b55..f5e4d3a 100644
--- a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_9cf7df() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_9cf7df() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.glsl
index c5b947d..173052c 100644
--- a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_9de6f5() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9de6f5() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.glsl
index ca655d7..be91a61 100644
--- a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_a03af1() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_a03af1() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.glsl
index 6953ea4..b8ca609 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_a5c4e2() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_a5c4e2() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.glsl
index 4d2c6fd..b347c79 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_a5e0a5() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 vec4 textureLoad_a5e0a5() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.glsl
index ffd58c0..e06ba06 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_a6a85a() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a6a85a() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.glsl
index 2a58134..d670486 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_a6b61d() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_a6b61d() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.glsl
index 7c2a7a1..4981a32 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_a7444c() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_a7444c() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.glsl
index 3b75f6e..1acca77 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_a7a3c3() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_a7a3c3() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.glsl
index 9610746..735f7e0 100644
--- a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_a8549b() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a8549b() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.glsl
index 72ca3c7..4c1c37e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_aa6130() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_aa6130() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.glsl
index 9f86c79..c7a95a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_aa8a0d() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aa8a0d() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.glsl
index 82ece65..a0367c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_aae7f6() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_aae7f6() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.glsl
index 9a0034f..bc383d3 100644
--- a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_ac64f7() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_ac64f7() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.glsl
index f815db2..9473d6a 100644
--- a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_ad551e() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_ad551e() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.glsl
index 45eef21..374ee9b 100644
--- a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_aeae73() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_aeae73() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.glsl
index 398d6e2..6710411 100644
--- a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_aebc09() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aebc09() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.glsl
index 2a7e7b6..60c0ba2 100644
--- a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_af0507() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_af0507() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.glsl
index 8b860e8..05cc3f8 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_b1bf79() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_b1bf79() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.glsl
index 7e182ba..21fa588 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_b1ca35() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_b1ca35() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.glsl
index c9a1cdc..119b786 100644
--- a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_b24d27() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_b24d27() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.glsl
index 2922a31..72090ac 100644
--- a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_b25644() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_b25644() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.glsl
index 95d3ba7..3f244e1 100644
--- a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D f_arg_0;
 ivec4 textureLoad_b27c33() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_b27c33() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.glsl
index d713b20..299fe46 100644
--- a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_b4d6c4() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 vec4 textureLoad_b4d6c4() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.glsl
index 5fa2150..0b85374 100644
--- a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_b58c6d() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b58c6d() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.glsl
index 514b5e3..d9dee78 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_b6c458() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_b6c458() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.glsl
index c3b9987..e747c7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_b75c8f() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_b75c8f() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.glsl
index f9bba09..8286eff 100644
--- a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_b7f74f() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_b7f74f() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.glsl
index 56a9bfc..5ed411e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_b80e7e() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b80e7e() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.glsl
index 2f8fce9..6d3638e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_b94d15() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_b94d15() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.glsl
index 66d50e5..1fc7afe 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_ba023a() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_ba023a() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.glsl
index 1a98b5a..a16a5eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D f_arg_0;
 uvec4 textureLoad_bba04a() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2D arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_bba04a() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.glsl
index 7171755..39e95ae 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_bc882d() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 vec4 textureLoad_bc882d() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.glsl
index 0137dab..776370b 100644
--- a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_bdc67a() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_bdc67a() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.glsl
index c244cae..72966e8 100644
--- a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_bfd154() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_bfd154() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.glsl
index 800fe5f..9d312c5 100644
--- a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_c02b74() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c02b74() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.glsl
index b489c40..3691de1 100644
--- a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_c07013() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c07013() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.glsl
index 0f179e9..585d129 100644
--- a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_c21b33() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c21b33() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.glsl
index 5c1a7b6..082e907 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_c2d09a() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_c2d09a() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.glsl
index 1d75da3..806b40e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_c40dcb() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c40dcb() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.glsl
index a2db39d..3a361ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_c456bc() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_c456bc() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.glsl
index 847ca9b..e1b1a0f 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_c5791b() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c5791b() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.glsl
index d95e02b..6253cd1 100644
--- a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_c66b20() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c66b20() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.glsl
index 3b461ed..0f92f7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_c7cbed() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c7cbed() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.glsl
index 690cf40..81502b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_c80691() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c80691() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.glsl
index 27917cb..b1ea6c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_c8ed19() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c8ed19() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.glsl
index 495d999..7db8ab1 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_c9cc40() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c9cc40() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.glsl
index ce19393..187432a 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_c9f310() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c9f310() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.glsl
index 9e6c919..f5fb3be 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_cdccd2() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_cdccd2() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.glsl
index 334347f..049cafb 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_cdd343() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_cdd343() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.glsl
index 47138e5..4794711 100644
--- a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D f_arg_0;
 ivec4 textureLoad_cec477() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage3D arg_0;
+layout(binding = 1, r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_cec477() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.glsl
index 510a42f..9233b62 100644
--- a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_cece6c() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image3D arg_0;
+layout(binding = 1, r8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_cece6c() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.glsl
index 27c2ce5..26f2f95 100644
--- a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_d02afc() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_d02afc() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.glsl
index 2e45a4a..2d279a9 100644
--- a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uvec4 textureLoad_d0e351() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_d0e351() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.glsl
index 67f5e50..b9fdece 100644
--- a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_d357bb() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d357bb() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.glsl
index 81ccce0..4357002 100644
--- a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D f_arg_0;
 ivec4 textureLoad_d41c72() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_d41c72() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.glsl
index 868dd7e..dcea65d 100644
--- a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_d4df19() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d4df19() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.glsl
index 69519d5..b9e5c50 100644
--- a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_d5c48d() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d5c48d() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.glsl
index b960b34..024972b 100644
--- a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_d81c57() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d81c57() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.glsl
index d4f36cb..6e3e2c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_d85d61() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d85d61() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.glsl
index 8f1aa59..5e1ca60 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_d8617f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_d8617f() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.glsl
index 01183fa..fd05368 100644
--- a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_dbd554() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dbd554() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.glsl
index d281828..779666b 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_dd8776() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_dd8776() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.glsl
index a859c41..4623960 100644
--- a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_ddeed3() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_ddeed3() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.glsl
index 1d36b04..80c4f7c 100644
--- a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_dee8e7() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dee8e7() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.glsl
index 61ffdb8..d5c78b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_defd9a() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2D arg_0;
+layout(binding = 1, rg32f) uniform highp image2D arg_0;
 vec4 textureLoad_defd9a() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.glsl
index da8757b..de46020 100644
--- a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_dfdf3b() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_dfdf3b() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.glsl
index 81d97c8..b0bead2 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_e2292f() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_e2292f() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.glsl
index 07f6a15..65db81e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_e2b3a1() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_e2b3a1() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.glsl
index 0345ce7..56c1e9a 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_e3b08b() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_e3b08b() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.glsl
index 405408d..eb0dfed 100644
--- a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D f_arg_0;
+layout(binding = 1, r8) uniform highp image2D f_arg_0;
 vec4 textureLoad_e4051a() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2D arg_0;
+layout(binding = 1, r8) uniform highp image2D arg_0;
 vec4 textureLoad_e4051a() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.glsl
index 6b1833b..d312874 100644
--- a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_e57e92() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_e57e92() {
   uvec2 arg_1 = uvec2(1u);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.glsl
index 43a4c3e..0d2e98b 100644
--- a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_e59fdf() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_e59fdf() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.glsl
index 087fb8d..f59b3ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_e65916() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_e65916() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.glsl
index 7a85721..5753e4b 100644
--- a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_e893d7() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e893d7() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.glsl
index 3b8c28b..0632409 100644
--- a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_e92dd0() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e92dd0() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.glsl
index c7ff7d9..75b3c36 100644
--- a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_ea2abd() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_ea2abd() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.glsl
index ed2cc60..09148b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_eb573b() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_eb573b() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.glsl
index e48ae4b..2a4f4b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_ecc823() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_ecc823() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.glsl
index 7ea39c1..89f6bd4 100644
--- a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 ivec4 textureLoad_ed55a8() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_ed55a8() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.glsl
index bb09d84..f94ac42 100644
--- a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D f_arg_0;
 ivec4 textureLoad_ee33c5() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage3D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_ee33c5() {
   uvec3 arg_1 = uvec3(1u);
   uvec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.glsl
index a536fae..65c7bdd 100644
--- a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_eecf7d() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
@@ -33,7 +33,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_eecf7d() {
   ivec2 arg_1 = ivec2(1);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.glsl
index b5f30a4..74fc603 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D f_arg_0;
 ivec4 textureLoad_ef2ec3() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2D arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_ef2ec3() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.glsl
index 1abedab..d4296c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_ef5405() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_ef5405() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.glsl
index 7d546e4..20aa8c5 100644
--- a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_efa787() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_efa787() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.glsl
index c4f0e15..01f7077 100644
--- a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_f06b69() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f06b69() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.glsl
index a868ef9..4faeeba 100644
--- a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D f_arg_0;
+layout(binding = 1, r32f) uniform highp image3D f_arg_0;
 vec4 textureLoad_f1c549() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image3D arg_0;
+layout(binding = 1, r32f) uniform highp image3D arg_0;
 vec4 textureLoad_f1c549() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.glsl
index 2871a8c..5658c48 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_f2a7ff() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_f2a7ff() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.glsl
index 20c660b..56de7b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_f2bdd4() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 vec4 textureLoad_f2bdd4() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.glsl
index ca8cd66..cc0a530 100644
--- a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_f35ac7() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f35ac7() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.glsl
index 1e644f7..3c57e71 100644
--- a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_f379e2() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f379e2() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.glsl
index 9f8fbca..30bb0e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D f_arg_0;
 uvec4 textureLoad_f56e6f() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage3D arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_f56e6f() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.glsl
index 82d591f..15c9690 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_f5aee2() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2D arg_0;
+layout(binding = 1, r8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_f5aee2() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.glsl
index 3936fb4..8b4c42a 100644
--- a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_f74bd8() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_f74bd8() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.glsl
index e7049b2..9361544 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 vec4 textureLoad_f7f936() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
@@ -32,7 +32,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f7f936() {
   uvec2 arg_1 = uvec2(1u);
   uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.glsl
index 8d7c5d5..4ebab9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 vec4 textureLoad_f81792() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_f81792() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.glsl
index 3e74eb5..62b1a38 100644
--- a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_f8a2e8() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_f8a2e8() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.glsl
index 4056aa5..988c7d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D f_arg_0;
+layout(binding = 1, r32f) uniform highp image2D f_arg_0;
 vec4 textureLoad_f92c2d() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2D arg_0;
+layout(binding = 1, r32f) uniform highp image2D arg_0;
 vec4 textureLoad_f92c2d() {
   ivec2 arg_1 = ivec2(1);
   ivec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.glsl
index fe2198b..a64e8fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D f_arg_0;
 ivec4 textureLoad_f9eaaf() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2D arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f9eaaf() {
   uint arg_1 = 1u;
   uint v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.glsl
index 6dc5348..337edb0 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 ivec4 textureLoad_fc6d36() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   ivec4 inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_fc6d36() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.glsl
index 6f31735..e80bd2f 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D f_arg_0;
 uvec4 textureLoad_fd6442() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
@@ -28,7 +28,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2D arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_fd6442() {
   uvec2 arg_1 = uvec2(1u);
   uvec2 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.glsl
index ec3028e..7fd391a 100644
--- a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uvec4 textureLoad_fdebd0() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
@@ -34,7 +34,7 @@
 buffer prevent_dce_block_1_ssbo {
   uvec4 inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_fdebd0() {
   ivec2 arg_1 = ivec2(1);
   int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.glsl
index da79a98..5006b0c 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D f_arg_0;
 vec4 textureLoad_fe222a() {
   int arg_1 = 1;
   int v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2D arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_fe222a() {
   int arg_1 = 1;
   int v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.glsl
index af91b87..e73470f 100644
--- a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D f_arg_0;
 vec4 textureLoad_feab99() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
@@ -29,7 +29,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image3D arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_feab99() {
   ivec3 arg_1 = ivec3(1);
   ivec3 v_1 = arg_1;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.glsl
index 2737661..72ad44f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2DArray f_arg_0;
 uint textureNumLayers_014a3b() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_014a3b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.glsl
index 871b6bf..03c9d0b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uint textureNumLayers_071ebc() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_071ebc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.glsl
index 322df14..8d88bd2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_0fe8dc() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_0fe8dc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.glsl
index df7fca6..14599fd 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray f_arg_0;
 uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_17ccad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.glsl
index 21fe2d7..4cab609 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_1f858a() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_1f858a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.glsl
index 7afe7a6..a5b5831 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray f_arg_0;
 uint textureNumLayers_24d572() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_24d572() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.glsl
index 4983cd0..4f18f2a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray f_arg_0;
 uint textureNumLayers_26c9f9() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_26c9f9() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.glsl
index 8fa00f0..0e79a80 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray f_arg_0;
 uint textureNumLayers_2d95ea() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rg32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_2d95ea() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.glsl
index cba5291..946fec1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_3465ec() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_3465ec() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.glsl
index d30e724..6a02039 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2DArray f_arg_0;
 uint textureNumLayers_3580ab() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_3580ab() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.glsl
index c129a39..0f5a557 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_379cc5() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_379cc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.glsl
index 09ee868..a12fb59 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray f_arg_0;
 uint textureNumLayers_37bc8a() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32f) uniform highp image2DArray arg_0;
+layout(binding = 1, r32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_37bc8a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.glsl
index 7898d24..63aad21 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray f_arg_0;
 uint textureNumLayers_3ad143() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_3ad143() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.glsl
index 724921e..20ede0f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_3eff89() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_3eff89() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.glsl
index a153785..23330fa 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_485774() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_485774() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.glsl
index c1eaa38..651df68 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray f_arg_0;
 uint textureNumLayers_4adaad() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_4adaad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.glsl
index 541361b..5bff1ca 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_4c4333() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_4c4333() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.glsl
index 5c06da5..311e97d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray f_arg_0;
 uint textureNumLayers_520086() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_520086() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.glsl
index 0bae06e..a49ae9c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray f_arg_0;
 uint textureNumLayers_52dfc5() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_52dfc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.glsl
index 32ea44e..4422e49 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray f_arg_0;
 uint textureNumLayers_555f67() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_555f67() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.glsl
index 1cc77e2..445307e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_59cc27() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_59cc27() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.glsl
index 4a468e7..94294d8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2DArray f_arg_0;
 uint textureNumLayers_59eb57() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_59eb57() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.glsl
index 3429333..eedd1e7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray f_arg_0;
 uint textureNumLayers_5f20d1() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_5f20d1() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.glsl
index 4de3725..0347bd0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2DArray f_arg_0;
 uint textureNumLayers_61bd23() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_61bd23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.glsl
index 933efb4..b9388c7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray f_arg_0;
 uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_622aa2() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.glsl
index 2737084..ef61662 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_7895f4() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8_snorm) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_7895f4() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.glsl
index 40570b6..1b31805 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_7f28cf() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_7f28cf() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.glsl
index 2e48f6d..c26ae9e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_8356f7() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, r8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_8356f7() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.glsl
index 218b066..8177134 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2DArray f_arg_0;
 uint textureNumLayers_878dea() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_878dea() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.glsl
index 7467a0d..d25294f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uint textureNumLayers_87faad() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, r32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_87faad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.glsl
index 63eea0b..6bc4728 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2DArray f_arg_0;
 uint textureNumLayers_8bd987() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_8bd987() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.glsl
index 08a4d0a..ffa6abb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_8dbf23() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_8dbf23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.glsl
index 00e8157..93e430e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray f_arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray f_arg_0;
 uint textureNumLayers_8e1bd0() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r32i) uniform highp iimage2DArray arg_0;
+layout(binding = 1, r32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_8e1bd0() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.glsl
index 52d10c7..6d5e382 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_90b8cc() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rg32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_90b8cc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.glsl
index 89bafdb..986c13f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2DArray f_arg_0;
 uint textureNumLayers_9695c6() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_9695c6() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.glsl
index 3d1ffab..492d7dc 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_98a9cf() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_98a9cf() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.glsl
index b2957cd..26a43a1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray f_arg_0;
 uint textureNumLayers_9c60e3() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_9c60e3() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.glsl
index bc8f93f..cde61c5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray f_arg_0;
+layout(binding = 1, r8) uniform highp image2DArray f_arg_0;
 uint textureNumLayers_aac630() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, r8) uniform highp image2DArray arg_0;
+layout(binding = 1, r8) uniform highp image2DArray arg_0;
 uint textureNumLayers_aac630() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.glsl
index c8065d1..f014caa 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray f_arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray f_arg_0;
 uint textureNumLayers_bf2f76() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rg32i) uniform highp readonly iimage2DArray arg_0;
+layout(binding = 1, rg32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_bf2f76() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.glsl
index 54265e8..85d4219 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray f_arg_0;
 uint textureNumLayers_d3e21f() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba8ui) uniform highp readonly uimage2DArray arg_0;
+layout(binding = 1, rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_d3e21f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.glsl
index 59112c2..9263987 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2DArray f_arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2DArray f_arg_0;
 uint textureNumLayers_d75a0b() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba32f) uniform highp writeonly image2DArray arg_0;
+layout(binding = 1, rgba32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_d75a0b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.glsl
index 3d727c2..45fb592 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2DArray f_arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2DArray f_arg_0;
 uint textureNumLayers_de8087() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16i) uniform highp writeonly iimage2DArray arg_0;
+layout(binding = 1, rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_de8087() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.glsl
index 31c73e3..c3505ec 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.glsl
@@ -9,7 +9,7 @@
 buffer f_prevent_dce_block_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray f_arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray f_arg_0;
 uint textureNumLayers_f1783f() {
   uint res = uint(imageSize(f_arg_0).z);
   return res;
@@ -26,7 +26,7 @@
 buffer prevent_dce_block_1_ssbo {
   uint inner;
 } v;
-layout(binding = 0, rgba16f) uniform highp readonly image2DArray arg_0;
+layout(binding = 1, rgba16f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_f1783f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
index d696e6f..939fb8a 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
@@ -66,7 +66,7 @@
 buffer f_prevent_dce_block_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 3, std140)
+layout(binding = 4, std140)
 uniform f_arg_0_params_block_std140_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
@@ -177,7 +177,7 @@
 buffer prevent_dce_block_1_ssbo {
   vec4 inner;
 } v_1;
-layout(binding = 3, std140)
+layout(binding = 4, std140)
 uniform arg_0_params_block_std140_1_ubo {
   tint_ExternalTextureParams_std140 inner;
 } v_2;
diff --git a/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.glsl b/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.glsl
index 5c8f2d9..c4dfb4c 100644
--- a/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.glsl
+++ b/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.glsl
@@ -1,6 +1,6 @@
 #version 310 es
 
-layout(binding = 2, r32i) uniform highp iimage2D tex;
+layout(binding = 0, r32i) uniform highp iimage2D tex;
 void foo() {
   {
     uvec2 tint_loop_idx = uvec2(4294967295u);
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl
index 6de53bf..c3ae2f0 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl
@@ -13,7 +13,7 @@
   InnerS a1[8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl
index 929ba9a..cd16bc6 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl
@@ -13,7 +13,7 @@
   InnerS a1[8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl
index 6db88e4..5f49b88 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl
@@ -13,7 +13,7 @@
   InnerS a1[8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl
index c4e3eb9..aebc53b 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl
@@ -19,7 +19,7 @@
 };
 
 uint nextIndex = 0u;
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl
index fc46b1d..7e3dc2f 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl
@@ -13,7 +13,7 @@
   InnerS a1[8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl
index 7c729ae..c263a20 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl
@@ -14,7 +14,7 @@
   InnerS a1[8][8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl
index 0c35eb7..393144c 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl
@@ -17,7 +17,7 @@
   S1 a1[8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl
index 63396ee..9dc9a13 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl
@@ -18,7 +18,7 @@
   S1 a1[8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
index e6bd455..cd97305 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
@@ -9,11 +9,11 @@
   int v;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
-layout(binding = 0, std430)
+layout(binding = 1, std430)
 buffer OuterS_1_ssbo {
   InnerS a1[];
 } s1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
index a82be3b..7c061c3 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
@@ -14,11 +14,11 @@
   InnerS a2[8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
-layout(binding = 0, std430)
+layout(binding = 1, std430)
 buffer OuterS_1_ssbo {
   S1 a1[];
 } s;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl
index ecc05a2..c038e56 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl
@@ -9,7 +9,7 @@
   mat2x4 m1;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl
index 83a1229..dddbb9f 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl
@@ -14,7 +14,7 @@
   InnerS a2[8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl
index 62a7424..85866a2 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl
@@ -17,7 +17,7 @@
   S1 s2;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl
index 5e0bb96..ea9c92e 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl
@@ -9,7 +9,7 @@
   vec3 v1;
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl
index 55aa2aa..09dbb4f 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl
@@ -9,7 +9,7 @@
   uint a1[8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl
index fc46b1d..7e3dc2f 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl
@@ -13,7 +13,7 @@
   InnerS a1[8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl
index ab498c8..2bd0cf5 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl
@@ -13,7 +13,7 @@
   InnerS a1[8];
 };
 
-layout(binding = 4, std140)
+layout(binding = 0, std140)
 uniform uniforms_block_1_ubo {
   Uniforms inner;
 } v_1;
diff --git a/test/tint/types/module_scope_used_in_functions.wgsl.expected.glsl b/test/tint/types/module_scope_used_in_functions.wgsl.expected.glsl
index 60f29328..cae68e1 100644
--- a/test/tint/types/module_scope_used_in_functions.wgsl.expected.glsl
+++ b/test/tint/types/module_scope_used_in_functions.wgsl.expected.glsl
@@ -2,11 +2,11 @@
 
 float p = 0.0f;
 shared float w;
-layout(binding = 1, std430)
+layout(binding = 0, std430)
 buffer uniforms_block_1_ssbo {
   vec2 inner;
 } v;
-layout(binding = 0, std430)
+layout(binding = 1, std430)
 buffer storages_block_1_ssbo {
   float inner[];
 } v_1;