Add external_texture_transform to backend writers
Adds the external texture transform to always run in the spirv, msl, and hlsl writers.
Bug: dawn:728
Change-Id: I15a96e877e1e88f9a4a4b015cf47251b41b18e35
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/50024
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
diff --git a/src/transform/hlsl.cc b/src/transform/hlsl.cc
index 15df034..af5e0ed 100644
--- a/src/transform/hlsl.cc
+++ b/src/transform/hlsl.cc
@@ -25,6 +25,7 @@
#include "src/transform/calculate_array_length.h"
#include "src/transform/canonicalize_entry_point_io.h"
#include "src/transform/decompose_storage_access.h"
+#include "src/transform/external_texture_transform.h"
#include "src/transform/manager.h"
namespace tint {
@@ -38,6 +39,7 @@
manager.Add<CanonicalizeEntryPointIO>();
manager.Add<DecomposeStorageAccess>();
manager.Add<CalculateArrayLength>();
+ manager.Add<ExternalTextureTransform>();
auto out = manager.Run(in, data);
if (!out.program.IsValid()) {
return out;
diff --git a/src/transform/msl.cc b/src/transform/msl.cc
index c1033fa..764287d 100644
--- a/src/transform/msl.cc
+++ b/src/transform/msl.cc
@@ -17,6 +17,7 @@
#include <utility>
#include "src/transform/canonicalize_entry_point_io.h"
+#include "src/transform/external_texture_transform.h"
#include "src/transform/manager.h"
namespace tint {
@@ -28,6 +29,7 @@
Output Msl::Run(const Program* in, const DataMap& data) {
Manager manager;
manager.Add<CanonicalizeEntryPointIO>();
+ manager.Add<ExternalTextureTransform>();
auto out = manager.Run(in, data);
if (!out.program.IsValid()) {
return out;
diff --git a/src/transform/spirv.cc b/src/transform/spirv.cc
index 219524e..d671362 100644
--- a/src/transform/spirv.cc
+++ b/src/transform/spirv.cc
@@ -25,6 +25,8 @@
#include "src/sem/statement.h"
#include "src/sem/struct.h"
#include "src/sem/variable.h"
+#include "src/transform/external_texture_transform.h"
+#include "src/transform/manager.h"
TINT_INSTANTIATE_TYPEINFO(tint::transform::Spirv::Config);
@@ -35,10 +37,14 @@
Spirv::~Spirv() = default;
Output Spirv::Run(const Program* in, const DataMap& data) {
+ Manager manager;
+ manager.Add<ExternalTextureTransform>();
+ auto transformedInput = manager.Run(in, data);
+
auto* cfg = data.Get<Config>();
ProgramBuilder out;
- CloneContext ctx(&out, in);
+ CloneContext ctx(&out, &transformedInput.program);
HandleEntryPointIOTypes(ctx);
ctx.Clone();