dawn-cmake/src/transform/emit_vertex_point_size.h
James Price 8c6808fa13 transform/Spirv: Add EmitVertexPointSize logic
This is disabled by default and can be enabled via transform data. The
separate EmitVertexPointSize transform will be removed once Dawn
starts using the Spirv sanitizer to do this.

Bug: tint:753
Change-Id: I676c4cef5bc53f2dbf2330645faa4a0f2bfe11bd
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/49980
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-05 16:54:52 +00:00

47 lines
1.7 KiB
C++

// 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_