[tint] Make Transform base class
This will allow for both AST transforms and IR transforms to be used in the same transform manager. The transform manager is no longer a Tranform subclass. Bug: tint:1718 Change-Id: I59bd87806090fa365ce4b575710c5ffcfc657bd8 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132501 Commit-Queue: James Price <jrprice@google.com> Reviewed-by: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
parent
a6d8e81371
commit
0e6534e44d
|
@ -1012,21 +1012,21 @@ RequiredBufferSizes ComputeRequiredBufferSizesForLayout(const EntryPointMetadata
|
||||||
return bufferSizes;
|
return bufferSizes;
|
||||||
}
|
}
|
||||||
|
|
||||||
ResultOrError<tint::Program> RunTransforms(tint::ast::transform::Transform* transform,
|
ResultOrError<tint::Program> RunTransforms(tint::transform::Manager* transformManager,
|
||||||
const tint::Program* program,
|
const tint::Program* program,
|
||||||
const tint::ast::transform::DataMap& inputs,
|
const tint::transform::DataMap& inputs,
|
||||||
tint::ast::transform::DataMap* outputs,
|
tint::transform::DataMap* outputs,
|
||||||
OwnedCompilationMessages* outMessages) {
|
OwnedCompilationMessages* outMessages) {
|
||||||
tint::ast::transform::Output output = transform->Run(program, inputs);
|
tint::transform::DataMap transform_outputs;
|
||||||
|
tint::Program result = transformManager->Run(program, inputs, transform_outputs);
|
||||||
if (outMessages != nullptr) {
|
if (outMessages != nullptr) {
|
||||||
DAWN_TRY(outMessages->AddMessages(output.program.Diagnostics()));
|
DAWN_TRY(outMessages->AddMessages(result.Diagnostics()));
|
||||||
}
|
}
|
||||||
DAWN_INVALID_IF(!output.program.IsValid(), "Tint program failure: %s\n",
|
DAWN_INVALID_IF(!result.IsValid(), "Tint program failure: %s\n", result.Diagnostics().str());
|
||||||
output.program.Diagnostics().str());
|
|
||||||
if (outputs != nullptr) {
|
if (outputs != nullptr) {
|
||||||
*outputs = std::move(output.data);
|
*outputs = std::move(transform_outputs);
|
||||||
}
|
}
|
||||||
return std::move(output.program);
|
return std::move(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
MaybeError ValidateCompatibilityWithPipelineLayout(DeviceBase* device,
|
MaybeError ValidateCompatibilityWithPipelineLayout(DeviceBase* device,
|
||||||
|
|
|
@ -45,12 +45,12 @@ namespace tint {
|
||||||
class Program;
|
class Program;
|
||||||
|
|
||||||
namespace ast::transform {
|
namespace ast::transform {
|
||||||
class DataMap;
|
|
||||||
class Transform;
|
class Transform;
|
||||||
class VertexPulling;
|
class VertexPulling;
|
||||||
} // namespace ast::transform
|
} // namespace ast::transform
|
||||||
|
|
||||||
namespace transform {
|
namespace transform {
|
||||||
|
class DataMap;
|
||||||
class Manager;
|
class Manager;
|
||||||
} // namespace transform
|
} // namespace transform
|
||||||
|
|
||||||
|
@ -121,10 +121,10 @@ ResultOrError<Extent3D> ValidateComputeStageWorkgroupSize(
|
||||||
|
|
||||||
RequiredBufferSizes ComputeRequiredBufferSizesForLayout(const EntryPointMetadata& entryPoint,
|
RequiredBufferSizes ComputeRequiredBufferSizesForLayout(const EntryPointMetadata& entryPoint,
|
||||||
const PipelineLayoutBase* layout);
|
const PipelineLayoutBase* layout);
|
||||||
ResultOrError<tint::Program> RunTransforms(tint::ast::transform::Transform* transform,
|
ResultOrError<tint::Program> RunTransforms(tint::transform::Manager* transformManager,
|
||||||
const tint::Program* program,
|
const tint::Program* program,
|
||||||
const tint::ast::transform::DataMap& inputs,
|
const tint::transform::DataMap& inputs,
|
||||||
tint::ast::transform::DataMap* outputs,
|
tint::transform::DataMap* outputs,
|
||||||
OwnedCompilationMessages* messages);
|
OwnedCompilationMessages* messages);
|
||||||
|
|
||||||
// Mirrors wgpu::SamplerBindingLayout but instead stores a single boolean
|
// Mirrors wgpu::SamplerBindingLayout but instead stores a single boolean
|
||||||
|
|
|
@ -144,7 +144,7 @@ ResultOrError<std::string> TranslateToHLSL(
|
||||||
errorStream << "Tint HLSL failure:" << std::endl;
|
errorStream << "Tint HLSL failure:" << std::endl;
|
||||||
|
|
||||||
tint::transform::Manager transformManager;
|
tint::transform::Manager transformManager;
|
||||||
tint::ast::transform::DataMap transformInputs;
|
tint::transform::DataMap transformInputs;
|
||||||
|
|
||||||
// Run before the renamer so that the entry point name matches `entryPointName` still.
|
// Run before the renamer so that the entry point name matches `entryPointName` still.
|
||||||
transformManager.Add<tint::ast::transform::SingleEntryPoint>();
|
transformManager.Add<tint::ast::transform::SingleEntryPoint>();
|
||||||
|
@ -173,7 +173,7 @@ ResultOrError<std::string> TranslateToHLSL(
|
||||||
}
|
}
|
||||||
|
|
||||||
tint::Program transformedProgram;
|
tint::Program transformedProgram;
|
||||||
tint::ast::transform::DataMap transformOutputs;
|
tint::transform::DataMap transformOutputs;
|
||||||
{
|
{
|
||||||
TRACE_EVENT0(tracePlatform.UnsafeGetValue(), General, "RunTransforms");
|
TRACE_EVENT0(tracePlatform.UnsafeGetValue(), General, "RunTransforms");
|
||||||
DAWN_TRY_ASSIGN(transformedProgram,
|
DAWN_TRY_ASSIGN(transformedProgram,
|
||||||
|
|
|
@ -207,7 +207,7 @@ ResultOrError<CacheResult<MslCompilation>> TranslateToMSL(
|
||||||
mslCompilation, device, std::move(req), MslCompilation::FromBlob,
|
mslCompilation, device, std::move(req), MslCompilation::FromBlob,
|
||||||
[](MslCompilationRequest r) -> ResultOrError<MslCompilation> {
|
[](MslCompilationRequest r) -> ResultOrError<MslCompilation> {
|
||||||
tint::transform::Manager transformManager;
|
tint::transform::Manager transformManager;
|
||||||
tint::ast::transform::DataMap transformInputs;
|
tint::transform::DataMap transformInputs;
|
||||||
|
|
||||||
// We only remap bindings for the target entry point, so we need to strip all other
|
// We only remap bindings for the target entry point, so we need to strip all other
|
||||||
// entry points to avoid generating invalid bindings for them.
|
// entry points to avoid generating invalid bindings for them.
|
||||||
|
@ -238,7 +238,7 @@ ResultOrError<CacheResult<MslCompilation>> TranslateToMSL(
|
||||||
}
|
}
|
||||||
|
|
||||||
tint::Program program;
|
tint::Program program;
|
||||||
tint::ast::transform::DataMap transformOutputs;
|
tint::transform::DataMap transformOutputs;
|
||||||
{
|
{
|
||||||
TRACE_EVENT0(r.tracePlatform.UnsafeGetValue(), General, "RunTransforms");
|
TRACE_EVENT0(r.tracePlatform.UnsafeGetValue(), General, "RunTransforms");
|
||||||
DAWN_TRY_ASSIGN(program,
|
DAWN_TRY_ASSIGN(program,
|
||||||
|
|
|
@ -391,7 +391,7 @@ MaybeError ComputePipeline::Initialize() {
|
||||||
tint::Program transformedProgram;
|
tint::Program transformedProgram;
|
||||||
const tint::Program* program;
|
const tint::Program* program;
|
||||||
tint::transform::Manager transformManager;
|
tint::transform::Manager transformManager;
|
||||||
tint::ast::transform::DataMap transformInputs;
|
tint::transform::DataMap transformInputs;
|
||||||
|
|
||||||
if (!computeStage.metadata->overrides.empty()) {
|
if (!computeStage.metadata->overrides.empty()) {
|
||||||
transformManager.Add<tint::ast::transform::SingleEntryPoint>();
|
transformManager.Add<tint::ast::transform::SingleEntryPoint>();
|
||||||
|
|
|
@ -195,7 +195,7 @@ ResultOrError<GLuint> ShaderModule::CompileShader(const OpenGLFunctions& gl,
|
||||||
compilationResult, GetDevice(), std::move(req), GLSLCompilation::FromBlob,
|
compilationResult, GetDevice(), std::move(req), GLSLCompilation::FromBlob,
|
||||||
[](GLSLCompilationRequest r) -> ResultOrError<GLSLCompilation> {
|
[](GLSLCompilationRequest r) -> ResultOrError<GLSLCompilation> {
|
||||||
tint::transform::Manager transformManager;
|
tint::transform::Manager transformManager;
|
||||||
tint::ast::transform::DataMap transformInputs;
|
tint::transform::DataMap transformInputs;
|
||||||
|
|
||||||
if (r.substituteOverrideConfig) {
|
if (r.substituteOverrideConfig) {
|
||||||
transformManager.Add<tint::ast::transform::SingleEntryPoint>();
|
transformManager.Add<tint::ast::transform::SingleEntryPoint>();
|
||||||
|
|
|
@ -273,7 +273,7 @@ ResultOrError<ShaderModule::ModuleAndSpirv> ShaderModule::GetHandleAndSpirv(
|
||||||
compilation, GetDevice(), std::move(req), CompiledSpirv::FromBlob,
|
compilation, GetDevice(), std::move(req), CompiledSpirv::FromBlob,
|
||||||
[](SpirvCompilationRequest r) -> ResultOrError<CompiledSpirv> {
|
[](SpirvCompilationRequest r) -> ResultOrError<CompiledSpirv> {
|
||||||
tint::transform::Manager transformManager;
|
tint::transform::Manager transformManager;
|
||||||
tint::ast::transform::DataMap transformInputs;
|
tint::transform::DataMap transformInputs;
|
||||||
|
|
||||||
// Many Vulkan drivers can't handle multi-entrypoint shader modules.
|
// Many Vulkan drivers can't handle multi-entrypoint shader modules.
|
||||||
// Run before the renamer so that the entry point name matches `entryPointName` still.
|
// Run before the renamer so that the entry point name matches `entryPointName` still.
|
||||||
|
@ -295,7 +295,7 @@ ResultOrError<ShaderModule::ModuleAndSpirv> ShaderModule::GetHandleAndSpirv(
|
||||||
}
|
}
|
||||||
|
|
||||||
tint::Program program;
|
tint::Program program;
|
||||||
tint::ast::transform::DataMap transformOutputs;
|
tint::transform::DataMap transformOutputs;
|
||||||
{
|
{
|
||||||
TRACE_EVENT0(r.tracePlatform.UnsafeGetValue(), General, "RunTransforms");
|
TRACE_EVENT0(r.tracePlatform.UnsafeGetValue(), General, "RunTransforms");
|
||||||
DAWN_TRY_ASSIGN(program,
|
DAWN_TRY_ASSIGN(program,
|
||||||
|
|
|
@ -355,6 +355,43 @@ libtint_source_set("libtint_inspector_src") {
|
||||||
}
|
}
|
||||||
|
|
||||||
libtint_source_set("libtint_transform_src") {
|
libtint_source_set("libtint_transform_src") {
|
||||||
|
sources = [
|
||||||
|
"transform/transform.cc",
|
||||||
|
"transform/transform.h",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
":libtint_program_src",
|
||||||
|
":libtint_utils_src",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
libtint_source_set("libtint_ast_transform_base_src") {
|
||||||
|
sources = [
|
||||||
|
"ast/transform/transform.cc",
|
||||||
|
"ast/transform/transform.h",
|
||||||
|
]
|
||||||
|
public_deps = [ ":libtint_transform_src" ]
|
||||||
|
deps = [
|
||||||
|
":libtint_builtins_src",
|
||||||
|
":libtint_program_src",
|
||||||
|
":libtint_sem_src",
|
||||||
|
":libtint_type_src",
|
||||||
|
":libtint_utils_src",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
libtint_source_set("libtint_transform_manager_src") {
|
||||||
|
sources = [
|
||||||
|
"transform/manager.cc",
|
||||||
|
"transform/manager.h",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
":libtint_ast_transform_base_src",
|
||||||
|
":libtint_program_src",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
libtint_source_set("libtint_ast_transform_src") {
|
||||||
sources = [
|
sources = [
|
||||||
"ast/transform/add_block_attribute.cc",
|
"ast/transform/add_block_attribute.cc",
|
||||||
"ast/transform/add_block_attribute.h",
|
"ast/transform/add_block_attribute.h",
|
||||||
|
@ -434,8 +471,6 @@ libtint_source_set("libtint_transform_src") {
|
||||||
"ast/transform/substitute_override.h",
|
"ast/transform/substitute_override.h",
|
||||||
"ast/transform/texture_1d_to_2d.cc",
|
"ast/transform/texture_1d_to_2d.cc",
|
||||||
"ast/transform/texture_1d_to_2d.h",
|
"ast/transform/texture_1d_to_2d.h",
|
||||||
"ast/transform/transform.cc",
|
|
||||||
"ast/transform/transform.h",
|
|
||||||
"ast/transform/truncate_interstage_variables.cc",
|
"ast/transform/truncate_interstage_variables.cc",
|
||||||
"ast/transform/truncate_interstage_variables.h",
|
"ast/transform/truncate_interstage_variables.h",
|
||||||
"ast/transform/unshadow.cc",
|
"ast/transform/unshadow.cc",
|
||||||
|
@ -456,15 +491,15 @@ libtint_source_set("libtint_transform_src") {
|
||||||
"ast/transform/while_to_loop.h",
|
"ast/transform/while_to_loop.h",
|
||||||
"ast/transform/zero_init_workgroup_memory.cc",
|
"ast/transform/zero_init_workgroup_memory.cc",
|
||||||
"ast/transform/zero_init_workgroup_memory.h",
|
"ast/transform/zero_init_workgroup_memory.h",
|
||||||
"transform/manager.cc",
|
|
||||||
"transform/manager.h",
|
|
||||||
]
|
]
|
||||||
|
public_deps = [ ":libtint_ast_transform_base_src" ]
|
||||||
deps = [
|
deps = [
|
||||||
":libtint_ast_src",
|
":libtint_ast_src",
|
||||||
":libtint_builtins_src",
|
":libtint_builtins_src",
|
||||||
":libtint_program_src",
|
":libtint_program_src",
|
||||||
":libtint_sem_src",
|
":libtint_sem_src",
|
||||||
":libtint_symbols_src",
|
":libtint_symbols_src",
|
||||||
|
":libtint_transform_manager_src",
|
||||||
":libtint_type_src",
|
":libtint_type_src",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
]
|
]
|
||||||
|
@ -860,10 +895,7 @@ libtint_source_set("libtint_reader_src") {
|
||||||
"reader/reader.h",
|
"reader/reader.h",
|
||||||
]
|
]
|
||||||
|
|
||||||
public_deps = [
|
public_deps = [ ":libtint_program_src" ]
|
||||||
":libtint_program_src",
|
|
||||||
":libtint_transform_src",
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
libtint_source_set("libtint_spv_reader_src") {
|
libtint_source_set("libtint_spv_reader_src") {
|
||||||
|
@ -892,11 +924,13 @@ libtint_source_set("libtint_spv_reader_src") {
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
":libtint_ast_src",
|
":libtint_ast_src",
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_builtins_src",
|
":libtint_builtins_src",
|
||||||
":libtint_program_src",
|
":libtint_program_src",
|
||||||
":libtint_reader_src",
|
":libtint_reader_src",
|
||||||
":libtint_sem_src",
|
":libtint_sem_src",
|
||||||
":libtint_symbols_src",
|
":libtint_symbols_src",
|
||||||
|
":libtint_transform_manager_src",
|
||||||
":libtint_type_src",
|
":libtint_type_src",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
"${tint_spirv_tools_dir}/:spvtools_opt",
|
"${tint_spirv_tools_dir}/:spvtools_opt",
|
||||||
|
@ -932,11 +966,12 @@ libtint_source_set("libtint_writer_src") {
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
":libtint_ast_src",
|
":libtint_ast_src",
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_builtins_src",
|
":libtint_builtins_src",
|
||||||
":libtint_inspector_src",
|
":libtint_inspector_src",
|
||||||
":libtint_program_src",
|
":libtint_program_src",
|
||||||
":libtint_sem_src",
|
":libtint_sem_src",
|
||||||
":libtint_transform_src",
|
":libtint_transform_manager_src",
|
||||||
":libtint_type_src",
|
":libtint_type_src",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
]
|
]
|
||||||
|
@ -965,12 +1000,13 @@ libtint_source_set("libtint_spv_writer_src") {
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
":libtint_ast_src",
|
":libtint_ast_src",
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_builtins_src",
|
":libtint_builtins_src",
|
||||||
":libtint_constant_src",
|
":libtint_constant_src",
|
||||||
":libtint_program_src",
|
":libtint_program_src",
|
||||||
":libtint_sem_src",
|
":libtint_sem_src",
|
||||||
":libtint_symbols_src",
|
":libtint_symbols_src",
|
||||||
":libtint_transform_src",
|
":libtint_transform_manager_src",
|
||||||
":libtint_type_src",
|
":libtint_type_src",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
":libtint_writer_src",
|
":libtint_writer_src",
|
||||||
|
@ -1044,12 +1080,13 @@ libtint_source_set("libtint_msl_writer_src") {
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
":libtint_ast_src",
|
":libtint_ast_src",
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_builtins_src",
|
":libtint_builtins_src",
|
||||||
":libtint_constant_src",
|
":libtint_constant_src",
|
||||||
":libtint_program_src",
|
":libtint_program_src",
|
||||||
":libtint_sem_src",
|
":libtint_sem_src",
|
||||||
":libtint_symbols_src",
|
":libtint_symbols_src",
|
||||||
":libtint_transform_src",
|
":libtint_transform_manager_src",
|
||||||
":libtint_type_src",
|
":libtint_type_src",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
":libtint_writer_src",
|
":libtint_writer_src",
|
||||||
|
@ -1066,12 +1103,13 @@ libtint_source_set("libtint_hlsl_writer_src") {
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
":libtint_ast_src",
|
":libtint_ast_src",
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_builtins_src",
|
":libtint_builtins_src",
|
||||||
":libtint_constant_src",
|
":libtint_constant_src",
|
||||||
":libtint_program_src",
|
":libtint_program_src",
|
||||||
":libtint_sem_src",
|
":libtint_sem_src",
|
||||||
":libtint_symbols_src",
|
":libtint_symbols_src",
|
||||||
":libtint_transform_src",
|
":libtint_transform_manager_src",
|
||||||
":libtint_type_src",
|
":libtint_type_src",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
":libtint_writer_src",
|
":libtint_writer_src",
|
||||||
|
@ -1088,12 +1126,13 @@ libtint_source_set("libtint_glsl_writer_src") {
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
":libtint_ast_src",
|
":libtint_ast_src",
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_builtins_src",
|
":libtint_builtins_src",
|
||||||
":libtint_constant_src",
|
":libtint_constant_src",
|
||||||
":libtint_program_src",
|
":libtint_program_src",
|
||||||
":libtint_sem_src",
|
":libtint_sem_src",
|
||||||
":libtint_symbols_src",
|
":libtint_symbols_src",
|
||||||
":libtint_transform_src",
|
":libtint_transform_manager_src",
|
||||||
":libtint_type_src",
|
":libtint_type_src",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
":libtint_writer_src",
|
":libtint_writer_src",
|
||||||
|
@ -1206,13 +1245,13 @@ libtint_source_set("libtint_ir_src") {
|
||||||
source_set("libtint") {
|
source_set("libtint") {
|
||||||
public_deps = [
|
public_deps = [
|
||||||
":libtint_ast_src",
|
":libtint_ast_src",
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_constant_src",
|
":libtint_constant_src",
|
||||||
":libtint_initializer_src",
|
":libtint_initializer_src",
|
||||||
":libtint_inspector_src",
|
":libtint_inspector_src",
|
||||||
":libtint_program_src",
|
":libtint_program_src",
|
||||||
":libtint_sem_src",
|
":libtint_sem_src",
|
||||||
":libtint_symbols_src",
|
":libtint_symbols_src",
|
||||||
":libtint_transform_src",
|
|
||||||
":libtint_type_src",
|
":libtint_type_src",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
":libtint_writer_src",
|
":libtint_writer_src",
|
||||||
|
@ -1470,8 +1509,8 @@ if (tint_build_unittests) {
|
||||||
]
|
]
|
||||||
deps = [
|
deps = [
|
||||||
":libtint_ast_src",
|
":libtint_ast_src",
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_builtins_src",
|
":libtint_builtins_src",
|
||||||
":libtint_transform_src",
|
|
||||||
":libtint_unittests_ast_helper",
|
":libtint_unittests_ast_helper",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
]
|
]
|
||||||
|
@ -1587,8 +1626,8 @@ if (tint_build_unittests) {
|
||||||
"resolver/variable_validation_test.cc",
|
"resolver/variable_validation_test.cc",
|
||||||
]
|
]
|
||||||
deps = [
|
deps = [
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_builtins_src",
|
":libtint_builtins_src",
|
||||||
":libtint_transform_src",
|
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
":tint_unittests_ast_src",
|
":tint_unittests_ast_src",
|
||||||
]
|
]
|
||||||
|
@ -1638,7 +1677,7 @@ if (tint_build_unittests) {
|
||||||
deps = [ ":libtint_builtins_src" ]
|
deps = [ ":libtint_builtins_src" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
tint_unittests_source_set("tint_unittests_transform_src") {
|
tint_unittests_source_set("tint_unittests_ast_transform_src") {
|
||||||
sources = [
|
sources = [
|
||||||
"ast/transform/add_block_attribute_test.cc",
|
"ast/transform/add_block_attribute_test.cc",
|
||||||
"ast/transform/add_empty_entry_point_test.cc",
|
"ast/transform/add_empty_entry_point_test.cc",
|
||||||
|
@ -1697,8 +1736,9 @@ if (tint_build_unittests) {
|
||||||
]
|
]
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_builtins_src",
|
":libtint_builtins_src",
|
||||||
":libtint_transform_src",
|
":libtint_transform_manager_src",
|
||||||
":libtint_unittests_ast_helper",
|
":libtint_unittests_ast_helper",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
":libtint_wgsl_reader_src",
|
":libtint_wgsl_reader_src",
|
||||||
|
@ -2071,8 +2111,9 @@ if (tint_build_unittests) {
|
||||||
]
|
]
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_hlsl_writer_src",
|
":libtint_hlsl_writer_src",
|
||||||
":libtint_transform_src",
|
":libtint_transform_manager_src",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
":tint_unittests_ast_src",
|
":tint_unittests_ast_src",
|
||||||
]
|
]
|
||||||
|
@ -2115,9 +2156,10 @@ if (tint_build_unittests) {
|
||||||
]
|
]
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
|
":libtint_ast_transform_src",
|
||||||
":libtint_glsl_writer_src",
|
":libtint_glsl_writer_src",
|
||||||
":libtint_symbols_src",
|
":libtint_symbols_src",
|
||||||
":libtint_transform_src",
|
":libtint_transform_manager_src",
|
||||||
":libtint_utils_src",
|
":libtint_utils_src",
|
||||||
":tint_unittests_ast_src",
|
":tint_unittests_ast_src",
|
||||||
]
|
]
|
||||||
|
@ -2192,6 +2234,7 @@ if (tint_build_unittests) {
|
||||||
":libtint_wgsl_reader_src",
|
":libtint_wgsl_reader_src",
|
||||||
":libtint_wgsl_writer_src",
|
":libtint_wgsl_writer_src",
|
||||||
":tint_unittests_ast_src",
|
":tint_unittests_ast_src",
|
||||||
|
":tint_unittests_ast_transform_src",
|
||||||
":tint_unittests_builtins_src",
|
":tint_unittests_builtins_src",
|
||||||
":tint_unittests_cmd_src",
|
":tint_unittests_cmd_src",
|
||||||
":tint_unittests_constant_src",
|
":tint_unittests_constant_src",
|
||||||
|
@ -2201,7 +2244,6 @@ if (tint_build_unittests) {
|
||||||
":tint_unittests_resolver_src",
|
":tint_unittests_resolver_src",
|
||||||
":tint_unittests_sem_src",
|
":tint_unittests_sem_src",
|
||||||
":tint_unittests_symbols_src",
|
":tint_unittests_symbols_src",
|
||||||
":tint_unittests_transform_src",
|
|
||||||
":tint_unittests_type_src",
|
":tint_unittests_type_src",
|
||||||
":tint_unittests_utils_src",
|
":tint_unittests_utils_src",
|
||||||
":tint_unittests_writer_src",
|
":tint_unittests_writer_src",
|
||||||
|
|
|
@ -452,6 +452,8 @@ list(APPEND TINT_LIB_SRCS
|
||||||
ast/transform/zero_init_workgroup_memory.h
|
ast/transform/zero_init_workgroup_memory.h
|
||||||
transform/manager.cc
|
transform/manager.cc
|
||||||
transform/manager.h
|
transform/manager.h
|
||||||
|
transform/transform.cc
|
||||||
|
transform/transform.h
|
||||||
type/abstract_float.cc
|
type/abstract_float.cc
|
||||||
type/abstract_float.h
|
type/abstract_float.h
|
||||||
type/abstract_int.cc
|
type/abstract_int.cc
|
||||||
|
|
|
@ -31,7 +31,7 @@ TEST_F(ArrayLengthFromUniformTest, ShouldRunEmptyModule) {
|
||||||
ArrayLengthFromUniform::Config cfg({0, 30u});
|
ArrayLengthFromUniform::Config cfg({0, 30u});
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
||||||
|
|
||||||
EXPECT_FALSE(ShouldRun<ArrayLengthFromUniform>(src, data));
|
EXPECT_FALSE(ShouldRun<ArrayLengthFromUniform>(src, data));
|
||||||
|
@ -54,7 +54,7 @@ fn main() {
|
||||||
ArrayLengthFromUniform::Config cfg({0, 30u});
|
ArrayLengthFromUniform::Config cfg({0, 30u});
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
||||||
|
|
||||||
EXPECT_FALSE(ShouldRun<ArrayLengthFromUniform>(src, data));
|
EXPECT_FALSE(ShouldRun<ArrayLengthFromUniform>(src, data));
|
||||||
|
@ -78,7 +78,7 @@ fn main() {
|
||||||
ArrayLengthFromUniform::Config cfg({0, 30u});
|
ArrayLengthFromUniform::Config cfg({0, 30u});
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
||||||
|
|
||||||
EXPECT_TRUE(ShouldRun<ArrayLengthFromUniform>(src, data));
|
EXPECT_TRUE(ShouldRun<ArrayLengthFromUniform>(src, data));
|
||||||
|
@ -134,7 +134,7 @@ fn main() {
|
||||||
ArrayLengthFromUniform::Config cfg({0, 30u});
|
ArrayLengthFromUniform::Config cfg({0, 30u});
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
||||||
|
|
||||||
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
||||||
|
@ -183,7 +183,7 @@ fn main() {
|
||||||
ArrayLengthFromUniform::Config cfg({0, 30u});
|
ArrayLengthFromUniform::Config cfg({0, 30u});
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
||||||
|
|
||||||
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
||||||
|
@ -275,7 +275,7 @@ fn main() {
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{3u, 2u}, 3);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{3u, 2u}, 3);
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{4u, 2u}, 4);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{4u, 2u}, 4);
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
||||||
|
|
||||||
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
||||||
|
@ -361,7 +361,7 @@ fn main() {
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{3u, 2u}, 3);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{3u, 2u}, 3);
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{4u, 2u}, 4);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{4u, 2u}, 4);
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
||||||
|
|
||||||
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
||||||
|
@ -389,7 +389,7 @@ fn main() {
|
||||||
ArrayLengthFromUniform::Config cfg({0, 30u});
|
ArrayLengthFromUniform::Config cfg({0, 30u});
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
||||||
|
|
||||||
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
||||||
|
@ -454,7 +454,7 @@ fn main() {
|
||||||
ArrayLengthFromUniform::Config cfg({0, 30u});
|
ArrayLengthFromUniform::Config cfg({0, 30u});
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 2}, 0);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 2}, 0);
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
||||||
|
|
||||||
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
||||||
|
@ -502,7 +502,7 @@ struct SB {
|
||||||
ArrayLengthFromUniform::Config cfg({0, 30u});
|
ArrayLengthFromUniform::Config cfg({0, 30u});
|
||||||
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
cfg.bindpoint_to_size_index.emplace(sem::BindingPoint{0, 0}, 0);
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
data.Add<ArrayLengthFromUniform::Config>(std::move(cfg));
|
||||||
|
|
||||||
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
auto got = Run<Unshadow, SimplifyPointers, ArrayLengthFromUniform>(src, data);
|
||||||
|
|
|
@ -26,7 +26,7 @@ using BindingRemapperTest = TransformTest;
|
||||||
TEST_F(BindingRemapperTest, ShouldRunEmptyRemappings) {
|
TEST_F(BindingRemapperTest, ShouldRunEmptyRemappings) {
|
||||||
auto* src = R"()";
|
auto* src = R"()";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BindingRemapper::Remappings>(BindingRemapper::BindingPoints{},
|
data.Add<BindingRemapper::Remappings>(BindingRemapper::BindingPoints{},
|
||||||
BindingRemapper::AccessControls{});
|
BindingRemapper::AccessControls{});
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ TEST_F(BindingRemapperTest, ShouldRunEmptyRemappings) {
|
||||||
TEST_F(BindingRemapperTest, ShouldRunBindingPointRemappings) {
|
TEST_F(BindingRemapperTest, ShouldRunBindingPointRemappings) {
|
||||||
auto* src = R"()";
|
auto* src = R"()";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BindingRemapper::Remappings>(
|
data.Add<BindingRemapper::Remappings>(
|
||||||
BindingRemapper::BindingPoints{
|
BindingRemapper::BindingPoints{
|
||||||
{{2, 1}, {1, 2}},
|
{{2, 1}, {1, 2}},
|
||||||
|
@ -49,7 +49,7 @@ TEST_F(BindingRemapperTest, ShouldRunBindingPointRemappings) {
|
||||||
TEST_F(BindingRemapperTest, ShouldRunAccessControlRemappings) {
|
TEST_F(BindingRemapperTest, ShouldRunAccessControlRemappings) {
|
||||||
auto* src = R"()";
|
auto* src = R"()";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BindingRemapper::Remappings>(BindingRemapper::BindingPoints{},
|
data.Add<BindingRemapper::Remappings>(BindingRemapper::BindingPoints{},
|
||||||
BindingRemapper::AccessControls{
|
BindingRemapper::AccessControls{
|
||||||
{{2, 1}, builtin::Access::kWrite},
|
{{2, 1}, builtin::Access::kWrite},
|
||||||
|
@ -75,7 +75,7 @@ fn f() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BindingRemapper::Remappings>(BindingRemapper::BindingPoints{},
|
data.Add<BindingRemapper::Remappings>(BindingRemapper::BindingPoints{},
|
||||||
BindingRemapper::AccessControls{});
|
BindingRemapper::AccessControls{});
|
||||||
auto got = Run<BindingRemapper>(src, data);
|
auto got = Run<BindingRemapper>(src, data);
|
||||||
|
@ -112,7 +112,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BindingRemapper::Remappings>(
|
data.Add<BindingRemapper::Remappings>(
|
||||||
BindingRemapper::BindingPoints{
|
BindingRemapper::BindingPoints{
|
||||||
{{2, 1}, {1, 2}}, // Remap
|
{{2, 1}, {1, 2}}, // Remap
|
||||||
|
@ -158,7 +158,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BindingRemapper::Remappings>(
|
data.Add<BindingRemapper::Remappings>(
|
||||||
BindingRemapper::BindingPoints{},
|
BindingRemapper::BindingPoints{},
|
||||||
BindingRemapper::AccessControls{
|
BindingRemapper::AccessControls{
|
||||||
|
@ -200,7 +200,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BindingRemapper::Remappings>(
|
data.Add<BindingRemapper::Remappings>(
|
||||||
BindingRemapper::BindingPoints{
|
BindingRemapper::BindingPoints{
|
||||||
{{2, 1}, {4, 5}},
|
{{2, 1}, {4, 5}},
|
||||||
|
@ -254,7 +254,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BindingRemapper::Remappings>(
|
data.Add<BindingRemapper::Remappings>(
|
||||||
BindingRemapper::BindingPoints{
|
BindingRemapper::BindingPoints{
|
||||||
{{2, 1}, {1, 1}},
|
{{2, 1}, {1, 1}},
|
||||||
|
@ -316,7 +316,7 @@ fn f2() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BindingRemapper::Remappings>(
|
data.Add<BindingRemapper::Remappings>(
|
||||||
BindingRemapper::BindingPoints{
|
BindingRemapper::BindingPoints{
|
||||||
{{2, 1}, {1, 1}},
|
{{2, 1}, {1, 1}},
|
||||||
|
|
|
@ -41,10 +41,10 @@ TEST_F(BuiltinPolyfillTest, EmptyModule) {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// acosh
|
// acosh
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillAcosh(Level level) {
|
Transform::DataMap polyfillAcosh(Level level) {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.acosh = level;
|
builtins.acosh = level;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -172,10 +172,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// asinh
|
// asinh
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillSinh() {
|
Transform::DataMap polyfillSinh() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.asinh = true;
|
builtins.asinh = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -253,10 +253,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// atanh
|
// atanh
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillAtanh(Level level) {
|
Transform::DataMap polyfillAtanh(Level level) {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.atanh = level;
|
builtins.atanh = level;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -384,10 +384,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// bgra8unorm
|
// bgra8unorm
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillBgra8unorm() {
|
Transform::DataMap polyfillBgra8unorm() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.bgra8unorm = true;
|
builtins.bgra8unorm = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -505,7 +505,7 @@ fn f(coords : vec2<i32>, value : vec4<f32>) {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.atanh = BuiltinPolyfill::Level::kFull;
|
builtins.atanh = BuiltinPolyfill::Level::kFull;
|
||||||
builtins.bgra8unorm = true;
|
builtins.bgra8unorm = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
|
|
||||||
auto got = Run<BuiltinPolyfill>(src, std::move(data));
|
auto got = Run<BuiltinPolyfill>(src, std::move(data));
|
||||||
|
@ -516,10 +516,10 @@ fn f(coords : vec2<i32>, value : vec4<f32>) {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// bitshiftModulo
|
// bitshiftModulo
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillBitshiftModulo() {
|
Transform::DataMap polyfillBitshiftModulo() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.bitshift_modulo = true;
|
builtins.bitshift_modulo = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -655,10 +655,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// clampInteger
|
// clampInteger
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillClampInteger() {
|
Transform::DataMap polyfillClampInteger() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.clamp_int = true;
|
builtins.clamp_int = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -818,10 +818,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// conv_f32_to_iu32
|
// conv_f32_to_iu32
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillConvF32ToIU32() {
|
Transform::DataMap polyfillConvF32ToIU32() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.conv_f32_to_iu32 = true;
|
builtins.conv_f32_to_iu32 = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -969,10 +969,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// countLeadingZeros
|
// countLeadingZeros
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillCountLeadingZeros() {
|
Transform::DataMap polyfillCountLeadingZeros() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.count_leading_zeros = true;
|
builtins.count_leading_zeros = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -1142,10 +1142,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// countTrailingZeros
|
// countTrailingZeros
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillCountTrailingZeros() {
|
Transform::DataMap polyfillCountTrailingZeros() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.count_trailing_zeros = true;
|
builtins.count_trailing_zeros = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -1315,10 +1315,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// extractBits
|
// extractBits
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillExtractBits(Level level) {
|
Transform::DataMap polyfillExtractBits(Level level) {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.extract_bits = level;
|
builtins.extract_bits = level;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -1570,10 +1570,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// firstLeadingBit
|
// firstLeadingBit
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillFirstLeadingBit() {
|
Transform::DataMap polyfillFirstLeadingBit() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.first_leading_bit = true;
|
builtins.first_leading_bit = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -1743,10 +1743,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// firstTrailingBit
|
// firstTrailingBit
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillFirstTrailingBit() {
|
Transform::DataMap polyfillFirstTrailingBit() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.first_trailing_bit = true;
|
builtins.first_trailing_bit = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -1916,10 +1916,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// insertBits
|
// insertBits
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillInsertBits(Level level) {
|
Transform::DataMap polyfillInsertBits(Level level) {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.insert_bits = level;
|
builtins.insert_bits = level;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -2159,10 +2159,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// precise_float_mod
|
// precise_float_mod
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillPreciseFloatMod() {
|
Transform::DataMap polyfillPreciseFloatMod() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.precise_float_mod = true;
|
builtins.precise_float_mod = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -2385,10 +2385,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// int_div_mod
|
// int_div_mod
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillIntDivMod() {
|
Transform::DataMap polyfillIntDivMod() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.int_div_mod = true;
|
builtins.int_div_mod = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -3199,10 +3199,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// reflect for vec2<f32>
|
// reflect for vec2<f32>
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillReflectVec2F32() {
|
Transform::DataMap polyfillReflectVec2F32() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.reflect_vec2_f32 = true;
|
builtins.reflect_vec2_f32 = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -3370,10 +3370,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// saturate
|
// saturate
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillSaturate() {
|
Transform::DataMap polyfillSaturate() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.saturate = true;
|
builtins.saturate = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -3507,10 +3507,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// sign_int
|
// sign_int
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillSignInt() {
|
Transform::DataMap polyfillSignInt() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.sign_int = true;
|
builtins.sign_int = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -3600,10 +3600,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// textureSampleBaseClampToEdge
|
// textureSampleBaseClampToEdge
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillTextureSampleBaseClampToEdge_2d_f32() {
|
Transform::DataMap polyfillTextureSampleBaseClampToEdge_2d_f32() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.texture_sample_base_clamp_to_edge_2d_f32 = true;
|
builtins.texture_sample_base_clamp_to_edge_2d_f32 = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -3671,18 +3671,18 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// workgroupUniformLoad
|
// workgroupUniformLoad
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillWorkgroupUniformLoad() {
|
Transform::DataMap polyfillWorkgroupUniformLoad() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.workgroup_uniform_load = true;
|
builtins.workgroup_uniform_load = true;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
DataMap polyfillWorkgroupUniformLoadWithDirectVariableAccess() {
|
Transform::DataMap polyfillWorkgroupUniformLoadWithDirectVariableAccess() {
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
|
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.workgroup_uniform_load = true;
|
builtins.workgroup_uniform_load = true;
|
||||||
|
@ -3893,10 +3893,10 @@ fn f() {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// quantizeToF16
|
// quantizeToF16
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
DataMap polyfillQuantizeToF16_2d_f32() {
|
Transform::DataMap polyfillQuantizeToF16_2d_f32() {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.quantize_to_vec_f16 = true;
|
builtins.quantize_to_vec_f16 = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -4021,7 +4021,7 @@ fn f(x : i32, y : u32, z : u32) {
|
||||||
BuiltinPolyfill::Builtins builtins;
|
BuiltinPolyfill::Builtins builtins;
|
||||||
builtins.bitshift_modulo = true;
|
builtins.bitshift_modulo = true;
|
||||||
builtins.int_div_mod = true;
|
builtins.int_div_mod = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<BuiltinPolyfill::Config>(builtins);
|
data.Add<BuiltinPolyfill::Config>(builtins);
|
||||||
|
|
||||||
auto got = Run<BuiltinPolyfill>(src, std::move(data));
|
auto got = Run<BuiltinPolyfill>(src, std::move(data));
|
||||||
|
|
|
@ -48,7 +48,7 @@ fn comp_main() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ fn frag_main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ fn frag_main(@builtin(position) coord : vec4<f32>, tint_symbol : tint_symbol_1)
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ fn frag_main(tint_symbol : tint_symbol_1) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@ fn frag_main(tint_symbol : tint_symbol_1) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -224,7 +224,7 @@ fn frag_main(tint_symbol : tint_symbol_1) {
|
||||||
alias myf32 = f32;
|
alias myf32 = f32;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -277,7 +277,7 @@ fn frag_main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -330,7 +330,7 @@ struct FragLocations {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -384,7 +384,7 @@ fn frag_main(@builtin(position) coord : vec4<f32>, tint_symbol : tint_symbol_1)
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -438,7 +438,7 @@ struct FragLocations {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -494,7 +494,7 @@ fn frag_main(tint_symbol : tint_symbol_1) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -550,7 +550,7 @@ struct FragLocations {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -579,7 +579,7 @@ fn frag_main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -613,7 +613,7 @@ fn frag_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -647,7 +647,7 @@ fn frag_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -702,7 +702,7 @@ fn frag_main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -757,7 +757,7 @@ struct FragOutput {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -817,7 +817,7 @@ fn frag_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -877,7 +877,7 @@ struct FragOutput {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -937,7 +937,7 @@ fn frag_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -997,7 +997,7 @@ struct FragOutput {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1063,7 +1063,7 @@ fn frag_main2() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1129,7 +1129,7 @@ struct FragmentInput {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1201,7 +1201,7 @@ fn frag_main2(tint_symbol_2 : tint_symbol_3) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1273,7 +1273,7 @@ struct FragmentInput {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1345,7 +1345,7 @@ fn frag_main2(tint_symbol_2 : tint_symbol_3) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1417,7 +1417,7 @@ struct FragmentInput {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1484,7 +1484,7 @@ fn frag_main1(tint_symbol : tint_symbol_1) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1551,7 +1551,7 @@ struct FragmentInput {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1637,7 +1637,7 @@ fn frag_main(tint_symbol : tint_symbol_1) -> tint_symbol_2 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1723,7 +1723,7 @@ struct FragmentOutput {
|
||||||
alias myf32 = f32;
|
alias myf32 = f32;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1814,7 +1814,7 @@ fn frag_main(tint_symbol_1 : tint_symbol_2) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -1905,7 +1905,7 @@ struct FragmentIn {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2035,7 +2035,7 @@ fn frag_main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2165,7 +2165,7 @@ struct FragmentInterface {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2229,7 +2229,7 @@ fn main2() -> tint_symbol_1 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2293,7 +2293,7 @@ struct VertexOut {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2360,7 +2360,7 @@ fn frag_main(tint_symbol : tint_symbol_1) -> tint_symbol_2 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2427,7 +2427,7 @@ struct FragmentOutput {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2531,7 +2531,7 @@ fn frag_main(tint_symbol_1 : tint_symbol_2) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2635,7 +2635,7 @@ struct FragmentInputExtra {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2664,7 +2664,7 @@ fn tint_symbol_1(tint_symbol : tint_symbol_2) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2696,7 +2696,7 @@ fn frag_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2730,7 +2730,7 @@ fn frag_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2764,7 +2764,7 @@ fn frag_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2801,7 +2801,7 @@ fn frag_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2853,7 +2853,7 @@ fn frag_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2905,7 +2905,7 @@ struct Output {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -2955,7 +2955,7 @@ fn frag_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -3005,7 +3005,7 @@ struct Output {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -3094,7 +3094,7 @@ fn comp_main1() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03u);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -3144,7 +3144,7 @@ fn frag_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl, 0x03);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -3176,7 +3176,7 @@ fn vert_main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3214,7 +3214,7 @@ fn vert_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3255,7 +3255,7 @@ fn vert_main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3296,7 +3296,7 @@ struct VertOut {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3342,7 +3342,7 @@ fn vert_main() -> tint_symbol {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3388,7 +3388,7 @@ struct VertOut {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3466,7 +3466,7 @@ fn vert_main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3544,7 +3544,7 @@ struct VertOut {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3620,7 +3620,7 @@ fn vert_main(tint_symbol : tint_symbol_1) -> tint_symbol_2 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3696,7 +3696,7 @@ struct VertOut {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kMsl,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3772,7 +3772,7 @@ fn vert_main(tint_symbol : tint_symbol_1) -> tint_symbol_2 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3848,7 +3848,7 @@ struct VertOut {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl,
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl,
|
||||||
0xFFFFFFFF, true);
|
0xFFFFFFFF, true);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
@ -3884,7 +3884,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kSpirv);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -3919,7 +3919,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kGlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kGlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
@ -3956,7 +3956,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kGlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kGlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO>(src, data);
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ TEST_F(CombineSamplersTest, EmptyModule) {
|
||||||
auto* src = "";
|
auto* src = "";
|
||||||
auto* expect = "";
|
auto* expect = "";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ fn sample(t_s_1 : texture_2d<f32>, coords : vec2<f32>) -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
CombineSamplers::BindingMap map;
|
CombineSamplers::BindingMap map;
|
||||||
sem::SamplerTexturePair pair;
|
sem::SamplerTexturePair pair;
|
||||||
pair.texture_binding_point.group = 0;
|
pair.texture_binding_point.group = 0;
|
||||||
|
@ -214,7 +214,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
CombineSamplers::BindingMap map;
|
CombineSamplers::BindingMap map;
|
||||||
sem::SamplerTexturePair pair;
|
sem::SamplerTexturePair pair;
|
||||||
pair.texture_binding_point.group = 3;
|
pair.texture_binding_point.group = 3;
|
||||||
|
@ -262,7 +262,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -300,7 +300,7 @@ fn sample(t_s_1 : texture_2d<f32>, coords : vec2<f32>) -> vec4<f32> {
|
||||||
alias Tex2d = texture_2d<f32>;
|
alias Tex2d = texture_2d<f32>;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -343,7 +343,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -385,7 +385,7 @@ fn g(t_s_2 : texture_2d<f32>, coords : vec2<f32>) -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -428,7 +428,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -491,7 +491,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -538,7 +538,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -585,7 +585,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -624,7 +624,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -661,7 +661,7 @@ fn f(tex_s1 : texture_2d<f32>, tex_s2 : texture_2d<f32>, coords : vec2<f32>) ->
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -700,7 +700,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -737,7 +737,7 @@ fn f(t1_samp : texture_2d<f32>, t2_samp : texture_2d<f32>, coords : vec2<f32>) -
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -776,7 +776,7 @@ fn main() -> vec4<f32> {
|
||||||
pair.sampler_binding_point.binding = placeholder.binding;
|
pair.sampler_binding_point.binding = placeholder.binding;
|
||||||
CombineSamplers::BindingMap map;
|
CombineSamplers::BindingMap map;
|
||||||
map[pair] = "fred";
|
map[pair] = "fred";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(map, placeholder);
|
data.Add<CombineSamplers::BindingInfo>(map, placeholder);
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -820,7 +820,7 @@ fn main() -> vec4<f32> {
|
||||||
CombineSamplers::BindingMap map;
|
CombineSamplers::BindingMap map;
|
||||||
map[pair] = "barney";
|
map[pair] = "barney";
|
||||||
map[placeholder_pair] = "fred";
|
map[placeholder_pair] = "fred";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(map, placeholder);
|
data.Add<CombineSamplers::BindingInfo>(map, placeholder);
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -847,7 +847,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -882,7 +882,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -916,7 +916,7 @@ fn f(t_s : texture_depth_2d, coords : vec2<f32>) -> f32 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -947,7 +947,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
@ -977,7 +977,7 @@ fn main() -> vec4<f32> {
|
||||||
@internal(disable_validation__binding_point_collision) @group(0) @binding(0) var<uniform> gcoords : vec2<f32>;
|
@internal(disable_validation__binding_point_collision) @group(0) @binding(0) var<uniform> gcoords : vec2<f32>;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
data.Add<CombineSamplers::BindingInfo>(CombineSamplers::BindingMap(), sem::BindingPoint());
|
||||||
auto got = Run<CombineSamplers>(src, data);
|
auto got = Run<CombineSamplers>(src, data);
|
||||||
|
|
||||||
|
|
|
@ -23,22 +23,22 @@
|
||||||
namespace tint::ast::transform {
|
namespace tint::ast::transform {
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
/// @returns a DataMap with DirectVariableAccess::Config::transform_private enabled.
|
/// @returns a Transform::DataMap with DirectVariableAccess::Config::transform_private enabled.
|
||||||
static DataMap EnablePrivate() {
|
static Transform::DataMap EnablePrivate() {
|
||||||
DirectVariableAccess::Options opts;
|
DirectVariableAccess::Options opts;
|
||||||
opts.transform_private = true;
|
opts.transform_private = true;
|
||||||
|
|
||||||
DataMap inputs;
|
Transform::DataMap inputs;
|
||||||
inputs.Add<DirectVariableAccess::Config>(opts);
|
inputs.Add<DirectVariableAccess::Config>(opts);
|
||||||
return inputs;
|
return inputs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @returns a DataMap with DirectVariableAccess::Config::transform_function enabled.
|
/// @returns a Transform::DataMap with DirectVariableAccess::Config::transform_function enabled.
|
||||||
static DataMap EnableFunction() {
|
static Transform::DataMap EnableFunction() {
|
||||||
DirectVariableAccess::Options opts;
|
DirectVariableAccess::Options opts;
|
||||||
opts.transform_function = true;
|
opts.transform_function = true;
|
||||||
|
|
||||||
DataMap inputs;
|
Transform::DataMap inputs;
|
||||||
inputs.Add<DirectVariableAccess::Config>(opts);
|
inputs.Add<DirectVariableAccess::Config>(opts);
|
||||||
return inputs;
|
return inputs;
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,7 +62,7 @@ class FirstIndexOffset final : public utils::Castable<FirstIndexOffset, Transfor
|
||||||
/// BindingPoint is consumed by the FirstIndexOffset transform.
|
/// BindingPoint is consumed by the FirstIndexOffset transform.
|
||||||
/// BindingPoint specifies the binding point of the first index uniform
|
/// BindingPoint specifies the binding point of the first index uniform
|
||||||
/// buffer.
|
/// buffer.
|
||||||
struct BindingPoint final : public utils::Castable<BindingPoint, transform::Data> {
|
struct BindingPoint final : public utils::Castable<BindingPoint, Transform::Data> {
|
||||||
/// Constructor
|
/// Constructor
|
||||||
BindingPoint();
|
BindingPoint();
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ class FirstIndexOffset final : public utils::Castable<FirstIndexOffset, Transfor
|
||||||
|
|
||||||
/// Data is outputted by the FirstIndexOffset transform.
|
/// Data is outputted by the FirstIndexOffset transform.
|
||||||
/// Data holds information about shader usage and constant buffer offsets.
|
/// Data holds information about shader usage and constant buffer offsets.
|
||||||
struct Data final : public utils::Castable<Data, transform::Data> {
|
struct Data final : public utils::Castable<Data, Transform::Data> {
|
||||||
/// Constructor
|
/// Constructor
|
||||||
/// @param has_vtx_or_inst_index True if the shader uses vertex_index or
|
/// @param has_vtx_or_inst_index True if the shader uses vertex_index or
|
||||||
/// instance_index
|
/// instance_index
|
||||||
|
|
|
@ -57,7 +57,7 @@ TEST_F(FirstIndexOffsetTest, EmptyModule) {
|
||||||
auto* src = "";
|
auto* src = "";
|
||||||
auto* expect = "";
|
auto* expect = "";
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(0, 0);
|
config.Add<FirstIndexOffset::BindingPoint>(0, 0);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ fn entry() -> @builtin(position) vec4<f32> {
|
||||||
)";
|
)";
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(0, 0);
|
config.Add<FirstIndexOffset::BindingPoint>(0, 0);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ fn entry(@builtin(vertex_index) vert_idx : u32) -> @builtin(position) vec4<f32>
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
@ -165,7 +165,7 @@ fn test(vert_idx : u32) -> u32 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@ fn entry(@builtin(instance_index) inst_idx : u32) -> @builtin(position) vec4<f32
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(1, 7);
|
config.Add<FirstIndexOffset::BindingPoint>(1, 7);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
@ -253,7 +253,7 @@ fn test(inst_idx : u32) -> u32 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(1, 7);
|
config.Add<FirstIndexOffset::BindingPoint>(1, 7);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
@ -309,7 +309,7 @@ fn entry(inputs : Inputs) -> @builtin(position) vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
@ -365,7 +365,7 @@ fn test(instance_idx : u32, vert_idx : u32) -> u32 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
@ -417,7 +417,7 @@ fn entry(@builtin(vertex_index) vert_idx : u32) -> @builtin(position) vec4<f32>
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
@ -469,7 +469,7 @@ fn func1(vert_idx : u32) -> u32 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
@ -537,7 +537,7 @@ fn entry_c(@builtin(instance_index) inst_idx : u32) -> @builtin(position) vec4<f
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
@ -605,7 +605,7 @@ fn func(i : u32) -> u32 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap config;
|
Transform::DataMap config;
|
||||||
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
config.Add<FirstIndexOffset::BindingPoint>(1, 2);
|
||||||
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
auto got = Run<FirstIndexOffset>(src, std::move(config));
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ using MultiplanarExternalTextureTest = TransformTest;
|
||||||
TEST_F(MultiplanarExternalTextureTest, ShouldRunEmptyModule) {
|
TEST_F(MultiplanarExternalTextureTest, ShouldRunEmptyModule) {
|
||||||
auto* src = R"()";
|
auto* src = R"()";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ TEST_F(MultiplanarExternalTextureTest, ShouldRunHasExternalTextureAlias) {
|
||||||
alias ET = texture_external;
|
alias ET = texture_external;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ TEST_F(MultiplanarExternalTextureTest, ShouldRunHasExternalTextureGlobal) {
|
||||||
@group(0) @binding(0) var ext_tex : texture_external;
|
@group(0) @binding(0) var ext_tex : texture_external;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ TEST_F(MultiplanarExternalTextureTest, ShouldRunHasExternalTextureParam) {
|
||||||
fn f(ext_tex : texture_external) {}
|
fn f(ext_tex : texture_external) {}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
|
||||||
|
|
||||||
auto* expect = R"(error: missing new binding points for texture_external at binding {0,1})";
|
auto* expect = R"(error: missing new binding points for texture_external at binding {0,1})";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
// This bindings map specifies 0,0 as the location of the texture_external,
|
// This bindings map specifies 0,0 as the location of the texture_external,
|
||||||
// which is incorrect.
|
// which is incorrect.
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
|
@ -156,7 +156,7 @@ fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
||||||
auto got = Run<MultiplanarExternalTexture>(src, data);
|
auto got = Run<MultiplanarExternalTexture>(src, data);
|
||||||
|
@ -212,7 +212,7 @@ fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
|
||||||
@group(0) @binding(0) var ext_tex : texture_2d<f32>;
|
@group(0) @binding(0) var ext_tex : texture_2d<f32>;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
||||||
auto got = Run<MultiplanarExternalTexture>(src, data);
|
auto got = Run<MultiplanarExternalTexture>(src, data);
|
||||||
|
@ -296,7 +296,7 @@ fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 1}, {{0, 2}, {0, 3}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 1}, {{0, 2}, {0, 3}}}});
|
||||||
auto got = Run<MultiplanarExternalTexture>(src, data);
|
auto got = Run<MultiplanarExternalTexture>(src, data);
|
||||||
|
@ -380,7 +380,7 @@ fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
|
||||||
@group(0) @binding(0) var s : sampler;
|
@group(0) @binding(0) var s : sampler;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 1}, {{0, 2}, {0, 3}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 1}, {{0, 2}, {0, 3}}}});
|
||||||
auto got = Run<MultiplanarExternalTexture>(src, data);
|
auto got = Run<MultiplanarExternalTexture>(src, data);
|
||||||
|
@ -475,7 +475,7 @@ fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
||||||
auto got = Run<MultiplanarExternalTexture>(src, data);
|
auto got = Run<MultiplanarExternalTexture>(src, data);
|
||||||
|
@ -570,7 +570,7 @@ fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
|
||||||
@group(0) @binding(0) var ext_tex : texture_2d<f32>;
|
@group(0) @binding(0) var ext_tex : texture_2d<f32>;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
||||||
auto got = Run<MultiplanarExternalTexture>(src, data);
|
auto got = Run<MultiplanarExternalTexture>(src, data);
|
||||||
|
@ -670,7 +670,7 @@ fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 1}, {{0, 2}, {0, 3}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 1}, {{0, 2}, {0, 3}}}});
|
||||||
auto got = Run<MultiplanarExternalTexture>(src, data);
|
auto got = Run<MultiplanarExternalTexture>(src, data);
|
||||||
|
@ -770,7 +770,7 @@ fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
|
||||||
@group(0) @binding(1) var ext_tex : texture_2d<f32>;
|
@group(0) @binding(1) var ext_tex : texture_2d<f32>;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 1}, {{0, 2}, {0, 3}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 1}, {{0, 2}, {0, 3}}}});
|
||||||
auto got = Run<MultiplanarExternalTexture>(src, data);
|
auto got = Run<MultiplanarExternalTexture>(src, data);
|
||||||
|
@ -878,7 +878,7 @@ fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
||||||
{{0, 1}, {{0, 4}, {0, 5}}},
|
{{0, 1}, {{0, 4}, {0, 5}}},
|
||||||
{{0, 2}, {{0, 6}, {0, 7}}},
|
{{0, 2}, {{0, 6}, {0, 7}}},
|
||||||
|
@ -974,7 +974,7 @@ fn main() {
|
||||||
f(ext_tex, ext_tex_plane_1, ext_tex_params, smp);
|
f(ext_tex, ext_tex_plane_1, ext_tex_params, smp);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
||||||
{{0, 0}, {{0, 2}, {0, 3}}},
|
{{0, 0}, {{0, 2}, {0, 3}}},
|
||||||
});
|
});
|
||||||
|
@ -1067,7 +1067,7 @@ fn f(t : texture_2d<f32>, ext_tex_plane_1_1 : texture_2d<f32>, ext_tex_params_1
|
||||||
|
|
||||||
@group(0) @binding(1) var smp : sampler;
|
@group(0) @binding(1) var smp : sampler;
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
||||||
{{0, 0}, {{0, 2}, {0, 3}}},
|
{{0, 0}, {{0, 2}, {0, 3}}},
|
||||||
});
|
});
|
||||||
|
@ -1160,7 +1160,7 @@ fn main() {
|
||||||
f(smp, ext_tex, ext_tex_plane_1, ext_tex_params);
|
f(smp, ext_tex, ext_tex_plane_1, ext_tex_params);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
||||||
{{0, 0}, {{0, 2}, {0, 3}}},
|
{{0, 0}, {{0, 2}, {0, 3}}},
|
||||||
});
|
});
|
||||||
|
@ -1262,7 +1262,7 @@ fn main() {
|
||||||
f(ext_tex, ext_tex_plane_1, ext_tex_params, smp, ext_tex2, ext_tex_plane_1_1, ext_tex_params_1);
|
f(ext_tex, ext_tex_plane_1, ext_tex_params, smp, ext_tex2, ext_tex_plane_1_1, ext_tex_params_1);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
||||||
{{0, 0}, {{0, 3}, {0, 4}}},
|
{{0, 0}, {{0, 3}, {0, 4}}},
|
||||||
{{0, 2}, {{0, 5}, {0, 6}}},
|
{{0, 2}, {{0, 5}, {0, 6}}},
|
||||||
|
@ -1366,7 +1366,7 @@ fn f(t : texture_2d<f32>, ext_tex_plane_1_2 : texture_2d<f32>, ext_tex_params_2
|
||||||
|
|
||||||
@group(0) @binding(2) var ext_tex2 : texture_2d<f32>;
|
@group(0) @binding(2) var ext_tex2 : texture_2d<f32>;
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
||||||
{{0, 0}, {{0, 3}, {0, 4}}},
|
{{0, 0}, {{0, 3}, {0, 4}}},
|
||||||
{{0, 2}, {{0, 5}, {0, 6}}},
|
{{0, 2}, {{0, 5}, {0, 6}}},
|
||||||
|
@ -1468,7 +1468,7 @@ fn main() {
|
||||||
f(ext_tex, ext_tex_plane_1, ext_tex_params, smp);
|
f(ext_tex, ext_tex_plane_1, ext_tex_params, smp);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
||||||
{{0, 0}, {{0, 2}, {0, 3}}},
|
{{0, 0}, {{0, 2}, {0, 3}}},
|
||||||
});
|
});
|
||||||
|
@ -1569,7 +1569,7 @@ fn main() {
|
||||||
f(ext_tex, ext_tex_plane_1, ext_tex_params, smp);
|
f(ext_tex, ext_tex_plane_1, ext_tex_params, smp);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
||||||
{{0, 0}, {{0, 2}, {0, 3}}},
|
{{0, 0}, {{0, 2}, {0, 3}}},
|
||||||
});
|
});
|
||||||
|
@ -1613,7 +1613,7 @@ fn f(ext_tex : texture_2d<f32>, ext_tex_plane_1 : texture_2d<f32>, ext_tex_param
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(
|
||||||
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
MultiplanarExternalTexture::BindingsMap{{{0, 0}, {{0, 1}, {0, 2}}}});
|
||||||
auto got = Run<MultiplanarExternalTexture>(src, data);
|
auto got = Run<MultiplanarExternalTexture>(src, data);
|
||||||
|
@ -1708,7 +1708,7 @@ fn main() {
|
||||||
f(ext_tex, ext_tex_plane_1, ext_tex_params, smp);
|
f(ext_tex, ext_tex_plane_1, ext_tex_params, smp);
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
||||||
{{0, 0}, {{0, 2}, {0, 3}}},
|
{{0, 0}, {{0, 2}, {0, 3}}},
|
||||||
});
|
});
|
||||||
|
@ -1804,7 +1804,7 @@ fn f(t : texture_2d<f32>, ext_tex_plane_1_1 : texture_2d<f32>, ext_tex_params_1
|
||||||
|
|
||||||
alias ET = texture_external;
|
alias ET = texture_external;
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
data.Add<MultiplanarExternalTexture::NewBindingPoints>(MultiplanarExternalTexture::BindingsMap{
|
||||||
{{0, 0}, {{0, 2}, {0, 3}}},
|
{{0, 0}, {{0, 2}, {0, 3}}},
|
||||||
});
|
});
|
||||||
|
|
|
@ -28,7 +28,7 @@ using NumWorkgroupsFromUniformTest = TransformTest;
|
||||||
TEST_F(NumWorkgroupsFromUniformTest, ShouldRunEmptyModule) {
|
TEST_F(NumWorkgroupsFromUniformTest, ShouldRunEmptyModule) {
|
||||||
auto* src = R"()";
|
auto* src = R"()";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
||||||
EXPECT_FALSE(ShouldRun<NumWorkgroupsFromUniform>(src, data));
|
EXPECT_FALSE(ShouldRun<NumWorkgroupsFromUniform>(src, data));
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ fn main(@builtin(num_workgroups) num_wgs : vec3<u32>) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
||||||
EXPECT_TRUE(ShouldRun<NumWorkgroupsFromUniform>(src, data));
|
EXPECT_TRUE(ShouldRun<NumWorkgroupsFromUniform>(src, data));
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ fn main(@builtin(num_workgroups) num_wgs : vec3<u32>) {
|
||||||
auto* expect =
|
auto* expect =
|
||||||
"error: missing transform data for tint::ast::transform::NumWorkgroupsFromUniform";
|
"error: missing transform data for tint::ast::transform::NumWorkgroupsFromUniform";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -90,7 +90,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
||||||
|
@ -134,7 +134,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
||||||
|
@ -178,7 +178,7 @@ struct Builtins {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
||||||
|
@ -233,7 +233,7 @@ fn main(tint_symbol : tint_symbol_1) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
||||||
|
@ -289,7 +289,7 @@ struct Builtins {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
||||||
|
@ -388,7 +388,7 @@ fn main3() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
||||||
|
@ -429,7 +429,7 @@ fn main(tint_symbol : tint_symbol_1) {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
data.Add<NumWorkgroupsFromUniform::Config>(sem::BindingPoint{0, 30u});
|
||||||
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
auto got = Run<Unshadow, CanonicalizeEntryPointIO, NumWorkgroupsFromUniform>(src, data);
|
||||||
|
@ -530,7 +530,7 @@ fn main3() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
// Make binding point unspecified.
|
// Make binding point unspecified.
|
||||||
data.Add<NumWorkgroupsFromUniform::Config>(std::nullopt);
|
data.Add<NumWorkgroupsFromUniform::Config>(std::nullopt);
|
||||||
|
@ -684,7 +684,7 @@ fn main3() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
// Make binding point unspecified.
|
// Make binding point unspecified.
|
||||||
data.Add<NumWorkgroupsFromUniform::Config>(std::nullopt);
|
data.Add<NumWorkgroupsFromUniform::Config>(std::nullopt);
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -28,7 +28,7 @@ TEST_F(PadStructsTest, EmptyModule) {
|
||||||
auto* src = "";
|
auto* src = "";
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -61,7 +61,7 @@ fn main() {
|
||||||
let x = u.x;
|
let x = u.x;
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -97,7 +97,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -137,7 +137,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -179,7 +179,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -219,7 +219,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -254,7 +254,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -300,7 +300,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -350,7 +350,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -396,7 +396,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -433,7 +433,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -477,7 +477,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -524,7 +524,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -561,7 +561,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -598,7 +598,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PadStructs>(src, data);
|
auto got = Run<PadStructs>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
|
|
@ -672,7 +672,7 @@ Transform::ApplyResult PromoteSideEffectsToDecl::Apply(const Program* src,
|
||||||
tint::transform::Manager manager;
|
tint::transform::Manager manager;
|
||||||
manager.Add<SimplifySideEffectStatements>();
|
manager.Add<SimplifySideEffectStatements>();
|
||||||
manager.Add<DecomposeSideEffects>();
|
manager.Add<DecomposeSideEffects>();
|
||||||
return manager.Apply(src, inputs, outputs);
|
return manager.Run(src, inputs, outputs);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace tint::ast::transform
|
} // namespace tint::ast::transform
|
||||||
|
|
|
@ -25,7 +25,7 @@ TEST_F(PromoteSideEffectsToDeclTest, EmptyModule) {
|
||||||
auto* src = "";
|
auto* src = "";
|
||||||
auto* expect = "";
|
auto* expect = "";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -44,7 +44,7 @@ fn f() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -81,7 +81,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -111,7 +111,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -142,7 +142,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -176,7 +176,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -211,7 +211,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -248,7 +248,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -278,7 +278,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -306,7 +306,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -338,7 +338,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -370,7 +370,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -401,7 +401,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -433,7 +433,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -467,7 +467,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -489,7 +489,7 @@ fn f() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -532,7 +532,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -566,7 +566,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -608,7 +608,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -645,7 +645,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -679,7 +679,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -716,7 +716,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -757,7 +757,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -789,7 +789,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -820,7 +820,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -861,7 +861,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -900,7 +900,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -944,7 +944,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -998,7 +998,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1037,7 +1037,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1077,7 +1077,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1137,7 +1137,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1168,7 +1168,7 @@ fn f() -> i32 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1205,7 +1205,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1238,7 +1238,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1271,7 +1271,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1302,7 +1302,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1347,7 +1347,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1384,7 +1384,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1429,7 +1429,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1468,7 +1468,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1509,7 +1509,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1548,7 +1548,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1585,7 +1585,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1628,7 +1628,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1685,7 +1685,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1732,7 +1732,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1779,7 +1779,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1818,7 +1818,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1859,7 +1859,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1906,7 +1906,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1946,7 +1946,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -1984,7 +1984,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2031,7 +2031,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2079,7 +2079,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2113,7 +2113,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2146,7 +2146,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2190,7 +2190,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2232,7 +2232,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2279,7 +2279,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2342,7 +2342,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2384,7 +2384,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2427,7 +2427,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2492,7 +2492,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2517,7 +2517,7 @@ fn f() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2555,7 +2555,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2593,7 +2593,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2634,7 +2634,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2680,7 +2680,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2712,7 +2712,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2747,7 +2747,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2778,7 +2778,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2805,7 +2805,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2835,7 +2835,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2866,7 +2866,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2898,7 +2898,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2933,7 +2933,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2963,7 +2963,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -2995,7 +2995,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3027,7 +3027,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3069,7 +3069,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3099,7 +3099,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3132,7 +3132,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3161,7 +3161,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3200,7 +3200,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3264,7 +3264,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3295,7 +3295,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3325,7 +3325,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3355,7 +3355,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3385,7 +3385,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3417,7 +3417,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3450,7 +3450,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3484,7 +3484,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3515,7 +3515,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3547,7 +3547,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3580,7 +3580,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3614,7 +3614,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3651,7 +3651,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3688,7 +3688,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3724,7 +3724,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3760,7 +3760,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3806,7 +3806,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3824,7 +3824,7 @@ fn f() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3873,7 +3873,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3922,7 +3922,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -3970,7 +3970,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -4018,7 +4018,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -4079,7 +4079,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -4127,7 +4127,7 @@ fn m() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
auto got = Run<PromoteSideEffectsToDecl>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
|
|
@ -101,7 +101,7 @@ TEST_F(RemoveContinueInSwitchTest, EmptyModule) {
|
||||||
auto* src = "";
|
auto* src = "";
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<RemoveContinueInSwitch>(src, data);
|
auto got = Run<RemoveContinueInSwitch>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -163,7 +163,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<RemoveContinueInSwitch>(src, data);
|
auto got = Run<RemoveContinueInSwitch>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -247,7 +247,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<RemoveContinueInSwitch>(src, data);
|
auto got = Run<RemoveContinueInSwitch>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -332,7 +332,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<RemoveContinueInSwitch>(src, data);
|
auto got = Run<RemoveContinueInSwitch>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -423,7 +423,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<RemoveContinueInSwitch>(src, data);
|
auto got = Run<RemoveContinueInSwitch>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -501,7 +501,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<RemoveContinueInSwitch>(src, data);
|
auto got = Run<RemoveContinueInSwitch>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -553,7 +553,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<RemoveContinueInSwitch>(src, data);
|
auto got = Run<RemoveContinueInSwitch>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -607,7 +607,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<RemoveContinueInSwitch>(src, data);
|
auto got = Run<RemoveContinueInSwitch>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
|
|
@ -27,7 +27,7 @@ class Renamer final : public utils::Castable<Renamer, Transform> {
|
||||||
public:
|
public:
|
||||||
/// Data is outputted by the Renamer transform.
|
/// Data is outputted by the Renamer transform.
|
||||||
/// Data holds information about shader usage and constant buffer offsets.
|
/// Data holds information about shader usage and constant buffer offsets.
|
||||||
struct Data final : public utils::Castable<Data, transform::Data> {
|
struct Data final : public utils::Castable<Data, tint::transform::Data> {
|
||||||
/// Remappings is a map of old symbol name to new symbol name
|
/// Remappings is a map of old symbol name to new symbol name
|
||||||
using Remappings = std::unordered_map<std::string, std::string>;
|
using Remappings = std::unordered_map<std::string, std::string>;
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ class Renamer final : public utils::Castable<Renamer, Transform> {
|
||||||
|
|
||||||
/// Optional configuration options for the transform.
|
/// Optional configuration options for the transform.
|
||||||
/// If omitted, then the renamer will use Target::kAll.
|
/// If omitted, then the renamer will use Target::kAll.
|
||||||
struct Config final : public utils::Castable<Config, transform::Data> {
|
struct Config final : public utils::Castable<Config, tint::transform::Data> {
|
||||||
/// Constructor
|
/// Constructor
|
||||||
/// @param tgt the targets to rename
|
/// @param tgt the targets to rename
|
||||||
/// @param keep_unicode if false, symbols with non-ascii code-points are
|
/// @param keep_unicode if false, symbols with non-ascii code-points are
|
||||||
|
|
|
@ -245,7 +245,7 @@ fn frag_main() {
|
||||||
|
|
||||||
auto expect = src;
|
auto expect = src;
|
||||||
|
|
||||||
DataMap inputs;
|
Transform::DataMap inputs;
|
||||||
inputs.Add<Renamer::Config>(Renamer::Target::kMslKeywords,
|
inputs.Add<Renamer::Config>(Renamer::Target::kMslKeywords,
|
||||||
/* preserve_unicode */ true);
|
/* preserve_unicode */ true);
|
||||||
auto got = Run<Renamer>(src, inputs);
|
auto got = Run<Renamer>(src, inputs);
|
||||||
|
@ -269,7 +269,7 @@ fn tint_symbol() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap inputs;
|
Transform::DataMap inputs;
|
||||||
inputs.Add<Renamer::Config>(Renamer::Target::kAll,
|
inputs.Add<Renamer::Config>(Renamer::Target::kAll,
|
||||||
/* preserve_unicode */ true);
|
/* preserve_unicode */ true);
|
||||||
auto got = Run<Renamer>(src, inputs);
|
auto got = Run<Renamer>(src, inputs);
|
||||||
|
@ -379,7 +379,7 @@ fn frag_main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap inputs;
|
Transform::DataMap inputs;
|
||||||
inputs.Add<Renamer::Config>(Renamer::Target::kGlslKeywords,
|
inputs.Add<Renamer::Config>(Renamer::Target::kGlslKeywords,
|
||||||
/* preserve_unicode */ false);
|
/* preserve_unicode */ false);
|
||||||
auto got = Run<Renamer>(src, inputs);
|
auto got = Run<Renamer>(src, inputs);
|
||||||
|
@ -405,7 +405,7 @@ fn frag_main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap inputs;
|
Transform::DataMap inputs;
|
||||||
inputs.Add<Renamer::Config>(Renamer::Target::kHlslKeywords,
|
inputs.Add<Renamer::Config>(Renamer::Target::kHlslKeywords,
|
||||||
/* preserve_unicode */ false);
|
/* preserve_unicode */ false);
|
||||||
auto got = Run<Renamer>(src, inputs);
|
auto got = Run<Renamer>(src, inputs);
|
||||||
|
@ -431,7 +431,7 @@ fn frag_main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap inputs;
|
Transform::DataMap inputs;
|
||||||
inputs.Add<Renamer::Config>(Renamer::Target::kMslKeywords,
|
inputs.Add<Renamer::Config>(Renamer::Target::kMslKeywords,
|
||||||
/* preserve_unicode */ false);
|
/* preserve_unicode */ false);
|
||||||
auto got = Run<Renamer>(src, inputs);
|
auto got = Run<Renamer>(src, inputs);
|
||||||
|
|
|
@ -32,7 +32,7 @@ static std::ostream& operator<<(std::ostream& out, Robustness::Action action) {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
DataMap Config(Robustness::Action action) {
|
Transform::DataMap Config(Robustness::Action action) {
|
||||||
Robustness::Config cfg;
|
Robustness::Config cfg;
|
||||||
cfg.value_action = action;
|
cfg.value_action = action;
|
||||||
cfg.texture_action = action;
|
cfg.texture_action = action;
|
||||||
|
@ -42,7 +42,7 @@ DataMap Config(Robustness::Action action) {
|
||||||
cfg.storage_action = action;
|
cfg.storage_action = action;
|
||||||
cfg.uniform_action = action;
|
cfg.uniform_action = action;
|
||||||
cfg.workgroup_action = action;
|
cfg.workgroup_action = action;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<Robustness::Config>(cfg);
|
data.Add<Robustness::Config>(cfg);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ TEST_F(SingleEntryPointTest, Error_NoEntryPoints) {
|
||||||
|
|
||||||
auto* expect = "error: entry point 'main' not found";
|
auto* expect = "error: entry point 'main' not found";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>("main");
|
data.Add<SingleEntryPoint::Config>("main");
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ fn main() -> @builtin(position) vec4<f32> {
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("_");
|
SingleEntryPoint::Config cfg("_");
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ fn main() {}
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("foo");
|
SingleEntryPoint::Config cfg("foo");
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ fn main() {
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("main");
|
SingleEntryPoint::Config cfg("main");
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ fn comp_main1() {
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("comp_main1");
|
SingleEntryPoint::Config cfg("comp_main1");
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ fn comp_main1() {
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("comp_main1");
|
SingleEntryPoint::Config cfg("comp_main1");
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ fn comp_main1() {
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("comp_main1");
|
SingleEntryPoint::Config cfg("comp_main1");
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
@ -253,7 +253,7 @@ fn main() {
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("main");
|
SingleEntryPoint::Config cfg("main");
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
@ -303,7 +303,7 @@ fn comp_main1() {
|
||||||
let local_d = c1;
|
let local_d = c1;
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -321,7 +321,7 @@ fn comp_main2() {
|
||||||
let local_d = c2;
|
let local_d = c2;
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -337,7 +337,7 @@ fn comp_main3() {
|
||||||
let local_d = c3;
|
let local_d = c3;
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -353,7 +353,7 @@ fn comp_main4() {
|
||||||
let local_d = c4;
|
let local_d = c4;
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -367,7 +367,7 @@ fn comp_main5() {
|
||||||
let local_d = 1u;
|
let local_d = 1u;
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -403,7 +403,7 @@ fn main() {
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("main");
|
SingleEntryPoint::Config cfg("main");
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -440,7 +440,7 @@ fn main() {
|
||||||
)";
|
)";
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("main");
|
SingleEntryPoint::Config cfg("main");
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -498,7 +498,7 @@ fn comp_main1() {
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("comp_main1");
|
SingleEntryPoint::Config cfg("comp_main1");
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
@ -581,7 +581,7 @@ fn comp_main1() {
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("comp_main1");
|
SingleEntryPoint::Config cfg("comp_main1");
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
@ -604,7 +604,7 @@ fn main() {
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("main");
|
SingleEntryPoint::Config cfg("main");
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
@ -624,7 +624,7 @@ fn main() {
|
||||||
|
|
||||||
SingleEntryPoint::Config cfg("main");
|
SingleEntryPoint::Config cfg("main");
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SingleEntryPoint::Config>(cfg);
|
data.Add<SingleEntryPoint::Config>(cfg);
|
||||||
auto got = Run<SingleEntryPoint>(src, data);
|
auto got = Run<SingleEntryPoint>(src, data);
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ fn main() -> @builtin(position) vec4<f32> {
|
||||||
|
|
||||||
auto* expect = "error: Missing override substitution data";
|
auto* expect = "error: Missing override substitution data";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<SubstituteOverride>(src, data);
|
auto got = Run<SubstituteOverride>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -50,7 +50,7 @@ fn main() -> @builtin(position) vec4<f32> {
|
||||||
auto* expect = "error: Initializer not provided for override, and override not overridden.";
|
auto* expect = "error: Initializer not provided for override, and override not overridden.";
|
||||||
|
|
||||||
SubstituteOverride::Config cfg;
|
SubstituteOverride::Config cfg;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SubstituteOverride::Config>(cfg);
|
data.Add<SubstituteOverride::Config>(cfg);
|
||||||
|
|
||||||
auto got = Run<SubstituteOverride>(src, data);
|
auto got = Run<SubstituteOverride>(src, data);
|
||||||
|
@ -75,7 +75,7 @@ fn main() -> @builtin(position) vec4<f32> {
|
||||||
|
|
||||||
SubstituteOverride::Config cfg;
|
SubstituteOverride::Config cfg;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SubstituteOverride::Config>(cfg);
|
data.Add<SubstituteOverride::Config>(cfg);
|
||||||
auto got = Run<SubstituteOverride>(src, data);
|
auto got = Run<SubstituteOverride>(src, data);
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ fn main() -> @builtin(position) vec4<f32> {
|
||||||
cfg.map.insert({OverrideId{6}, 1.0});
|
cfg.map.insert({OverrideId{6}, 1.0});
|
||||||
cfg.map.insert({OverrideId{7}, 0.0});
|
cfg.map.insert({OverrideId{7}, 0.0});
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SubstituteOverride::Config>(cfg);
|
data.Add<SubstituteOverride::Config>(cfg);
|
||||||
auto got = Run<SubstituteOverride>(src, data);
|
auto got = Run<SubstituteOverride>(src, data);
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ fn main() -> @builtin(position) vec4<f32> {
|
||||||
cfg.map.insert({OverrideId{7}, 0.0});
|
cfg.map.insert({OverrideId{7}, 0.0});
|
||||||
cfg.map.insert({OverrideId{5}, 13});
|
cfg.map.insert({OverrideId{5}, 13});
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SubstituteOverride::Config>(cfg);
|
data.Add<SubstituteOverride::Config>(cfg);
|
||||||
auto got = Run<SubstituteOverride>(src, data);
|
auto got = Run<SubstituteOverride>(src, data);
|
||||||
|
|
||||||
|
@ -241,7 +241,7 @@ fn main() -> @builtin(position) vec4<f32> {
|
||||||
SubstituteOverride::Config cfg;
|
SubstituteOverride::Config cfg;
|
||||||
cfg.map.insert({OverrideId{0}, 11.0});
|
cfg.map.insert({OverrideId{0}, 11.0});
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SubstituteOverride::Config>(cfg);
|
data.Add<SubstituteOverride::Config>(cfg);
|
||||||
auto got = Run<SubstituteOverride>(src, data);
|
auto got = Run<SubstituteOverride>(src, data);
|
||||||
|
|
||||||
|
@ -282,7 +282,7 @@ fn f() {
|
||||||
SubstituteOverride::Config cfg;
|
SubstituteOverride::Config cfg;
|
||||||
cfg.map.insert({OverrideId{0}, 0.0});
|
cfg.map.insert({OverrideId{0}, 0.0});
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<SubstituteOverride::Config>(cfg);
|
data.Add<SubstituteOverride::Config>(cfg);
|
||||||
auto got = Run<SubstituteOverride>(src, data);
|
auto got = Run<SubstituteOverride>(src, data);
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "gtest/gtest.h"
|
#include "gtest/gtest.h"
|
||||||
|
#include "src/tint/ast/transform/transform.h"
|
||||||
#include "src/tint/reader/wgsl/parser.h"
|
#include "src/tint/reader/wgsl/parser.h"
|
||||||
#include "src/tint/transform/manager.h"
|
#include "src/tint/transform/manager.h"
|
||||||
#include "src/tint/writer/wgsl/generator.h"
|
#include "src/tint/writer/wgsl/generator.h"
|
||||||
|
@ -66,11 +67,11 @@ class TransformTestBase : public BASE {
|
||||||
/// `transform`.
|
/// `transform`.
|
||||||
/// @param transform the transform to apply
|
/// @param transform the transform to apply
|
||||||
/// @param in the input WGSL source
|
/// @param in the input WGSL source
|
||||||
/// @param data the optional DataMap to pass to Transform::Run()
|
/// @param data the optional Transform::DataMap to pass to Transform::Run()
|
||||||
/// @return the transformed output
|
/// @return the transformed output
|
||||||
Output Run(std::string in,
|
Output Run(std::string in,
|
||||||
std::unique_ptr<transform::Transform> transform,
|
std::unique_ptr<transform::Transform> transform,
|
||||||
const DataMap& data = {}) {
|
const tint::transform::DataMap& data = {}) {
|
||||||
std::vector<std::unique_ptr<transform::Transform>> transforms;
|
std::vector<std::unique_ptr<transform::Transform>> transforms;
|
||||||
transforms.emplace_back(std::move(transform));
|
transforms.emplace_back(std::move(transform));
|
||||||
return Run(std::move(in), std::move(transforms), data);
|
return Run(std::move(in), std::move(transforms), data);
|
||||||
|
@ -79,10 +80,10 @@ class TransformTestBase : public BASE {
|
||||||
/// Transforms and returns the WGSL source `in`, transformed using
|
/// Transforms and returns the WGSL source `in`, transformed using
|
||||||
/// a transform of type `TRANSFORM`.
|
/// a transform of type `TRANSFORM`.
|
||||||
/// @param in the input WGSL source
|
/// @param in the input WGSL source
|
||||||
/// @param data the optional DataMap to pass to Transform::Run()
|
/// @param data the optional Transform::DataMap to pass to Transform::Run()
|
||||||
/// @return the transformed output
|
/// @return the transformed output
|
||||||
template <typename... TRANSFORMS>
|
template <typename... TRANSFORMS>
|
||||||
Output Run(std::string in, const DataMap& data = {}) {
|
Output Run(std::string in, const tint::transform::DataMap& data = {}) {
|
||||||
auto file = std::make_unique<Source::File>("test", in);
|
auto file = std::make_unique<Source::File>("test", in);
|
||||||
auto program = reader::wgsl::Parse(file.get());
|
auto program = reader::wgsl::Parse(file.get());
|
||||||
|
|
||||||
|
@ -95,26 +96,28 @@ class TransformTestBase : public BASE {
|
||||||
/// Transforms and returns program `program`, transformed using a transform of
|
/// Transforms and returns program `program`, transformed using a transform of
|
||||||
/// type `TRANSFORM`.
|
/// type `TRANSFORM`.
|
||||||
/// @param program the input Program
|
/// @param program the input Program
|
||||||
/// @param data the optional DataMap to pass to Transform::Run()
|
/// @param data the optional Transform::DataMap to pass to Transform::Run()
|
||||||
/// @return the transformed output
|
/// @return the transformed output
|
||||||
template <typename... TRANSFORMS>
|
template <typename... TRANSFORMS>
|
||||||
Output Run(Program&& program, const DataMap& data = {}) {
|
Output Run(Program&& program, const tint::transform::DataMap& data = {}) {
|
||||||
if (!program.IsValid()) {
|
if (!program.IsValid()) {
|
||||||
return Output(std::move(program));
|
return Output(std::move(program));
|
||||||
}
|
}
|
||||||
|
|
||||||
tint::transform::Manager manager;
|
tint::transform::Manager manager;
|
||||||
|
tint::transform::DataMap outputs;
|
||||||
for (auto* transform_ptr : std::initializer_list<Transform*>{new TRANSFORMS()...}) {
|
for (auto* transform_ptr : std::initializer_list<Transform*>{new TRANSFORMS()...}) {
|
||||||
manager.append(std::unique_ptr<Transform>(transform_ptr));
|
manager.append(std::unique_ptr<Transform>(transform_ptr));
|
||||||
}
|
}
|
||||||
return manager.Run(&program, data);
|
auto result = manager.Run(&program, data, outputs);
|
||||||
|
return {std::move(result), std::move(outputs)};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @param program the input program
|
/// @param program the input program
|
||||||
/// @param data the optional DataMap to pass to Transform::Run()
|
/// @param data the optional Transform::DataMap to pass to Transform::Run()
|
||||||
/// @return true if the transform should be run for the given input.
|
/// @return true if the transform should be run for the given input.
|
||||||
template <typename TRANSFORM>
|
template <typename TRANSFORM>
|
||||||
bool ShouldRun(Program&& program, const DataMap& data = {}) {
|
bool ShouldRun(Program&& program, const tint::transform::DataMap& data = {}) {
|
||||||
if (!program.IsValid()) {
|
if (!program.IsValid()) {
|
||||||
ADD_FAILURE() << "ShouldRun() called with invalid program: "
|
ADD_FAILURE() << "ShouldRun() called with invalid program: "
|
||||||
<< program.Diagnostics().str();
|
<< program.Diagnostics().str();
|
||||||
|
@ -123,7 +126,7 @@ class TransformTestBase : public BASE {
|
||||||
|
|
||||||
const Transform& t = TRANSFORM();
|
const Transform& t = TRANSFORM();
|
||||||
|
|
||||||
DataMap outputs;
|
tint::transform::DataMap outputs;
|
||||||
auto result = t.Apply(&program, data, outputs);
|
auto result = t.Apply(&program, data, outputs);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -137,10 +140,10 @@ class TransformTestBase : public BASE {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @param in the input WGSL source
|
/// @param in the input WGSL source
|
||||||
/// @param data the optional DataMap to pass to Transform::Run()
|
/// @param data the optional Transform::DataMap to pass to Transform::Run()
|
||||||
/// @return true if the transform should be run for the given input.
|
/// @return true if the transform should be run for the given input.
|
||||||
template <typename TRANSFORM>
|
template <typename TRANSFORM>
|
||||||
bool ShouldRun(std::string in, const DataMap& data = {}) {
|
bool ShouldRun(std::string in, const tint::transform::DataMap& data = {}) {
|
||||||
auto file = std::make_unique<Source::File>("test", in);
|
auto file = std::make_unique<Source::File>("test", in);
|
||||||
auto program = reader::wgsl::Parse(file.get());
|
auto program = reader::wgsl::Parse(file.get());
|
||||||
return ShouldRun<TRANSFORM>(std::move(program), data);
|
return ShouldRun<TRANSFORM>(std::move(program), data);
|
||||||
|
|
|
@ -23,7 +23,7 @@ using Texture1DTo2DTest = TransformTest;
|
||||||
TEST_F(Texture1DTo2DTest, EmptyModule) {
|
TEST_F(Texture1DTo2DTest, EmptyModule) {
|
||||||
auto* src = "";
|
auto* src = "";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
EXPECT_FALSE(ShouldRun<Texture1DTo2D>(src, data));
|
EXPECT_FALSE(ShouldRun<Texture1DTo2D>(src, data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ TEST_F(Texture1DTo2DTest, Global1DDecl) {
|
||||||
@group(0) @binding(1) var s : sampler;
|
@group(0) @binding(1) var s : sampler;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<Texture1DTo2D>(src, data);
|
auto got = Run<Texture1DTo2D>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -65,7 +65,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<Texture1DTo2D>(src, data);
|
auto got = Run<Texture1DTo2D>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -87,7 +87,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<Texture1DTo2D>(src, data);
|
auto got = Run<Texture1DTo2D>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -109,7 +109,7 @@ fn main() -> u32 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<Texture1DTo2D>(src, data);
|
auto got = Run<Texture1DTo2D>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -131,7 +131,7 @@ fn main() -> u32 {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<Texture1DTo2D>(src, data);
|
auto got = Run<Texture1DTo2D>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -153,7 +153,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<Texture1DTo2D>(src, data);
|
auto got = Run<Texture1DTo2D>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -167,7 +167,7 @@ TEST_F(Texture1DTo2DTest, GlobalStorage1DDecl) {
|
||||||
@group(0) @binding(0) var t : texture_storage_2d<r32float, write>;
|
@group(0) @binding(0) var t : texture_storage_2d<r32float, write>;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<Texture1DTo2D>(src, data);
|
auto got = Run<Texture1DTo2D>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -184,7 +184,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
EXPECT_FALSE(ShouldRun<Texture1DTo2D>(src, data));
|
EXPECT_FALSE(ShouldRun<Texture1DTo2D>(src, data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ TEST_F(Texture1DTo2DTest, PrivateIntNoop) {
|
||||||
var<private> i : i32;
|
var<private> i : i32;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
EXPECT_FALSE(ShouldRun<Texture1DTo2D>(src, data));
|
EXPECT_FALSE(ShouldRun<Texture1DTo2D>(src, data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,7 +202,7 @@ TEST_F(Texture1DTo2DTest, GlobalMatrixNoop) {
|
||||||
@group(0) @binding(0) var<uniform> m : mat2x2<f32>;
|
@group(0) @binding(0) var<uniform> m : mat2x2<f32>;
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
EXPECT_FALSE(ShouldRun<Texture1DTo2D>(src, data));
|
EXPECT_FALSE(ShouldRun<Texture1DTo2D>(src, data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ fn main() -> vec4<f32> {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<Texture1DTo2D>(src, data);
|
auto got = Run<Texture1DTo2D>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -265,7 +265,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<Texture1DTo2D>(src, data);
|
auto got = Run<Texture1DTo2D>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -290,7 +290,7 @@ fn d() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<Texture1DTo2D>(src, data);
|
auto got = Run<Texture1DTo2D>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
|
|
@ -28,20 +28,9 @@
|
||||||
#include "src/tint/type/sampler.h"
|
#include "src/tint/type/sampler.h"
|
||||||
|
|
||||||
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::Transform);
|
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::Transform);
|
||||||
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::Data);
|
|
||||||
|
|
||||||
namespace tint::ast::transform {
|
namespace tint::ast::transform {
|
||||||
|
|
||||||
Data::Data() = default;
|
|
||||||
Data::Data(const Data&) = default;
|
|
||||||
Data::~Data() = default;
|
|
||||||
Data& Data::operator=(const Data&) = default;
|
|
||||||
|
|
||||||
DataMap::DataMap() = default;
|
|
||||||
DataMap::DataMap(DataMap&&) = default;
|
|
||||||
DataMap::~DataMap() = default;
|
|
||||||
DataMap& DataMap::operator=(DataMap&&) = default;
|
|
||||||
|
|
||||||
Output::Output() = default;
|
Output::Output() = default;
|
||||||
Output::Output(Program&& p) : program(std::move(p)) {}
|
Output::Output(Program&& p) : program(std::move(p)) {}
|
||||||
Transform::Transform() = default;
|
Transform::Transform() = default;
|
||||||
|
|
|
@ -15,8 +15,8 @@
|
||||||
#ifndef SRC_TINT_AST_TRANSFORM_TRANSFORM_H_
|
#ifndef SRC_TINT_AST_TRANSFORM_TRANSFORM_H_
|
||||||
#define SRC_TINT_AST_TRANSFORM_TRANSFORM_H_
|
#define SRC_TINT_AST_TRANSFORM_TRANSFORM_H_
|
||||||
|
|
||||||
#include <memory>
|
#include "src/tint/transform/transform.h"
|
||||||
#include <unordered_map>
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include "src/tint/program.h"
|
#include "src/tint/program.h"
|
||||||
|
@ -24,107 +24,6 @@
|
||||||
|
|
||||||
namespace tint::ast::transform {
|
namespace tint::ast::transform {
|
||||||
|
|
||||||
/// Data is the base class for transforms that accept extra input or emit extra
|
|
||||||
/// output information along with a Program.
|
|
||||||
class Data : public utils::Castable<Data> {
|
|
||||||
public:
|
|
||||||
/// Constructor
|
|
||||||
Data();
|
|
||||||
|
|
||||||
/// Copy constructor
|
|
||||||
Data(const Data&);
|
|
||||||
|
|
||||||
/// Destructor
|
|
||||||
~Data() override;
|
|
||||||
|
|
||||||
/// Assignment operator
|
|
||||||
/// @returns this Data
|
|
||||||
Data& operator=(const Data&);
|
|
||||||
};
|
|
||||||
|
|
||||||
/// DataMap is a map of Data unique pointers keyed by the Data's ClassID.
|
|
||||||
class DataMap {
|
|
||||||
public:
|
|
||||||
/// Constructor
|
|
||||||
DataMap();
|
|
||||||
|
|
||||||
/// Move constructor
|
|
||||||
DataMap(DataMap&&);
|
|
||||||
|
|
||||||
/// Constructor
|
|
||||||
/// @param data_unique_ptrs a variadic list of additional data unique_ptrs
|
|
||||||
/// produced by the transform
|
|
||||||
template <typename... DATA>
|
|
||||||
explicit DataMap(DATA... data_unique_ptrs) {
|
|
||||||
PutAll(std::forward<DATA>(data_unique_ptrs)...);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Destructor
|
|
||||||
~DataMap();
|
|
||||||
|
|
||||||
/// Move assignment operator
|
|
||||||
/// @param rhs the DataMap to move into this DataMap
|
|
||||||
/// @return this DataMap
|
|
||||||
DataMap& operator=(DataMap&& rhs);
|
|
||||||
|
|
||||||
/// Adds the data into DataMap keyed by the ClassID of type T.
|
|
||||||
/// @param data the data to add to the DataMap
|
|
||||||
template <typename T>
|
|
||||||
void Put(std::unique_ptr<T>&& data) {
|
|
||||||
static_assert(std::is_base_of<Data, T>::value, "T does not derive from Data");
|
|
||||||
map_[&utils::TypeInfo::Of<T>()] = std::move(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Creates the data of type `T` with the provided arguments and adds it into
|
|
||||||
/// DataMap keyed by the ClassID of type T.
|
|
||||||
/// @param args the arguments forwarded to the initializer for type T
|
|
||||||
template <typename T, typename... ARGS>
|
|
||||||
void Add(ARGS&&... args) {
|
|
||||||
Put(std::make_unique<T>(std::forward<ARGS>(args)...));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @returns a pointer to the Data placed into the DataMap with a call to
|
|
||||||
/// Put()
|
|
||||||
template <typename T>
|
|
||||||
T const* Get() const {
|
|
||||||
return const_cast<DataMap*>(this)->Get<T>();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @returns a pointer to the Data placed into the DataMap with a call to
|
|
||||||
/// Put()
|
|
||||||
template <typename T>
|
|
||||||
T* Get() {
|
|
||||||
auto it = map_.find(&utils::TypeInfo::Of<T>());
|
|
||||||
if (it == map_.end()) {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
return static_cast<T*>(it->second.get());
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Add moves all the data from other into this DataMap
|
|
||||||
/// @param other the DataMap to move into this DataMap
|
|
||||||
void Add(DataMap&& other) {
|
|
||||||
for (auto& it : other.map_) {
|
|
||||||
map_.emplace(it.first, std::move(it.second));
|
|
||||||
}
|
|
||||||
other.map_.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
template <typename T0>
|
|
||||||
void PutAll(T0&& first) {
|
|
||||||
Put(std::forward<T0>(first));
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T0, typename... Tn>
|
|
||||||
void PutAll(T0&& first, Tn&&... remainder) {
|
|
||||||
Put(std::forward<T0>(first));
|
|
||||||
PutAll(std::forward<Tn>(remainder)...);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unordered_map<const utils::TypeInfo*, std::unique_ptr<Data>> map_;
|
|
||||||
};
|
|
||||||
|
|
||||||
/// The return type of Run()
|
/// The return type of Run()
|
||||||
class Output {
|
class Output {
|
||||||
public:
|
public:
|
||||||
|
@ -147,11 +46,11 @@ class Output {
|
||||||
Program program;
|
Program program;
|
||||||
|
|
||||||
/// Extra output generated by the transforms.
|
/// Extra output generated by the transforms.
|
||||||
DataMap data;
|
tint::transform::DataMap data;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Interface for Program transforms
|
/// Interface for Program transforms
|
||||||
class Transform : public utils::Castable<Transform> {
|
class Transform : public utils::Castable<Transform, tint::transform::Transform> {
|
||||||
public:
|
public:
|
||||||
/// Constructor
|
/// Constructor
|
||||||
Transform();
|
Transform();
|
||||||
|
|
|
@ -51,7 +51,7 @@ fn f() -> ShaderIO {
|
||||||
{
|
{
|
||||||
// Empty interstage_locations: truncate all interstage variables, should run
|
// Empty interstage_locations: truncate all interstage variables, should run
|
||||||
TruncateInterstageVariables::Config cfg;
|
TruncateInterstageVariables::Config cfg;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
EXPECT_TRUE(ShouldRun<TruncateInterstageVariables>(src, data));
|
EXPECT_TRUE(ShouldRun<TruncateInterstageVariables>(src, data));
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ fn f() -> ShaderIO {
|
||||||
TruncateInterstageVariables::Config cfg;
|
TruncateInterstageVariables::Config cfg;
|
||||||
cfg.interstage_locations[0] = true;
|
cfg.interstage_locations[0] = true;
|
||||||
cfg.interstage_locations[2] = true;
|
cfg.interstage_locations[2] = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
EXPECT_FALSE(ShouldRun<TruncateInterstageVariables>(src, data));
|
EXPECT_FALSE(ShouldRun<TruncateInterstageVariables>(src, data));
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ fn f() -> ShaderIO {
|
||||||
// Partial interstage_locations are marked: should run
|
// Partial interstage_locations are marked: should run
|
||||||
TruncateInterstageVariables::Config cfg;
|
TruncateInterstageVariables::Config cfg;
|
||||||
cfg.interstage_locations[2] = true;
|
cfg.interstage_locations[2] = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
EXPECT_TRUE(ShouldRun<TruncateInterstageVariables>(src, data));
|
EXPECT_TRUE(ShouldRun<TruncateInterstageVariables>(src, data));
|
||||||
}
|
}
|
||||||
|
@ -91,7 +91,7 @@ fn f(io: ShaderIO) -> @location(1) vec4<f32> {
|
||||||
TruncateInterstageVariables::Config cfg;
|
TruncateInterstageVariables::Config cfg;
|
||||||
cfg.interstage_locations[2] = true;
|
cfg.interstage_locations[2] = true;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
|
|
||||||
EXPECT_FALSE(ShouldRun<TruncateInterstageVariables>(src, data));
|
EXPECT_FALSE(ShouldRun<TruncateInterstageVariables>(src, data));
|
||||||
|
@ -109,7 +109,7 @@ fn f() -> @builtin(position) vec4<f32> {
|
||||||
|
|
||||||
TruncateInterstageVariables::Config cfg;
|
TruncateInterstageVariables::Config cfg;
|
||||||
cfg.interstage_locations[0] = true;
|
cfg.interstage_locations[0] = true;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
|
|
||||||
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
data.Add<CanonicalizeEntryPointIO::Config>(CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
|
@ -169,7 +169,7 @@ fn f() -> tint_symbol {
|
||||||
// fragment has input at @location(1)
|
// fragment has input at @location(1)
|
||||||
cfg.interstage_locations[1] = true;
|
cfg.interstage_locations[1] = true;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
|
|
||||||
auto got = Run<TruncateInterstageVariables>(src, data);
|
auto got = Run<TruncateInterstageVariables>(src, data);
|
||||||
|
@ -226,7 +226,7 @@ fn f() -> tint_symbol {
|
||||||
// fragment has input at @location(3)
|
// fragment has input at @location(3)
|
||||||
cfg.interstage_locations[3] = true;
|
cfg.interstage_locations[3] = true;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
|
|
||||||
auto got = Run<TruncateInterstageVariables>(src, data);
|
auto got = Run<TruncateInterstageVariables>(src, data);
|
||||||
|
@ -279,7 +279,7 @@ fn f() -> tint_symbol {
|
||||||
)";
|
)";
|
||||||
|
|
||||||
TruncateInterstageVariables::Config cfg;
|
TruncateInterstageVariables::Config cfg;
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
|
|
||||||
auto got = Run<TruncateInterstageVariables>(src, data);
|
auto got = Run<TruncateInterstageVariables>(src, data);
|
||||||
|
@ -349,7 +349,7 @@ fn f() -> tint_symbol {
|
||||||
cfg.interstage_locations[3] = true;
|
cfg.interstage_locations[3] = true;
|
||||||
cfg.interstage_locations[5] = true;
|
cfg.interstage_locations[5] = true;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
|
|
||||||
auto got = Run<TruncateInterstageVariables>(src, data);
|
auto got = Run<TruncateInterstageVariables>(src, data);
|
||||||
|
@ -426,7 +426,7 @@ fn f2() -> tint_symbol {
|
||||||
// fragment has input at @location(3)
|
// fragment has input at @location(3)
|
||||||
cfg.interstage_locations[3] = true;
|
cfg.interstage_locations[3] = true;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
|
|
||||||
auto got = Run<TruncateInterstageVariables>(src, data);
|
auto got = Run<TruncateInterstageVariables>(src, data);
|
||||||
|
@ -521,7 +521,7 @@ fn f2() -> tint_symbol_1 {
|
||||||
// fragment has input at @location(3)
|
// fragment has input at @location(3)
|
||||||
cfg.interstage_locations[3] = true;
|
cfg.interstage_locations[3] = true;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
|
|
||||||
auto got = Run<TruncateInterstageVariables>(src, data);
|
auto got = Run<TruncateInterstageVariables>(src, data);
|
||||||
|
@ -586,7 +586,7 @@ fn f(@builtin(vertex_index) vid : u32) -> tint_symbol {
|
||||||
// fragment has input at @location(3)
|
// fragment has input at @location(3)
|
||||||
cfg.interstage_locations[3] = true;
|
cfg.interstage_locations[3] = true;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<TruncateInterstageVariables::Config>(cfg);
|
data.Add<TruncateInterstageVariables::Config>(cfg);
|
||||||
|
|
||||||
auto got = Run<TruncateInterstageVariables>(src, data);
|
auto got = Run<TruncateInterstageVariables>(src, data);
|
||||||
|
|
|
@ -49,7 +49,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -73,7 +73,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -105,7 +105,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -138,7 +138,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -171,7 +171,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -204,7 +204,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -237,7 +237,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -277,7 +277,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -311,7 +311,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -364,7 +364,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -398,7 +398,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -451,7 +451,7 @@ fn f() {
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -467,7 +467,7 @@ fn f() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -483,7 +483,7 @@ fn f() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -501,7 +501,7 @@ fn f() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -519,7 +519,7 @@ fn f() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -537,7 +537,7 @@ fn f() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
@ -553,7 +553,7 @@ fn f() {
|
||||||
|
|
||||||
auto* expect = src;
|
auto* expect = src;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
auto got = Run<VarForDynamicIndex>(src, data);
|
auto got = Run<VarForDynamicIndex>(src, data);
|
||||||
|
|
||||||
EXPECT_EQ(expect, str(got));
|
EXPECT_EQ(expect, str(got));
|
||||||
|
|
|
@ -28,7 +28,7 @@ TEST_F(VertexPullingTest, Error_NoEntryPoint) {
|
||||||
|
|
||||||
auto* expect = "error: Vertex stage entry point not found";
|
auto* expect = "error: Vertex stage entry point not found";
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>();
|
data.Add<VertexPulling::Config>();
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ fn main2() -> @builtin(position) vec4<f32> {
|
||||||
|
|
||||||
VertexPulling::Config cfg;
|
VertexPulling::Config cfg;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ fn main() {}
|
||||||
|
|
||||||
VertexPulling::Config cfg;
|
VertexPulling::Config cfg;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ fn main(@location(0) var_a : f32) -> @builtin(position) vec4<f32> {
|
||||||
VertexPulling::Config cfg;
|
VertexPulling::Config cfg;
|
||||||
cfg.vertex_state = {{{15, VertexStepMode::kVertex, {{VertexFormat::kFloat32, 0, 0}}}}};
|
cfg.vertex_state = {{{15, VertexStepMode::kVertex, {{VertexFormat::kFloat32, 0, 0}}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ fn main() -> @builtin(position) vec4<f32> {
|
||||||
|
|
||||||
VertexPulling::Config cfg;
|
VertexPulling::Config cfg;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
VertexPulling::Config cfg;
|
VertexPulling::Config cfg;
|
||||||
cfg.vertex_state = {{{4, VertexStepMode::kVertex, {{VertexFormat::kFloat32, 0, 0}}}}};
|
cfg.vertex_state = {{{4, VertexStepMode::kVertex, {{VertexFormat::kFloat32, 0, 0}}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ fn main(@builtin(instance_index) tint_pulling_instance_index : u32) -> @builtin(
|
||||||
VertexPulling::Config cfg;
|
VertexPulling::Config cfg;
|
||||||
cfg.vertex_state = {{{4, VertexStepMode::kInstance, {{VertexFormat::kFloat32, 0, 0}}}}};
|
cfg.vertex_state = {{{4, VertexStepMode::kInstance, {{VertexFormat::kFloat32, 0, 0}}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -227,7 +227,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
cfg.vertex_state = {{{4, VertexStepMode::kVertex, {{VertexFormat::kFloat32, 0, 0}}}}};
|
cfg.vertex_state = {{{4, VertexStepMode::kVertex, {{VertexFormat::kFloat32, 0, 0}}}}};
|
||||||
cfg.pulling_group = 5;
|
cfg.pulling_group = 5;
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -272,7 +272,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
VertexPulling::Config cfg;
|
VertexPulling::Config cfg;
|
||||||
cfg.vertex_state = {{{4, VertexStepMode::kVertex, {{VertexFormat::kFloat32, 0, 0}}}}};
|
cfg.vertex_state = {{{4, VertexStepMode::kVertex, {{VertexFormat::kFloat32, 0, 0}}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -329,7 +329,7 @@ fn main(@builtin(vertex_index) custom_vertex_index : u32, @builtin(instance_inde
|
||||||
},
|
},
|
||||||
}};
|
}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -407,7 +407,7 @@ fn main(tint_symbol_1 : tint_symbol) -> @builtin(position) vec4<f32> {
|
||||||
},
|
},
|
||||||
}};
|
}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -485,7 +485,7 @@ struct Inputs {
|
||||||
},
|
},
|
||||||
}};
|
}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -560,7 +560,7 @@ fn main(indices : Indices) -> @builtin(position) vec4<f32> {
|
||||||
},
|
},
|
||||||
}};
|
}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -635,7 +635,7 @@ struct Indices {
|
||||||
},
|
},
|
||||||
}};
|
}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -676,7 +676,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
VertexStepMode::kVertex,
|
VertexStepMode::kVertex,
|
||||||
{{VertexFormat::kFloat32, 0, 0}, {VertexFormat::kFloat32x4, 0, 1}}}}};
|
{{VertexFormat::kFloat32, 0, 0}, {VertexFormat::kFloat32x4, 0, 1}}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -729,7 +729,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{16, VertexStepMode::kVertex, {{VertexFormat::kFloat32x4, 0, 2}}},
|
{16, VertexStepMode::kVertex, {{VertexFormat::kFloat32x4, 0, 2}}},
|
||||||
}};
|
}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -786,7 +786,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{16, VertexStepMode::kVertex, {{VertexFormat::kFloat16x4, 0, 2}}},
|
{16, VertexStepMode::kVertex, {{VertexFormat::kFloat16x4, 0, 2}}},
|
||||||
}};
|
}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -835,7 +835,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index_1 : u32) -> @builtin(po
|
||||||
VertexStepMode::kVertex,
|
VertexStepMode::kVertex,
|
||||||
{{VertexFormat::kFloat32, 0, 0}, {VertexFormat::kFloat32x4, 0, 1}}}}};
|
{{VertexFormat::kFloat32, 0, 0}, {VertexFormat::kFloat32x4, 0, 1}}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, std::move(data));
|
auto got = Run<VertexPulling>(src, std::move(data));
|
||||||
|
|
||||||
|
@ -905,7 +905,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kSint32x4, 64, 7},
|
{VertexFormat::kSint32x4, 64, 7},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -975,7 +975,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kUint32x4, 64, 7},
|
{VertexFormat::kUint32x4, 64, 7},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -1069,7 +1069,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kFloat32x4, 64, 13},
|
{VertexFormat::kFloat32x4, 64, 13},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -1167,7 +1167,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kFloat32x4, 64, 13},
|
{VertexFormat::kFloat32x4, 64, 13},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -1237,7 +1237,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kSint32x4, 63, 7},
|
{VertexFormat::kSint32x4, 63, 7},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -1307,7 +1307,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kUint32x4, 63, 7},
|
{VertexFormat::kUint32x4, 63, 7},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -1401,7 +1401,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kFloat32x4, 63, 13},
|
{VertexFormat::kFloat32x4, 63, 13},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -1499,7 +1499,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kFloat32x4, 63, 13},
|
{VertexFormat::kFloat32x4, 63, 13},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -1577,7 +1577,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kSint32x3, 64, 9},
|
{VertexFormat::kSint32x3, 64, 9},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -1655,7 +1655,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kUint32x3, 64, 9},
|
{VertexFormat::kUint32x3, 64, 9},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -1757,7 +1757,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kFloat32x3, 64, 15},
|
{VertexFormat::kFloat32x3, 64, 15},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -1863,7 +1863,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kFloat32x3, 64, 15},
|
{VertexFormat::kFloat32x3, 64, 15},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -1957,7 +1957,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kSint32x4, 64, 13},
|
{VertexFormat::kSint32x4, 64, 13},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -2051,7 +2051,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kUint32x4, 64, 13},
|
{VertexFormat::kUint32x4, 64, 13},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -2181,7 +2181,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kFloat32x4, 64, 24}, {VertexFormat::kFloat32x4, 64, 25},
|
{VertexFormat::kFloat32x4, 64, 24}, {VertexFormat::kFloat32x4, 64, 25},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
@ -2315,7 +2315,7 @@ fn main(@builtin(vertex_index) tint_pulling_vertex_index : u32) -> @builtin(posi
|
||||||
{VertexFormat::kFloat32x4, 64, 24}, {VertexFormat::kFloat32x4, 64, 25},
|
{VertexFormat::kFloat32x4, 64, 24}, {VertexFormat::kFloat32x4, 64, 25},
|
||||||
}}}};
|
}}}};
|
||||||
|
|
||||||
DataMap data;
|
Transform::DataMap data;
|
||||||
data.Add<VertexPulling::Config>(cfg);
|
data.Add<VertexPulling::Config>(cfg);
|
||||||
auto got = Run<VertexPulling>(src, data);
|
auto got = Run<VertexPulling>(src, data);
|
||||||
|
|
||||||
|
|
|
@ -947,32 +947,30 @@ int main(int argc, const char** argv) {
|
||||||
/// Returns true on success, false on error (program will immediately exit)
|
/// Returns true on success, false on error (program will immediately exit)
|
||||||
std::function<bool(tint::inspector::Inspector& inspector,
|
std::function<bool(tint::inspector::Inspector& inspector,
|
||||||
tint::transform::Manager& manager,
|
tint::transform::Manager& manager,
|
||||||
tint::ast::transform::DataMap& inputs)>
|
tint::transform::DataMap& inputs)>
|
||||||
make;
|
make;
|
||||||
};
|
};
|
||||||
std::vector<TransformFactory> transforms = {
|
std::vector<TransformFactory> transforms = {
|
||||||
{"first_index_offset",
|
{"first_index_offset",
|
||||||
[](tint::inspector::Inspector&, tint::transform::Manager& m,
|
[](tint::inspector::Inspector&, tint::transform::Manager& m, tint::transform::DataMap& i) {
|
||||||
tint::ast::transform::DataMap& i) {
|
|
||||||
i.Add<tint::ast::transform::FirstIndexOffset::BindingPoint>(0, 0);
|
i.Add<tint::ast::transform::FirstIndexOffset::BindingPoint>(0, 0);
|
||||||
m.Add<tint::ast::transform::FirstIndexOffset>();
|
m.Add<tint::ast::transform::FirstIndexOffset>();
|
||||||
return true;
|
return true;
|
||||||
}},
|
}},
|
||||||
{"renamer",
|
{"renamer",
|
||||||
[](tint::inspector::Inspector&, tint::transform::Manager& m,
|
[](tint::inspector::Inspector&, tint::transform::Manager& m, tint::transform::DataMap&) {
|
||||||
tint::ast::transform::DataMap&) {
|
|
||||||
m.Add<tint::ast::transform::Renamer>();
|
m.Add<tint::ast::transform::Renamer>();
|
||||||
return true;
|
return true;
|
||||||
}},
|
}},
|
||||||
{"robustness",
|
{"robustness",
|
||||||
[&](tint::inspector::Inspector&, tint::transform::Manager&,
|
[&](tint::inspector::Inspector&, tint::transform::Manager&,
|
||||||
tint::ast::transform::DataMap&) { // enabled via writer option
|
tint::transform::DataMap&) { // enabled via writer option
|
||||||
options.enable_robustness = true;
|
options.enable_robustness = true;
|
||||||
return true;
|
return true;
|
||||||
}},
|
}},
|
||||||
{"substitute_override",
|
{"substitute_override",
|
||||||
[&](tint::inspector::Inspector& inspector, tint::transform::Manager& m,
|
[&](tint::inspector::Inspector& inspector, tint::transform::Manager& m,
|
||||||
tint::ast::transform::DataMap& i) {
|
tint::transform::DataMap& i) {
|
||||||
tint::ast::transform::SubstituteOverride::Config cfg;
|
tint::ast::transform::SubstituteOverride::Config cfg;
|
||||||
|
|
||||||
std::unordered_map<tint::OverrideId, double> values;
|
std::unordered_map<tint::OverrideId, double> values;
|
||||||
|
@ -1098,7 +1096,7 @@ int main(int argc, const char** argv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
tint::transform::Manager transform_manager;
|
tint::transform::Manager transform_manager;
|
||||||
tint::ast::transform::DataMap transform_inputs;
|
tint::transform::DataMap transform_inputs;
|
||||||
|
|
||||||
// Renaming must always come first
|
// Renaming must always come first
|
||||||
switch (options.format) {
|
switch (options.format) {
|
||||||
|
@ -1173,14 +1171,15 @@ int main(int argc, const char** argv) {
|
||||||
transform_inputs.Add<tint::ast::transform::SingleEntryPoint::Config>(options.ep_name);
|
transform_inputs.Add<tint::ast::transform::SingleEntryPoint::Config>(options.ep_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto out = transform_manager.Run(program.get(), std::move(transform_inputs));
|
tint::transform::DataMap outputs;
|
||||||
if (!out.program.IsValid()) {
|
auto out = transform_manager.Run(program.get(), std::move(transform_inputs), outputs);
|
||||||
tint::cmd::PrintWGSL(std::cerr, out.program);
|
if (!out.IsValid()) {
|
||||||
diag_formatter.format(out.program.Diagnostics(), diag_printer.get());
|
tint::cmd::PrintWGSL(std::cerr, out);
|
||||||
|
diag_formatter.format(out.Diagnostics(), diag_printer.get());
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
*program = std::move(out.program);
|
*program = std::move(out);
|
||||||
|
|
||||||
bool success = false;
|
bool success = false;
|
||||||
switch (options.format) {
|
switch (options.format) {
|
||||||
|
|
|
@ -24,8 +24,8 @@ namespace tint::fuzzers {
|
||||||
ShuffleTransform::ShuffleTransform(size_t seed) : seed_(seed) {}
|
ShuffleTransform::ShuffleTransform(size_t seed) : seed_(seed) {}
|
||||||
|
|
||||||
ast::transform::Transform::ApplyResult ShuffleTransform::Apply(const Program* src,
|
ast::transform::Transform::ApplyResult ShuffleTransform::Apply(const Program* src,
|
||||||
const ast::transform::DataMap&,
|
const transform::DataMap&,
|
||||||
ast::transform::DataMap&) const {
|
transform::DataMap&) const {
|
||||||
ProgramBuilder b;
|
ProgramBuilder b;
|
||||||
CloneContext ctx{&b, src, /* auto_clone_symbols */ true};
|
CloneContext ctx{&b, src, /* auto_clone_symbols */ true};
|
||||||
|
|
||||||
|
|
|
@ -28,8 +28,8 @@ class ShuffleTransform : public ast::transform::Transform {
|
||||||
|
|
||||||
/// @copydoc ast::transform::Transform::Apply
|
/// @copydoc ast::transform::Transform::Apply
|
||||||
ApplyResult Apply(const Program* program,
|
ApplyResult Apply(const Program* program,
|
||||||
const ast::transform::DataMap& inputs,
|
const transform::DataMap& inputs,
|
||||||
ast::transform::DataMap& outputs) const override;
|
transform::DataMap& outputs) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
size_t seed_;
|
size_t seed_;
|
||||||
|
|
|
@ -205,10 +205,10 @@ int CommonFuzzer::Run(const uint8_t* data, size_t size) {
|
||||||
diagnostics_ = program.Diagnostics();
|
diagnostics_ = program.Diagnostics();
|
||||||
|
|
||||||
auto validate_program = [&](auto& out) {
|
auto validate_program = [&](auto& out) {
|
||||||
if (!out.program.IsValid()) {
|
if (!out.IsValid()) {
|
||||||
// Transforms can produce error messages for bad input.
|
// Transforms can produce error messages for bad input.
|
||||||
// Catch ICEs and errors from non transform systems.
|
// Catch ICEs and errors from non transform systems.
|
||||||
for (const auto& diag : out.program.Diagnostics()) {
|
for (const auto& diag : out.Diagnostics()) {
|
||||||
if (diag.severity > diag::Severity::Error ||
|
if (diag.severity > diag::Severity::Error ||
|
||||||
diag.system != diag::System::Transform) {
|
diag.system != diag::System::Transform) {
|
||||||
VALIDITY_ERROR(program.Diagnostics(),
|
VALIDITY_ERROR(program.Diagnostics(),
|
||||||
|
@ -219,13 +219,14 @@ int CommonFuzzer::Run(const uint8_t* data, size_t size) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
program = std::move(out.program);
|
program = std::move(out);
|
||||||
RunInspector(&program);
|
RunInspector(&program);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (transform_manager_) {
|
if (transform_manager_) {
|
||||||
auto out = transform_manager_->Run(&program, *transform_inputs_);
|
transform::DataMap outputs;
|
||||||
|
auto out = transform_manager_->Run(&program, *transform_inputs_, outputs);
|
||||||
if (!validate_program(out)) {
|
if (!validate_program(out)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -248,13 +249,14 @@ int CommonFuzzer::Run(const uint8_t* data, size_t size) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cfg.map.empty()) {
|
if (!cfg.map.empty()) {
|
||||||
ast::transform::DataMap override_data;
|
transform::DataMap override_data;
|
||||||
override_data.Add<ast::transform::SubstituteOverride::Config>(cfg);
|
override_data.Add<ast::transform::SubstituteOverride::Config>(cfg);
|
||||||
|
|
||||||
transform::Manager mgr;
|
transform::Manager mgr;
|
||||||
mgr.append(std::make_unique<ast::transform::SubstituteOverride>());
|
mgr.append(std::make_unique<ast::transform::SubstituteOverride>());
|
||||||
|
|
||||||
auto out = mgr.Run(&program, override_data);
|
transform::DataMap outputs;
|
||||||
|
auto out = mgr.Run(&program, override_data, outputs);
|
||||||
if (!validate_program(out)) {
|
if (!validate_program(out)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ class CommonFuzzer {
|
||||||
|
|
||||||
/// @param tm manager for transforms to run
|
/// @param tm manager for transforms to run
|
||||||
/// @param inputs data for transforms to run
|
/// @param inputs data for transforms to run
|
||||||
void SetTransformManager(transform::Manager* tm, ast::transform::DataMap* inputs) {
|
void SetTransformManager(transform::Manager* tm, transform::DataMap* inputs) {
|
||||||
assert((!tm || inputs) && "DataMap must be !nullptr if Manager !nullptr");
|
assert((!tm || inputs) && "DataMap must be !nullptr if Manager !nullptr");
|
||||||
transform_manager_ = tm;
|
transform_manager_ = tm;
|
||||||
transform_inputs_ = inputs;
|
transform_inputs_ = inputs;
|
||||||
|
@ -121,7 +121,7 @@ class CommonFuzzer {
|
||||||
InputFormat input_;
|
InputFormat input_;
|
||||||
OutputFormat output_;
|
OutputFormat output_;
|
||||||
transform::Manager* transform_manager_ = nullptr;
|
transform::Manager* transform_manager_ = nullptr;
|
||||||
ast::transform::DataMap* transform_inputs_ = nullptr;
|
transform::DataMap* transform_inputs_ = nullptr;
|
||||||
bool dump_input_ = false;
|
bool dump_input_ = false;
|
||||||
tint::diag::List diagnostics_;
|
tint::diag::List diagnostics_;
|
||||||
bool enforce_validity = false;
|
bool enforce_validity = false;
|
||||||
|
|
|
@ -38,7 +38,7 @@ class ReaderWriterFuzzer : public CommonFuzzer {
|
||||||
/// invoked.
|
/// invoked.
|
||||||
/// @param tm manager for transforms to run
|
/// @param tm manager for transforms to run
|
||||||
/// @param inputs data for transforms to run
|
/// @param inputs data for transforms to run
|
||||||
void SetTransformManager(transform::Manager* tm, ast::transform::DataMap* inputs) {
|
void SetTransformManager(transform::Manager* tm, transform::DataMap* inputs) {
|
||||||
tm_set_ = true;
|
tm_set_ = true;
|
||||||
CommonFuzzer::SetTransformManager(tm, inputs);
|
CommonFuzzer::SetTransformManager(tm, inputs);
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ class TransformBuilder {
|
||||||
transform::Manager* manager() { return &manager_; }
|
transform::Manager* manager() { return &manager_; }
|
||||||
|
|
||||||
/// @returns data for transforms
|
/// @returns data for transforms
|
||||||
ast::transform::DataMap* data_map() { return &data_map_; }
|
transform::DataMap* data_map() { return &data_map_; }
|
||||||
|
|
||||||
/// Adds a transform and needed data to |manager_| and |data_map_|.
|
/// Adds a transform and needed data to |manager_| and |data_map_|.
|
||||||
/// @tparam T - A class that inherits from ast::transform::Transform and has an
|
/// @tparam T - A class that inherits from ast::transform::Transform and has an
|
||||||
|
@ -73,7 +73,7 @@ class TransformBuilder {
|
||||||
private:
|
private:
|
||||||
DataBuilder builder_;
|
DataBuilder builder_;
|
||||||
transform::Manager manager_;
|
transform::Manager manager_;
|
||||||
ast::transform::DataMap data_map_;
|
transform::DataMap data_map_;
|
||||||
|
|
||||||
DataBuilder* builder() { return &builder_; }
|
DataBuilder* builder() { return &builder_; }
|
||||||
|
|
||||||
|
|
|
@ -57,13 +57,14 @@ Program Parse(const std::vector<uint32_t>& input, const Options& options) {
|
||||||
}
|
}
|
||||||
|
|
||||||
transform::Manager manager;
|
transform::Manager manager;
|
||||||
|
transform::DataMap outputs;
|
||||||
manager.Add<ast::transform::Unshadow>();
|
manager.Add<ast::transform::Unshadow>();
|
||||||
manager.Add<ast::transform::SimplifyPointers>();
|
manager.Add<ast::transform::SimplifyPointers>();
|
||||||
manager.Add<ast::transform::DecomposeStridedMatrix>();
|
manager.Add<ast::transform::DecomposeStridedMatrix>();
|
||||||
manager.Add<ast::transform::DecomposeStridedArray>();
|
manager.Add<ast::transform::DecomposeStridedArray>();
|
||||||
manager.Add<ast::transform::RemoveUnreachableStatements>();
|
manager.Add<ast::transform::RemoveUnreachableStatements>();
|
||||||
manager.Add<ast::transform::SpirvAtomic>();
|
manager.Add<ast::transform::SpirvAtomic>();
|
||||||
return manager.Run(&program).program;
|
return manager.Run(&program, {}, outputs);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace tint::reader::spirv
|
} // namespace tint::reader::spirv
|
||||||
|
|
|
@ -14,6 +14,9 @@
|
||||||
|
|
||||||
#include "src/tint/transform/manager.h"
|
#include "src/tint/transform/manager.h"
|
||||||
|
|
||||||
|
#include "src/tint/ast/transform/transform.h"
|
||||||
|
#include "src/tint/program_builder.h"
|
||||||
|
|
||||||
/// If set to 1 then the transform::Manager will dump the WGSL of the program
|
/// If set to 1 then the transform::Manager will dump the WGSL of the program
|
||||||
/// before and after each transform. Helpful for debugging bad output.
|
/// before and after each transform. Helpful for debugging bad output.
|
||||||
#define TINT_PRINT_PROGRAM_FOR_EACH_TRANSFORM 0
|
#define TINT_PRINT_PROGRAM_FOR_EACH_TRANSFORM 0
|
||||||
|
@ -25,16 +28,14 @@
|
||||||
#define TINT_IF_PRINT_PROGRAM(x)
|
#define TINT_IF_PRINT_PROGRAM(x)
|
||||||
#endif // TINT_PRINT_PROGRAM_FOR_EACH_TRANSFORM
|
#endif // TINT_PRINT_PROGRAM_FOR_EACH_TRANSFORM
|
||||||
|
|
||||||
TINT_INSTANTIATE_TYPEINFO(tint::transform::Manager);
|
|
||||||
|
|
||||||
namespace tint::transform {
|
namespace tint::transform {
|
||||||
|
|
||||||
Manager::Manager() = default;
|
Manager::Manager() = default;
|
||||||
Manager::~Manager() = default;
|
Manager::~Manager() = default;
|
||||||
|
|
||||||
ast::transform::Transform::ApplyResult Manager::Apply(const Program* program,
|
Program Manager::Run(const Program* program,
|
||||||
const ast::transform::DataMap& inputs,
|
const transform::DataMap& inputs,
|
||||||
ast::transform::DataMap& outputs) const {
|
transform::DataMap& outputs) const {
|
||||||
#if TINT_PRINT_PROGRAM_FOR_EACH_TRANSFORM
|
#if TINT_PRINT_PROGRAM_FOR_EACH_TRANSFORM
|
||||||
auto print_program = [&](const char* msg, const Transform* transform) {
|
auto print_program = [&](const char* msg, const Transform* transform) {
|
||||||
auto wgsl = Program::printer(program);
|
auto wgsl = Program::printer(program);
|
||||||
|
@ -56,25 +57,38 @@ ast::transform::Transform::ApplyResult Manager::Apply(const Program* program,
|
||||||
TINT_IF_PRINT_PROGRAM(print_program("Input of", this));
|
TINT_IF_PRINT_PROGRAM(print_program("Input of", this));
|
||||||
|
|
||||||
for (const auto& transform : transforms_) {
|
for (const auto& transform : transforms_) {
|
||||||
if (auto result = transform->Apply(program, inputs, outputs)) {
|
if (auto* ast_transform = transform->As<ast::transform::Transform>()) {
|
||||||
output.emplace(std::move(result.value()));
|
if (auto result = ast_transform->Apply(program, inputs, outputs)) {
|
||||||
program = &output.value();
|
output.emplace(std::move(result.value()));
|
||||||
|
program = &output.value();
|
||||||
|
|
||||||
if (!program->IsValid()) {
|
if (!program->IsValid()) {
|
||||||
TINT_IF_PRINT_PROGRAM(print_program("Invalid output of", transform.get()));
|
TINT_IF_PRINT_PROGRAM(print_program("Invalid output of", transform.get()));
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
TINT_IF_PRINT_PROGRAM(print_program("Output of", transform.get()));
|
||||||
|
} else {
|
||||||
|
TINT_IF_PRINT_PROGRAM(std::cout << "Skipped " << transform->TypeInfo().name
|
||||||
|
<< std::endl);
|
||||||
}
|
}
|
||||||
|
|
||||||
TINT_IF_PRINT_PROGRAM(print_program("Output of", transform.get()));
|
|
||||||
} else {
|
} else {
|
||||||
TINT_IF_PRINT_PROGRAM(std::cout << "Skipped " << transform->TypeInfo().name
|
ProgramBuilder b;
|
||||||
<< std::endl);
|
TINT_ICE(Transform, b.Diagnostics()) << "unhandled transform type";
|
||||||
|
return Program(std::move(b));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TINT_IF_PRINT_PROGRAM(print_program("Final output of", this));
|
TINT_IF_PRINT_PROGRAM(print_program("Final output of", this));
|
||||||
|
|
||||||
return output;
|
if (!output) {
|
||||||
|
ProgramBuilder b;
|
||||||
|
CloneContext ctx{&b, program, /* auto_clone_symbols */ true};
|
||||||
|
ctx.Clone();
|
||||||
|
output = Program(std::move(b));
|
||||||
|
}
|
||||||
|
|
||||||
|
return std::move(output.value());
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace tint::transform
|
} // namespace tint::transform
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "src/tint/ast/transform/transform.h"
|
#include "src/tint/transform/transform.h"
|
||||||
|
|
||||||
namespace tint::transform {
|
namespace tint::transform {
|
||||||
|
|
||||||
|
@ -27,11 +27,11 @@ namespace tint::transform {
|
||||||
/// The inner transforms will execute in the appended order.
|
/// The inner transforms will execute in the appended order.
|
||||||
/// If any inner transform fails the manager will return immediately and
|
/// If any inner transform fails the manager will return immediately and
|
||||||
/// the error can be retrieved with the Output's diagnostics.
|
/// the error can be retrieved with the Output's diagnostics.
|
||||||
class Manager final : public tint::utils::Castable<Manager, ast::transform::Transform> {
|
class Manager {
|
||||||
public:
|
public:
|
||||||
/// Constructor
|
/// Constructor
|
||||||
Manager();
|
Manager();
|
||||||
~Manager() override;
|
~Manager();
|
||||||
|
|
||||||
/// Add pass to the manager
|
/// Add pass to the manager
|
||||||
/// @param transform the transform to append
|
/// @param transform the transform to append
|
||||||
|
@ -47,10 +47,12 @@ class Manager final : public tint::utils::Castable<Manager, ast::transform::Tran
|
||||||
transforms_.emplace_back(std::make_unique<T>(std::forward<ARGS>(args)...));
|
transforms_.emplace_back(std::make_unique<T>(std::forward<ARGS>(args)...));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @copydoc ast::transform::Transform::Apply
|
/// Runs the transforms on @p program, returning the transformed clone of @p program.
|
||||||
ApplyResult Apply(const Program* program,
|
/// @param program the source program to transform
|
||||||
const ast::transform::DataMap& inputs,
|
/// @param inputs optional extra transform-specific input data
|
||||||
ast::transform::DataMap& outputs) const override;
|
/// @param outputs optional extra transform-specific output data
|
||||||
|
/// @returns the transformed program
|
||||||
|
Program Run(const Program* program, const DataMap& inputs, DataMap& outputs) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<std::unique_ptr<Transform>> transforms_;
|
std::vector<std::unique_ptr<Transform>> transforms_;
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
// Copyright 2023 The Tint Authors.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
#include "src/tint/transform/transform.h"
|
||||||
|
|
||||||
|
#include "src/tint/program_builder.h"
|
||||||
|
|
||||||
|
TINT_INSTANTIATE_TYPEINFO(tint::transform::Transform);
|
||||||
|
TINT_INSTANTIATE_TYPEINFO(tint::transform::Data);
|
||||||
|
|
||||||
|
namespace tint::transform {
|
||||||
|
|
||||||
|
Data::Data() = default;
|
||||||
|
Data::Data(const Data&) = default;
|
||||||
|
Data::~Data() = default;
|
||||||
|
Data& Data::operator=(const Data&) = default;
|
||||||
|
|
||||||
|
DataMap::DataMap() = default;
|
||||||
|
DataMap::DataMap(DataMap&&) = default;
|
||||||
|
DataMap::~DataMap() = default;
|
||||||
|
DataMap& DataMap::operator=(DataMap&&) = default;
|
||||||
|
|
||||||
|
Transform::Transform() = default;
|
||||||
|
Transform::~Transform() = default;
|
||||||
|
|
||||||
|
} // namespace tint::transform
|
|
@ -0,0 +1,141 @@
|
||||||
|
// Copyright 2023 The Tint Authors.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
#ifndef SRC_TINT_TRANSFORM_TRANSFORM_H_
|
||||||
|
#define SRC_TINT_TRANSFORM_TRANSFORM_H_
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
|
#include "src/tint/program.h"
|
||||||
|
#include "src/tint/utils/castable.h"
|
||||||
|
|
||||||
|
namespace tint::transform {
|
||||||
|
|
||||||
|
/// Data is the base class for transforms that accept extra input or emit extra output information.
|
||||||
|
class Data : public utils::Castable<Data> {
|
||||||
|
public:
|
||||||
|
/// Constructor
|
||||||
|
Data();
|
||||||
|
|
||||||
|
/// Copy constructor
|
||||||
|
Data(const Data&);
|
||||||
|
|
||||||
|
/// Destructor
|
||||||
|
~Data() override;
|
||||||
|
|
||||||
|
/// Assignment operator
|
||||||
|
/// @returns this Data
|
||||||
|
Data& operator=(const Data&);
|
||||||
|
};
|
||||||
|
|
||||||
|
/// DataMap is a map of Data unique pointers keyed by the Data's ClassID.
|
||||||
|
class DataMap {
|
||||||
|
public:
|
||||||
|
/// Constructor
|
||||||
|
DataMap();
|
||||||
|
|
||||||
|
/// Move constructor
|
||||||
|
DataMap(DataMap&&);
|
||||||
|
|
||||||
|
/// Constructor
|
||||||
|
/// @param data_unique_ptrs a variadic list of additional data unique_ptrs produced by the
|
||||||
|
/// transform
|
||||||
|
template <typename... DATA>
|
||||||
|
explicit DataMap(DATA... data_unique_ptrs) {
|
||||||
|
PutAll(std::forward<DATA>(data_unique_ptrs)...);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Destructor
|
||||||
|
~DataMap();
|
||||||
|
|
||||||
|
/// Move assignment operator
|
||||||
|
/// @param rhs the DataMap to move into this DataMap
|
||||||
|
/// @return this DataMap
|
||||||
|
DataMap& operator=(DataMap&& rhs);
|
||||||
|
|
||||||
|
/// Adds the data into DataMap keyed by the ClassID of type T.
|
||||||
|
/// @param data the data to add to the DataMap
|
||||||
|
template <typename T>
|
||||||
|
void Put(std::unique_ptr<T>&& data) {
|
||||||
|
static_assert(std::is_base_of<Data, T>::value, "T does not derive from Data");
|
||||||
|
map_[&utils::TypeInfo::Of<T>()] = std::move(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Creates the data of type `T` with the provided arguments and adds it into DataMap keyed by
|
||||||
|
/// the ClassID of type T.
|
||||||
|
/// @param args the arguments forwarded to the initializer for type T
|
||||||
|
template <typename T, typename... ARGS>
|
||||||
|
void Add(ARGS&&... args) {
|
||||||
|
Put(std::make_unique<T>(std::forward<ARGS>(args)...));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @returns a pointer to the Data placed into the DataMap with a call to Put()
|
||||||
|
template <typename T>
|
||||||
|
T const* Get() const {
|
||||||
|
return const_cast<DataMap*>(this)->Get<T>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @returns a pointer to the Data placed into the DataMap with a call to Put()
|
||||||
|
template <typename T>
|
||||||
|
T* Get() {
|
||||||
|
auto it = map_.find(&utils::TypeInfo::Of<T>());
|
||||||
|
if (it == map_.end()) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
return static_cast<T*>(it->second.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Add moves all the data from other into this DataMap
|
||||||
|
/// @param other the DataMap to move into this DataMap
|
||||||
|
void Add(DataMap&& other) {
|
||||||
|
for (auto& it : other.map_) {
|
||||||
|
map_.emplace(it.first, std::move(it.second));
|
||||||
|
}
|
||||||
|
other.map_.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
template <typename T0>
|
||||||
|
void PutAll(T0&& first) {
|
||||||
|
Put(std::forward<T0>(first));
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T0, typename... Tn>
|
||||||
|
void PutAll(T0&& first, Tn&&... remainder) {
|
||||||
|
Put(std::forward<T0>(first));
|
||||||
|
PutAll(std::forward<Tn>(remainder)...);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::unordered_map<const utils::TypeInfo*, std::unique_ptr<Data>> map_;
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Interface for transforms.
|
||||||
|
class Transform : public utils::Castable<Transform> {
|
||||||
|
public:
|
||||||
|
/// @copydoc tint::transform::Data
|
||||||
|
using Data = tint::transform::Data;
|
||||||
|
/// @copydoc tint::transform::DataMap
|
||||||
|
using DataMap = tint::transform::DataMap;
|
||||||
|
|
||||||
|
/// Constructor
|
||||||
|
Transform();
|
||||||
|
/// Destructor
|
||||||
|
~Transform() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace tint::transform
|
||||||
|
|
||||||
|
#endif // SRC_TINT_TRANSFORM_TRANSFORM_H_
|
|
@ -63,16 +63,15 @@ std::optional<Program> FlattenBindings(const Program* program) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run the binding remapper transform.
|
// Run the binding remapper transform.
|
||||||
tint::ast::transform::Output transform_output;
|
|
||||||
if (!binding_points.empty()) {
|
if (!binding_points.empty()) {
|
||||||
tint::transform::Manager manager;
|
tint::transform::Manager manager;
|
||||||
tint::ast::transform::DataMap inputs;
|
tint::transform::DataMap inputs;
|
||||||
|
tint::transform::DataMap outputs;
|
||||||
inputs.Add<tint::ast::transform::BindingRemapper::Remappings>(
|
inputs.Add<tint::ast::transform::BindingRemapper::Remappings>(
|
||||||
std::move(binding_points), tint::ast::transform::BindingRemapper::AccessControls{},
|
std::move(binding_points), tint::ast::transform::BindingRemapper::AccessControls{},
|
||||||
/* mayCollide */ true);
|
/* mayCollide */ true);
|
||||||
manager.Add<tint::ast::transform::BindingRemapper>();
|
manager.Add<tint::ast::transform::BindingRemapper>();
|
||||||
transform_output = manager.Run(program, inputs);
|
return manager.Run(program, inputs, outputs);
|
||||||
return std::move(transform_output.program);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
|
|
|
@ -152,7 +152,7 @@ SanitizedResult Sanitize(const Program* in,
|
||||||
const Options& options,
|
const Options& options,
|
||||||
const std::string& entry_point) {
|
const std::string& entry_point) {
|
||||||
transform::Manager manager;
|
transform::Manager manager;
|
||||||
ast::transform::DataMap data;
|
transform::DataMap data;
|
||||||
|
|
||||||
manager.Add<ast::transform::DisableUniformityAnalysis>();
|
manager.Add<ast::transform::DisableUniformityAnalysis>();
|
||||||
|
|
||||||
|
@ -246,10 +246,9 @@ SanitizedResult Sanitize(const Program* in,
|
||||||
data.Add<ast::transform::CanonicalizeEntryPointIO::Config>(
|
data.Add<ast::transform::CanonicalizeEntryPointIO::Config>(
|
||||||
ast::transform::CanonicalizeEntryPointIO::ShaderStyle::kGlsl);
|
ast::transform::CanonicalizeEntryPointIO::ShaderStyle::kGlsl);
|
||||||
|
|
||||||
auto out = manager.Run(in, data);
|
|
||||||
|
|
||||||
SanitizedResult result;
|
SanitizedResult result;
|
||||||
result.program = std::move(out.program);
|
transform::DataMap outputs;
|
||||||
|
result.program = manager.Run(in, data, outputs);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -167,7 +167,7 @@ SanitizedResult::SanitizedResult(SanitizedResult&&) = default;
|
||||||
|
|
||||||
SanitizedResult Sanitize(const Program* in, const Options& options) {
|
SanitizedResult Sanitize(const Program* in, const Options& options) {
|
||||||
transform::Manager manager;
|
transform::Manager manager;
|
||||||
ast::transform::DataMap data;
|
transform::DataMap data;
|
||||||
|
|
||||||
manager.Add<ast::transform::DisableUniformityAnalysis>();
|
manager.Add<ast::transform::DisableUniformityAnalysis>();
|
||||||
|
|
||||||
|
@ -305,11 +305,10 @@ SanitizedResult Sanitize(const Program* in, const Options& options) {
|
||||||
ast::transform::CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
ast::transform::CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
|
||||||
data.Add<ast::transform::NumWorkgroupsFromUniform::Config>(options.root_constant_binding_point);
|
data.Add<ast::transform::NumWorkgroupsFromUniform::Config>(options.root_constant_binding_point);
|
||||||
|
|
||||||
auto out = manager.Run(in, data);
|
|
||||||
|
|
||||||
SanitizedResult result;
|
SanitizedResult result;
|
||||||
result.program = std::move(out.program);
|
transform::DataMap outputs;
|
||||||
if (auto* res = out.data.Get<ast::transform::ArrayLengthFromUniform::Result>()) {
|
result.program = manager.Run(in, data, outputs);
|
||||||
|
if (auto* res = outputs.Get<ast::transform::ArrayLengthFromUniform::Result>()) {
|
||||||
result.used_array_length_from_uniform_indices = std::move(res->used_size_indices);
|
result.used_array_length_from_uniform_indices = std::move(res->used_size_indices);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -87,16 +87,15 @@ class TestHelperBase : public BODY, public ProgramBuilder {
|
||||||
}();
|
}();
|
||||||
|
|
||||||
transform::Manager transform_manager;
|
transform::Manager transform_manager;
|
||||||
ast::transform::DataMap transform_data;
|
transform::DataMap transform_data;
|
||||||
|
transform::DataMap outputs;
|
||||||
transform_data.Add<ast::transform::Renamer::Config>(
|
transform_data.Add<ast::transform::Renamer::Config>(
|
||||||
ast::transform::Renamer::Target::kHlslKeywords,
|
ast::transform::Renamer::Target::kHlslKeywords,
|
||||||
/* preserve_unicode */ true);
|
/* preserve_unicode */ true);
|
||||||
transform_manager.Add<tint::ast::transform::Renamer>();
|
transform_manager.Add<tint::ast::transform::Renamer>();
|
||||||
auto result = transform_manager.Run(&sanitized_result.program, transform_data);
|
auto result = transform_manager.Run(&sanitized_result.program, transform_data, outputs);
|
||||||
[&]() {
|
[&]() { ASSERT_TRUE(result.IsValid()) << formatter.format(result.Diagnostics()); }();
|
||||||
ASSERT_TRUE(result.program.IsValid()) << formatter.format(result.program.Diagnostics());
|
*program = std::move(result);
|
||||||
}();
|
|
||||||
*program = std::move(result.program);
|
|
||||||
gen_ = std::make_unique<GeneratorImpl>(program.get());
|
gen_ = std::make_unique<GeneratorImpl>(program.get());
|
||||||
return *gen_;
|
return *gen_;
|
||||||
}
|
}
|
||||||
|
|
|
@ -167,7 +167,7 @@ SanitizedResult::SanitizedResult(SanitizedResult&&) = default;
|
||||||
|
|
||||||
SanitizedResult Sanitize(const Program* in, const Options& options) {
|
SanitizedResult Sanitize(const Program* in, const Options& options) {
|
||||||
transform::Manager manager;
|
transform::Manager manager;
|
||||||
ast::transform::DataMap data;
|
transform::DataMap data;
|
||||||
|
|
||||||
manager.Add<ast::transform::DisableUniformityAnalysis>();
|
manager.Add<ast::transform::DisableUniformityAnalysis>();
|
||||||
|
|
||||||
|
@ -257,14 +257,13 @@ SanitizedResult Sanitize(const Program* in, const Options& options) {
|
||||||
manager.Add<ast::transform::PackedVec3>();
|
manager.Add<ast::transform::PackedVec3>();
|
||||||
manager.Add<ast::transform::ModuleScopeVarToEntryPointParam>();
|
manager.Add<ast::transform::ModuleScopeVarToEntryPointParam>();
|
||||||
|
|
||||||
auto out = manager.Run(in, data);
|
|
||||||
|
|
||||||
SanitizedResult result;
|
SanitizedResult result;
|
||||||
result.program = std::move(out.program);
|
transform::DataMap outputs;
|
||||||
|
result.program = manager.Run(in, data, outputs);
|
||||||
if (!result.program.IsValid()) {
|
if (!result.program.IsValid()) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
if (auto* res = out.data.Get<ast::transform::ArrayLengthFromUniform::Result>()) {
|
if (auto* res = outputs.Get<ast::transform::ArrayLengthFromUniform::Result>()) {
|
||||||
result.used_array_length_from_uniform_indices = std::move(res->used_size_indices);
|
result.used_array_length_from_uniform_indices = std::move(res->used_size_indices);
|
||||||
}
|
}
|
||||||
result.needs_storage_buffer_sizes = !result.used_array_length_from_uniform_indices.empty();
|
result.needs_storage_buffer_sizes = !result.used_array_length_from_uniform_indices.empty();
|
||||||
|
|
|
@ -49,7 +49,7 @@ namespace tint::writer::spirv {
|
||||||
|
|
||||||
SanitizedResult Sanitize(const Program* in, const Options& options) {
|
SanitizedResult Sanitize(const Program* in, const Options& options) {
|
||||||
transform::Manager manager;
|
transform::Manager manager;
|
||||||
ast::transform::DataMap data;
|
transform::DataMap data;
|
||||||
|
|
||||||
if (options.clamp_frag_depth) {
|
if (options.clamp_frag_depth) {
|
||||||
manager.Add<tint::ast::transform::ClampFragDepth>();
|
manager.Add<tint::ast::transform::ClampFragDepth>();
|
||||||
|
@ -166,7 +166,8 @@ SanitizedResult Sanitize(const Program* in, const Options& options) {
|
||||||
options.emit_vertex_point_size));
|
options.emit_vertex_point_size));
|
||||||
|
|
||||||
SanitizedResult result;
|
SanitizedResult result;
|
||||||
result.program = std::move(manager.Run(in, data).program);
|
transform::DataMap outputs;
|
||||||
|
result.program = manager.Run(in, data, outputs);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue