Move GL to use BindingRemapperOptions

Currently the GLSL backend replicates the components of the
BindingRemapperOptions into its own Options structure.

This CL removes those options and switches to using the
BindingRemapperOptions like all the other writers.

Change-Id: I9e50952868874a212d9251c2740d7da225e023c3
Bug: tint:1501
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/152860
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Stephen White <senorblanco@chromium.org>
diff --git a/src/dawn/native/opengl/ShaderModuleGL.cpp b/src/dawn/native/opengl/ShaderModuleGL.cpp
index 7fe1da0..7f583a4 100644
--- a/src/dawn/native/opengl/ShaderModuleGL.cpp
+++ b/src/dawn/native/opengl/ShaderModuleGL.cpp
@@ -294,8 +294,8 @@
                 tintOptions.binding_map[use] = info->GetName();
             }
 
-            tintOptions.binding_points = std::move(r.glBindings);
-            tintOptions.allow_collisions = true;
+            tintOptions.binding_remapper_options.binding_points = std::move(r.glBindings);
+            tintOptions.binding_remapper_options.allow_collisions = true;
             tintOptions.texture_builtins_from_uniform = r.textureBuiltinsFromUniform;
 
             auto result = tint::glsl::writer::Generate(program, tintOptions, r.entryPointName);
diff --git a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
index f5ada94..89387ae 100644
--- a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
@@ -244,7 +244,9 @@
     manager.Add<CombineSamplers>();
 
     data.Add<ast::transform::BindingRemapper::Remappings>(
-        options.binding_points, options.access_controls, options.allow_collisions);
+        options.binding_remapper_options.binding_points,
+        options.binding_remapper_options.access_controls,
+        options.binding_remapper_options.allow_collisions);
     manager.Add<ast::transform::BindingRemapper>();
 
     manager.Add<ast::transform::PromoteInitializersToLet>();
diff --git a/src/tint/lang/glsl/writer/common/options.h b/src/tint/lang/glsl/writer/common/options.h
index 59d3208..1fe8e43 100644
--- a/src/tint/lang/glsl/writer/common/options.h
+++ b/src/tint/lang/glsl/writer/common/options.h
@@ -19,6 +19,7 @@
 #include <string>
 #include <unordered_map>
 
+#include "src/tint/api/options/binding_remapper.h"
 #include "src/tint/api/options/external_texture.h"
 #include "src/tint/api/options/texture_builtins_from_uniform.h"
 #include "src/tint/lang/core/access.h"
@@ -47,24 +48,15 @@
     /// The binding point to use for placeholder samplers.
     BindingPoint placeholder_binding_point;
 
-    /// A map of old binding point to new binding point for the BindingRemapper
-    /// transform
-    std::unordered_map<BindingPoint, BindingPoint> binding_points;
-
-    /// A map of old binding point to new access control for the BindingRemapper
-    /// transform
-    std::unordered_map<BindingPoint, core::Access> access_controls;
-
     /// Set to `true` to disable software robustness that prevents out-of-bounds accesses.
     bool disable_robustness = false;
 
-    /// If true, then validation will be disabled for binding point collisions
-    /// generated by the BindingRemapper transform
-    bool allow_collisions = false;
-
     /// Set to `true` to disable workgroup memory zero initialization
     bool disable_workgroup_init = false;
 
+    /// Options used in the bindings remapper
+    BindingRemapperOptions binding_remapper_options = {};
+
     /// Options used in the binding mappings for external textures
     ExternalTextureOptions external_texture_options = {};
 
@@ -79,11 +71,9 @@
     /// Reflect the fields of this class so that it can be used by tint::ForeachField()
     TINT_REFLECT(binding_map,
                  placeholder_binding_point,
-                 binding_points,
-                 access_controls,
                  disable_robustness,
-                 allow_collisions,
                  disable_workgroup_init,
+                 binding_remapper_options,
                  external_texture_options,
                  texture_builtins_from_uniform,
                  version);