mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-10 22:17:51 +00:00
Add semantic::Variable, use it.
Pull the mutable semantic field from ast::Variable and into a new semantic::Variable node. Have the TypeDeterminer create these semantic::Variable nodes. Bug: tint:390 Change-Id: Ia13f5e7b065941ed66ea5a86c6ccb288071feff3 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/40063 Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: David Neto <dneto@google.com>
This commit is contained in:
committed by
Commit Bot service account
parent
401b96b9bb
commit
b17aea159c
@@ -58,7 +58,6 @@ Transform::Output EmitVertexPointSize::Run(const Program* in) {
|
||||
false, // is_const
|
||||
nullptr, // constructor
|
||||
ast::VariableDecorationList{
|
||||
// decorations
|
||||
out.create<ast::BuiltinDecoration>(Source{},
|
||||
ast::Builtin::kPointSize),
|
||||
});
|
||||
|
||||
@@ -70,7 +70,7 @@ ast::Variable* clone_variable_with_new_name(CloneContext* ctx,
|
||||
return ctx->dst->create<ast::Variable>(
|
||||
ctx->Clone(in->source()), // source
|
||||
ctx->dst->Symbols().Register(new_name), // symbol
|
||||
in->storage_class(), // storage_class
|
||||
in->declared_storage_class(), // declared_storage_class
|
||||
ctx->Clone(in->type()), // type
|
||||
in->is_const(), // is_const
|
||||
ctx->Clone(in->constructor()), // constructor
|
||||
@@ -226,7 +226,7 @@ ast::Variable* FirstIndexOffset::AddUniformBuffer(ProgramBuilder* dst) {
|
||||
ast::VariableDecorationList{
|
||||
dst->create<ast::BindingDecoration>(Source{}, binding_),
|
||||
dst->create<ast::GroupDecoration>(Source{}, group_),
|
||||
}); // decorations
|
||||
});
|
||||
|
||||
dst->AST().AddGlobalVariable(idx_var);
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "src/clone_context.h"
|
||||
#include "src/program.h"
|
||||
#include "src/program_builder.h"
|
||||
#include "src/semantic/variable.h"
|
||||
#include "src/type/array_type.h"
|
||||
#include "src/type/f32_type.h"
|
||||
#include "src/type/i32_type.h"
|
||||
@@ -150,7 +151,8 @@ void VertexPulling::State::FindOrInsertVertexIndexIfUsed() {
|
||||
|
||||
// Look for an existing vertex index builtin
|
||||
for (auto* v : ctx.src->AST().GlobalVariables()) {
|
||||
if (v->storage_class() != ast::StorageClass::kInput) {
|
||||
auto* sem = ctx.src->Sem().Get(v);
|
||||
if (sem->StorageClass() != ast::StorageClass::kInput) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -196,7 +198,8 @@ void VertexPulling::State::FindOrInsertInstanceIndexIfUsed() {
|
||||
|
||||
// Look for an existing instance index builtin
|
||||
for (auto* v : ctx.src->AST().GlobalVariables()) {
|
||||
if (v->storage_class() != ast::StorageClass::kInput) {
|
||||
auto* sem = ctx.src->Sem().Get(v);
|
||||
if (sem->StorageClass() != ast::StorageClass::kInput) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -229,7 +232,8 @@ void VertexPulling::State::FindOrInsertInstanceIndexIfUsed() {
|
||||
|
||||
void VertexPulling::State::ConvertVertexInputVariablesToPrivate() {
|
||||
for (auto* v : ctx.src->AST().GlobalVariables()) {
|
||||
if (v->storage_class() != ast::StorageClass::kInput) {
|
||||
auto* sem = ctx.src->Sem().Get(v);
|
||||
if (sem->StorageClass() != ast::StorageClass::kInput) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user