Make params for FirstIndexOffset fuzzing dynamic

The preamble size in tint_all_transforms_fuzzers is dynamic in
anticipation of more complex preamble calculations in future CLs.

BUG=tint:722

Change-Id: I24a0b00a77aa565b5fe1f146015f017481916c1c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/49200
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/fuzzers/tint_all_transforms_fuzzer.cc b/fuzzers/tint_all_transforms_fuzzer.cc
index e9af5ab..7b76ab4 100644
--- a/fuzzers/tint_all_transforms_fuzzer.cc
+++ b/fuzzers/tint_all_transforms_fuzzer.cc
@@ -18,9 +18,22 @@
 namespace fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+  struct Config {
+    uint32_t group;
+    uint32_t binding;
+  };
+  if (size < sizeof(Config)) {
+    return 0;
+  }
+  auto* config = reinterpret_cast<const Config*>(data);
+  data += sizeof(Config);
+  size -= sizeof(Config);
+
   tint::transform::Manager transform_manager;
   tint::transform::DataMap transform_inputs;
-  transform_inputs.Add<tint::transform::FirstIndexOffset::BindingPoint>(0, 0);
+
+  transform_inputs.Add<tint::transform::FirstIndexOffset::BindingPoint>(
+      config->binding, config->group);
   transform_manager.Add<tint::transform::BoundArrayAccessors>();
   transform_manager.Add<tint::transform::EmitVertexPointSize>();
   transform_manager.Add<tint::transform::FirstIndexOffset>();
diff --git a/fuzzers/tint_first_index_offset_fuzzer.cc b/fuzzers/tint_first_index_offset_fuzzer.cc
index 6915981..d521063 100644
--- a/fuzzers/tint_first_index_offset_fuzzer.cc
+++ b/fuzzers/tint_first_index_offset_fuzzer.cc
@@ -18,9 +18,21 @@
 namespace fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+  struct Config {
+    uint32_t group;
+    uint32_t binding;
+  };
+  if (size < sizeof(Config)) {
+    return 0;
+  }
+  auto* config = reinterpret_cast<const Config*>(data);
+  data += sizeof(Config);
+  size -= sizeof(Config);
+
   tint::transform::Manager transform_manager;
   tint::transform::DataMap transform_inputs;
-  transform_inputs.Add<tint::transform::FirstIndexOffset::BindingPoint>(0, 0);
+  transform_inputs.Add<tint::transform::FirstIndexOffset::BindingPoint>(
+      config->binding, config->group);
   transform_manager.Add<tint::transform::FirstIndexOffset>();
 
   tint::fuzzers::CommonFuzzer fuzzer(InputFormat::kWGSL, OutputFormat::kSpv);