[spirv] Update generate_bindings to handle Overrides.
This CL updates the GenerateBindings for the SPIR-V backend to allow
more then just `Var` entries at module scope.
Bug: 374971092
Change-Id: I19173b08927181579c721b8cb9a5615e602f3c48
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/214174
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/spirv/writer/helpers/generate_bindings.cc b/src/tint/lang/spirv/writer/helpers/generate_bindings.cc
index ad38631..66cdf54 100644
--- a/src/tint/lang/spirv/writer/helpers/generate_bindings.cc
+++ b/src/tint/lang/spirv/writer/helpers/generate_bindings.cc
@@ -51,10 +51,11 @@
Hashmap<uint32_t, uint32_t, 4> group_to_next_binding_number;
Vector<tint::BindingPoint, 4> ext_tex_bps;
for (auto* inst : *module.root_block) {
- if (!inst->Alive()) {
+ auto* var = inst->As<core::ir::Var>();
+ if (!var) {
continue;
}
- auto* var = inst->As<core::ir::Var>();
+
if (auto bp = var->BindingPoint()) {
if (auto val = group_to_next_binding_number.Get(bp->group)) {
*val = std::max(*val, bp->binding + 1);