dawn-cmake/src/ast
Ben Clayton 3103a1f666 BindingRemapper: Allow for binding point collisions
Add a new parameter to BindingRemapper::Remappings that allows resulting binding points to collide.

When enabled, the output of the transform contains two or more module-scoped variables with the same binding point, used by the same entry point, then these variables will be decorated with an internal decoration to disable validation for the collision.

This is to work around collisions generated for the HLSL backend where the variables actually exist in different register classes, which is permitted by D3D12.

The transform will only generate these decorations if it needs to.

Fixed: tint:797
Change-Id: Id8a87523801bd0cd0dd54227ebabd4299bc20c27
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/50742
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-05-12 13:30:51 +00:00
..
access_control.cc Constify Type* constructor args for ast/sem classes 2021-04-22 15:34:13 +00:00
access_control.h Constify Type* constructor args for ast/sem classes 2021-04-22 15:34:13 +00:00
access_control_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
access_decoration.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
access_decoration.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
access_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
alias.cc ast: Add ast::NamedType 2021-04-30 19:58:49 +00:00
alias.h ast: Add ast::NamedType 2021-04-30 19:58:49 +00:00
alias_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
array.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
array.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
array_accessor_expression.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
array_accessor_expression.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
array_accessor_expression_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
array_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
assignment_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
assignment_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
assignment_statement_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
ast_type.cc Rename all type UnwrapXXX() methods 2021-05-10 18:06:31 +00:00
binary_expression.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
binary_expression.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
binary_expression_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
binding_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
binding_decoration.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
binding_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
bitcast_expression.cc ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
bitcast_expression.h ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
bitcast_expression_test.cc ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
block_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
block_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
block_statement_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
bool.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
bool.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
bool_literal.cc ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
bool_literal.h ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
bool_literal_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
bool_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
break_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
break_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
break_statement_test.cc ast: Replace IsValid() with TINT_ASSERT() 2021-03-10 11:41:49 +00:00
builtin.cc Add support for [[builtin(workgroup_id)]] 2021-04-16 19:57:34 +00:00
builtin.h Add support for [[builtin(workgroup_id)]] 2021-04-16 19:57:34 +00:00
builtin_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
builtin_decoration.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
builtin_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
call_expression.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
call_expression.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
call_expression_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
call_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
call_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
call_statement_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
case_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
case_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
case_statement_test.cc ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
constructor_expression.cc Add ProgramID feed it into all ast::Nodes 2021-04-13 23:27:27 +00:00
constructor_expression.h Add ProgramID feed it into all ast::Nodes 2021-04-13 23:27:27 +00:00
continue_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
continue_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
continue_statement_test.cc ast: Replace IsValid() with TINT_ASSERT() 2021-03-10 11:41:49 +00:00
decoration.cc Flatten ast::Decoration class hierarchy 2021-03-11 17:39:32 +00:00
decoration.h Add ProgramID feed it into all ast::Nodes 2021-04-13 23:27:27 +00:00
depth_texture.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
depth_texture.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
depth_texture_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
disable_validation_decoration.cc BindingRemapper: Allow for binding point collisions 2021-05-12 13:30:51 +00:00
disable_validation_decoration.h BindingRemapper: Allow for binding point collisions 2021-05-12 13:30:51 +00:00
discard_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
discard_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
discard_statement_test.cc ast: Replace IsValid() with TINT_ASSERT() 2021-03-10 11:41:49 +00:00
else_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
else_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
else_statement_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
expression.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
expression.h Move type/* files to sem/ directory 2021-04-19 22:54:43 +00:00
external_texture.cc Add ast::ExternalTexture 2021-04-26 14:55:25 +00:00
external_texture.h Add ast::ExternalTexture 2021-04-26 14:55:25 +00:00
external_texture_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
f32.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
f32.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
f32_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
fallthrough_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
fallthrough_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
fallthrough_statement_test.cc ast: Replace IsValid() with TINT_ASSERT() 2021-03-10 11:41:49 +00:00
float_literal.cc ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
float_literal.h ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
float_literal_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
function.cc ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
function.h ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
function_test.cc ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
group_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
group_decoration.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
group_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
i32.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
i32.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
i32_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
identifier_expression.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
identifier_expression.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
identifier_expression_test.cc Validate that Symbols are all part of the same program 2021-04-15 18:20:03 +00:00
if_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
if_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
if_statement_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
int_literal.cc ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
int_literal.h ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
int_literal_test.cc ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
internal_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
internal_decoration.h Add ast::DisableValidationDecoration 2021-05-12 12:54:21 +00:00
intrinsic_texture_helper_test.cc Move storage_class validation from wgsl to resolver 2021-05-10 18:01:51 +00:00
intrinsic_texture_helper_test.h Prepare for having TypesBuilder return ast::Types 2021-05-05 16:19:22 +00:00
literal.cc ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
literal.h ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
location_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
location_decoration.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
location_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
loop_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
loop_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
loop_statement_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
matrix.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
matrix.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
matrix_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
member_accessor_expression.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
member_accessor_expression.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
member_accessor_expression_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
module.cc ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
module.h ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
module_clone_test.cc Resolver: Validate resource binding decorations 2021-05-10 19:16:46 +00:00
module_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
multisampled_texture.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
multisampled_texture.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
multisampled_texture_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
named_type.cc ast: Add ast::NamedType 2021-04-30 19:58:49 +00:00
named_type.h ast: Add ast::NamedType 2021-04-30 19:58:49 +00:00
node.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
node.h Move all classes from namespace `type` to namespace `sem` 2021-04-19 22:51:23 +00:00
override_decoration.cc Rename builtin constant_id to override 2021-04-30 17:14:19 +00:00
override_decoration.h Rename builtin constant_id to override 2021-04-30 17:14:19 +00:00
override_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
pipeline_stage.cc Initial commit 2020-03-02 15:47:43 -05:00
pipeline_stage.h Fixup all doxygen warnings 2021-04-09 16:51:38 +00:00
pointer.cc wgsl parser: replace almost all sem::Type* with typ::Type where possible 2021-04-26 14:19:55 +00:00
pointer.h wgsl parser: replace almost all sem::Type* with typ::Type where possible 2021-04-26 14:19:55 +00:00
pointer_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
return_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
return_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
return_statement_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
sampled_texture.cc wgsl parser: replace almost all sem::Type* with typ::Type where possible 2021-04-26 14:19:55 +00:00
sampled_texture.h wgsl parser: replace almost all sem::Type* with typ::Type where possible 2021-04-26 14:19:55 +00:00
sampled_texture_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
sampler.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
sampler.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
sampler_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
scalar_constructor_expression.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
scalar_constructor_expression.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
scalar_constructor_expression_test.cc ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
sint_literal.cc ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
sint_literal.h ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
sint_literal_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
stage_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
stage_decoration.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
stage_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
statement.cc Add ProgramID feed it into all ast::Nodes 2021-04-13 23:27:27 +00:00
statement.h Add ProgramID feed it into all ast::Nodes 2021-04-13 23:27:27 +00:00
storage_class.cc Resolver: Validate resource binding decorations 2021-05-10 19:16:46 +00:00
storage_class.h Resolver: Validate resource binding decorations 2021-05-10 19:16:46 +00:00
storage_texture.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
storage_texture.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
storage_texture_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
stride_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
stride_decoration.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
stride_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
struct.cc ast::Struct: Remove Clone() hack 2021-05-06 16:03:33 +00:00
struct.h ast: Add ast::NamedType 2021-04-30 19:58:49 +00:00
struct_block_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
struct_block_decoration.h Remove duplicate using directive 2021-04-23 22:11:14 +00:00
struct_member.cc ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
struct_member.h ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
struct_member_align_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
struct_member_align_decoration.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
struct_member_align_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
struct_member_offset_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
struct_member_offset_decoration.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
struct_member_offset_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
struct_member_size_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
struct_member_size_decoration.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
struct_member_size_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
struct_member_test.cc ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
struct_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
switch_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
switch_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
switch_statement_test.cc ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
test_helper.h Fixup all doxygen warnings 2021-04-09 16:51:38 +00:00
texture.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
texture.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
texture_test.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
type.h Rename all type UnwrapXXX() methods 2021-05-10 18:06:31 +00:00
type_constructor_expression.cc ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
type_constructor_expression.h ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
type_constructor_expression_test.cc ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
type_name.cc ast::TypeName: Clone the name. 2021-04-28 13:39:53 +00:00
type_name.h ProgramBuilder: Fixup last few uses of sem::Type* 2021-04-23 15:41:34 +00:00
u32.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
u32.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
u32_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
uint_literal.cc ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
uint_literal.h ast: Remove types from ast::Literals 2021-04-28 13:50:43 +00:00
uint_literal_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
unary_op.cc Initial commit 2020-03-02 15:47:43 -05:00
unary_op.h Fixup all doxygen warnings 2021-04-09 16:51:38 +00:00
unary_op_expression.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
unary_op_expression.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
unary_op_expression_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
variable.cc ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
variable.h ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
variable_decl_statement.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
variable_decl_statement.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
variable_decl_statement_test.cc ast: Validate that ASTs are all part of the same program 2021-04-15 17:47:23 +00:00
variable_test.cc ast: Migrate to using ast::Type 2021-05-05 09:09:41 +00:00
vector.cc wgsl parser: replace almost all sem::Type* with typ::Type where possible 2021-04-26 14:19:55 +00:00
vector.h wgsl parser: replace almost all sem::Type* with typ::Type where possible 2021-04-26 14:19:55 +00:00
vector_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00
void.cc ast: Add type nodes 2021-04-20 15:04:21 +00:00
void.h ast: Add type nodes 2021-04-20 15:04:21 +00:00
workgroup_decoration.cc Rename semantic to sem 2021-04-16 19:07:51 +00:00
workgroup_decoration.h Rename semantic to sem 2021-04-16 19:07:51 +00:00
workgroup_decoration_test.cc Remove "Is" tests 2021-05-10 18:27:31 +00:00