[dawn][vulkan] Pass remapped entry point name to Tint

Have Dawn tell Tint's renamer what entry point name to use when
renaming entry points, instead of reflecting it back from Tint to
Dawn.

This is a prerequisite for moving the Renamer into the backends
completely.

Bug: 375192379
Change-Id: Ifa85f6f0ad0af9f4831a83a43ea3bea80ea44bcd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/218142
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/src/dawn/native/vulkan/ShaderModuleVk.cpp b/src/dawn/native/vulkan/ShaderModuleVk.cpp
index 4265ca8..53ea0a8 100644
--- a/src/dawn/native/vulkan/ShaderModuleVk.cpp
+++ b/src/dawn/native/vulkan/ShaderModuleVk.cpp
@@ -392,9 +392,16 @@
             transformInputs.Add<tint::ast::transform::SingleEntryPoint::Config>(
                 std::string(r.entryPointName));
 
-            // Needs to run before all other transforms so that they can use builtin names safely.
+            // Rename symbols unless symbol renaming is disabled.
+            std::string remappedEntryPointName = std::string(r.entryPointName);
             if (!r.disableSymbolRenaming) {
+                constexpr char kRemappedEntryPointName[] = "dawn_entry_point";
+                tint::ast::transform::Renamer::Remappings requestedNames = {
+                    {remappedEntryPointName, kRemappedEntryPointName}};
                 transformManager.Add<tint::ast::transform::Renamer>();
+                transformInputs.Add<tint::ast::transform::Renamer::Config>(
+                    tint::ast::transform::Renamer::Target::kAll, std::move(requestedNames));
+                remappedEntryPointName = kRemappedEntryPointName;
             }
 
             if (r.substituteOverrideConfig) {
@@ -414,26 +421,11 @@
                                               &transformOutputs, nullptr));
             }
 
-            // Get the entry point name after the renamer pass.
-            // TODO(dawn:2180): refactor out.
-            std::string remappedEntryPoint;
-            if (r.disableSymbolRenaming) {
-                remappedEntryPoint = r.entryPointName;
-            } else {
-                auto* data = transformOutputs.Get<tint::ast::transform::Renamer::Data>();
-                DAWN_ASSERT(data != nullptr);
-
-                auto it = data->remappings.find(r.entryPointName.data());
-                DAWN_ASSERT(it != data->remappings.end());
-                remappedEntryPoint = it->second;
-            }
-            DAWN_ASSERT(remappedEntryPoint != "");
-
             // Validate workgroup size after program runs transforms.
             if (r.stage == SingleShaderStage::Compute) {
                 Extent3D _;
                 DAWN_TRY_ASSIGN(_, ValidateComputeStageWorkgroupSize(
-                                       program, remappedEntryPoint.c_str(), r.limits));
+                                       program, remappedEntryPointName.c_str(), r.limits));
             }
 
             TRACE_EVENT0(r.platform.UnsafeGetValue(), General, "tint::spirv::writer::Generate()");
@@ -451,7 +443,7 @@
 
             CompiledSpirv result;
             result.spirv = std::move(tintResult.Get().spirv);
-            result.remappedEntryPoint = remappedEntryPoint;
+            result.remappedEntryPoint = remappedEntryPointName;
             return result;
         },
         "Vulkan.CompileShaderToSPIRV");