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>
This commit is contained in:
Brandon Jones 2021-05-10 16:15:31 +00:00 committed by Commit Bot service account
parent 8f96595540
commit c705b6caac
3 changed files with 11 additions and 1 deletions

View File

@ -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 @@ Output Hlsl::Run(const Program* in, const DataMap& data) {
manager.Add<CanonicalizeEntryPointIO>();
manager.Add<DecomposeStorageAccess>();
manager.Add<CalculateArrayLength>();
manager.Add<ExternalTextureTransform>();
auto out = manager.Run(in, data);
if (!out.program.IsValid()) {
return out;

View File

@ -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 @@ Msl::~Msl() = default;
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;

View File

@ -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;
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();