#include "src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.h"
#include <algorithm>
#include <string>
#include <unordered_set>
#include <utility>
#include <vector>
#include "src/tint/lang/core/builtin_value.h"
#include "src/tint/lang/core/fluent_types.h"
#include "src/tint/lang/wgsl/ast/disable_validation_attribute.h"
#include "src/tint/lang/wgsl/ast/transform/unshadow.h"
#include "src/tint/lang/wgsl/program/clone_context.h"
#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/resolver/resolve.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/utils/containers/transform.h"
usingnamespacetint::core::number_suffixes;
usingnamespacetint::core::fluent_types;
TINT_INSTANTIATE_TYPEINFO(…);
TINT_INSTANTIATE_TYPEINFO(…);
TINT_INSTANTIATE_TYPEINFO(…);
TINT_INSTANTIATE_TYPEINFO(…);
namespace tint::ast::transform {
CanonicalizeEntryPointIO::CanonicalizeEntryPointIO() = default;
CanonicalizeEntryPointIO::~CanonicalizeEntryPointIO() = default;
namespace {
struct MemberInfo { … };
uint32_t BuiltinOrder(core::BuiltinValue builtin) { … }
bool IsShaderIOAttribute(const Attribute* attr) { … }
}
struct CanonicalizeEntryPointIO::State { … };
Transform::ApplyResult CanonicalizeEntryPointIO::Apply(const Program& src,
const DataMap& inputs,
DataMap&) const { … }
CanonicalizeEntryPointIO::Config::Config() = default;
CanonicalizeEntryPointIO::Config::Config(ShaderStyle style,
uint32_t sample_mask,
bool emit_point_size,
bool polyfill_f16)
: … { … }
CanonicalizeEntryPointIO::Config::Config(const Config&) = default;
CanonicalizeEntryPointIO::Config::~Config() = default;
CanonicalizeEntryPointIO::HLSLWaveIntrinsic::HLSLWaveIntrinsic(GenerationID pid, NodeID nid, Op o)
: … { … }
CanonicalizeEntryPointIO::HLSLWaveIntrinsic::~HLSLWaveIntrinsic() = default;
std::string CanonicalizeEntryPointIO::HLSLWaveIntrinsic::InternalName() const { … }
const CanonicalizeEntryPointIO::HLSLWaveIntrinsic*
CanonicalizeEntryPointIO::HLSLWaveIntrinsic::Clone(ast::CloneContext& ctx) const { … }
CanonicalizeEntryPointIO::HLSLClipDistance1::HLSLClipDistance1(GenerationID pid, NodeID nid)
: … { … }
CanonicalizeEntryPointIO::HLSLClipDistance1::~HLSLClipDistance1() = default;
std::string CanonicalizeEntryPointIO::HLSLClipDistance1::InternalName() const { … }
const CanonicalizeEntryPointIO::HLSLClipDistance1*
CanonicalizeEntryPointIO::HLSLClipDistance1::Clone(ast::CloneContext& ctx) const { … }
}