Remove legacy EmitVertexPointSize transform
This has been moved into the Spirv sanitizer, and Dawn is now using
this path.
Change-Id: Iffcbbc1c84e6bad0ebc51ded82d998bb307e2d6d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/50564
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/include/tint/tint.h b/include/tint/tint.h
index 4f61086..ff1991e 100644
--- a/include/tint/tint.h
+++ b/include/tint/tint.h
@@ -26,7 +26,6 @@
#include "src/sem/type_manager.h"
#include "src/transform/binding_remapper.h"
#include "src/transform/bound_array_accessors.h"
-#include "src/transform/emit_vertex_point_size.h"
#include "src/transform/first_index_offset.h"
#include "src/transform/manager.h"
#include "src/transform/renamer.h"
diff --git a/samples/main.cc b/samples/main.cc
index 5346d72..98797bd 100644
--- a/samples/main.cc
+++ b/samples/main.cc
@@ -82,7 +82,6 @@
--transform <name list> -- Runs transforms, name list is comma separated
Available transforms:
bound_array_accessors
- emit_vertex_point_size
first_index_offset
renamer
--parse-only -- Stop after parsing the input
@@ -663,8 +662,6 @@
if (name == "bound_array_accessors") {
transform_manager.Add<tint::transform::BoundArrayAccessors>();
- } else if (name == "emit_vertex_point_size") {
- transform_manager.Add<tint::transform::EmitVertexPointSize>();
} else if (name == "first_index_offset") {
transform_inputs.Add<tint::transform::FirstIndexOffset::BindingPoint>(0,
0);
@@ -689,6 +686,7 @@
case Format::kSpirv:
case Format::kSpvAsm:
transform_manager.Add<tint::transform::Spirv>();
+ transform_inputs.Add<tint::transform::Spirv::Config>(true);
break;
#endif // TINT_BUILD_SPV_WRITER
#if TINT_BUILD_MSL_WRITER
diff --git a/src/BUILD.gn b/src/BUILD.gn
index fc6835f..1c69ee8 100644
--- a/src/BUILD.gn
+++ b/src/BUILD.gn
@@ -509,8 +509,6 @@
"transform/canonicalize_entry_point_io.h",
"transform/decompose_storage_access.cc",
"transform/decompose_storage_access.h",
- "transform/emit_vertex_point_size.cc",
- "transform/emit_vertex_point_size.h",
"transform/external_texture_transform.cc",
"transform/external_texture_transform.h",
"transform/first_index_offset.cc",
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 70b691d..7024c32 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -269,8 +269,6 @@
transform/canonicalize_entry_point_io.h
transform/decompose_storage_access.cc
transform/decompose_storage_access.h
- transform/emit_vertex_point_size.cc
- transform/emit_vertex_point_size.h
transform/external_texture_transform.cc
transform/external_texture_transform.h
transform/first_index_offset.cc
@@ -796,7 +794,6 @@
transform/calculate_array_length_test.cc
transform/canonicalize_entry_point_io_test.cc
transform/decompose_storage_access_test.cc
- transform/emit_vertex_point_size_test.cc
transform/external_texture_transform_test.cc
transform/first_index_offset_test.cc
transform/renamer_test.cc
diff --git a/src/transform/emit_vertex_point_size.cc b/src/transform/emit_vertex_point_size.cc
deleted file mode 100644
index 9854149..0000000
--- a/src/transform/emit_vertex_point_size.cc
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2020 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/transform/emit_vertex_point_size.h"
-
-#include <utility>
-
-#include "src/ast/assignment_statement.h"
-#include "src/program_builder.h"
-
-namespace tint {
-namespace transform {
-
-EmitVertexPointSize::EmitVertexPointSize() = default;
-EmitVertexPointSize::~EmitVertexPointSize() = default;
-
-Output EmitVertexPointSize::Run(const Program* in, const DataMap&) {
- if (!in->AST().Functions().HasStage(ast::PipelineStage::kVertex)) {
- // If the module doesn't have any vertex stages, then there's nothing to do.
- return Output(Program(in->Clone()));
- }
-
- ProgramBuilder out;
-
- CloneContext ctx(&out, in);
-
- Symbol pointsize = out.Symbols().New("tint_pointsize");
-
- // Declare the pointsize builtin output variable.
- out.Global(pointsize, out.ty.f32(), ast::StorageClass::kOutput, nullptr,
- ast::DecorationList{
- out.Builtin(ast::Builtin::kPointSize),
- });
-
- // Add the pointsize assignment statement to the front of all vertex stages.
- ctx.ReplaceAll([&](ast::Function* func) -> ast::Function* {
- if (func->pipeline_stage() != ast::PipelineStage::kVertex) {
- return nullptr; // Just clone func
- }
-
- return CloneWithStatementsAtStart(&ctx, func,
- {
- out.Assign(pointsize, 1.0f),
- });
- });
- ctx.Clone();
-
- return Output(Program(std::move(out)));
-}
-
-} // namespace transform
-} // namespace tint
diff --git a/src/transform/emit_vertex_point_size.h b/src/transform/emit_vertex_point_size.h
deleted file mode 100644
index 40bcc19..0000000
--- a/src/transform/emit_vertex_point_size.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2020 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_TRANSFORM_EMIT_VERTEX_POINT_SIZE_H_
-#define SRC_TRANSFORM_EMIT_VERTEX_POINT_SIZE_H_
-
-#include "src/transform/transform.h"
-
-namespace tint {
-namespace transform {
-
-/// DEPRECATED: This should now be performed using the SPIR-V sanitizer.
-/// EmitVertexPointSize is a Transform that adds a PointSize builtin global
-/// output variable to the program which is assigned 1.0 as the new first
-/// statement for all vertex stage entry points.
-/// If the program does not contain a vertex pipeline stage entry point then
-/// then this transform is a no-op.
-class EmitVertexPointSize : public Transform {
- public:
- /// Constructor
- EmitVertexPointSize();
- /// Destructor
- ~EmitVertexPointSize() override;
-
- /// Runs the transform on `program`, returning the transformation result.
- /// @param program the source program to transform
- /// @param data optional extra transform-specific input data
- /// @returns the transformation result
- Output Run(const Program* program, const DataMap& data = {}) override;
-};
-
-} // namespace transform
-} // namespace tint
-
-#endif // SRC_TRANSFORM_EMIT_VERTEX_POINT_SIZE_H_
diff --git a/src/transform/emit_vertex_point_size_test.cc b/src/transform/emit_vertex_point_size_test.cc
deleted file mode 100644
index f420115..0000000
--- a/src/transform/emit_vertex_point_size_test.cc
+++ /dev/null
@@ -1,115 +0,0 @@
-// Copyright 2020 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/transform/emit_vertex_point_size.h"
-
-#include "src/transform/test_helper.h"
-
-namespace tint {
-namespace transform {
-namespace {
-
-using EmitVertexPointSizeTest = TransformTest;
-
-TEST_F(EmitVertexPointSizeTest, VertexStageBasic) {
- auto* src = R"(
-fn non_entry_a() {
-}
-
-[[stage(vertex)]]
-fn entry() -> [[builtin(position)]] vec4<f32> {
- var builtin_assignments_should_happen_before_this : f32;
- return vec4<f32>();
-}
-
-fn non_entry_b() {
-}
-)";
-
- auto* expect = R"(
-[[builtin(pointsize)]] var<out> tint_pointsize : f32;
-
-fn non_entry_a() {
-}
-
-[[stage(vertex)]]
-fn entry() -> [[builtin(position)]] vec4<f32> {
- tint_pointsize = 1.0;
- var builtin_assignments_should_happen_before_this : f32;
- return vec4<f32>();
-}
-
-fn non_entry_b() {
-}
-)";
-
- auto got = Run<EmitVertexPointSize>(src);
-
- EXPECT_EQ(expect, str(got));
-}
-
-TEST_F(EmitVertexPointSizeTest, NonVertexStage) {
- auto* src = R"(
-[[stage(fragment)]]
-fn fragment_entry() {
-}
-
-[[stage(compute)]]
-fn compute_entry() {
-}
-)";
-
- auto* expect = R"(
-[[stage(fragment)]]
-fn fragment_entry() {
-}
-
-[[stage(compute)]]
-fn compute_entry() {
-}
-)";
-
- auto got = Run<EmitVertexPointSize>(src);
-
- EXPECT_EQ(expect, str(got));
-}
-
-TEST_F(EmitVertexPointSizeTest, AttemptSymbolCollision) {
- auto* src = R"(
-[[stage(vertex)]]
-fn entry() -> [[builtin(position)]] vec4<f32> {
- var tint_pointsize : f32;
- return vec4<f32>();
-}
-)";
-
- auto* expect = R"(
-[[builtin(pointsize)]] var<out> tint_pointsize_1 : f32;
-
-[[stage(vertex)]]
-fn entry() -> [[builtin(position)]] vec4<f32> {
- tint_pointsize_1 = 1.0;
- var tint_pointsize : f32;
- return vec4<f32>();
-}
-)";
-
- auto got = Run<EmitVertexPointSize>(src);
-
- EXPECT_EQ(expect, str(got));
-}
-
-} // namespace
-} // namespace transform
-} // namespace tint
diff --git a/test/BUILD.gn b/test/BUILD.gn
index ca6b446..4f6bf11 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -295,7 +295,6 @@
"../src/transform/calculate_array_length_test.cc",
"../src/transform/canonicalize_entry_point_io_test.cc",
"../src/transform/decompose_storage_access_test.cc",
- "../src/transform/emit_vertex_point_size_test.cc",
"../src/transform/external_texture_transform_test.cc",
"../src/transform/first_index_offset_test.cc",
"../src/transform/renamer_test.cc",