GLSL: put std430 packing on all buffer variables.

This is not 100% correct (the exceptions for mat2 and friends are not
implemented yet), but gets more tests passing in Dawn.

Bug: tint:1415
Change-Id: Ia11c63a5236f35e724431a65ddb6ef3c598775d0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/79380
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
This commit is contained in:
Stephen White
2022-02-04 23:09:23 +00:00
committed by Tint LUCI CQ
parent c6d967b4dd
commit 46647f1c13
199 changed files with 539 additions and 536 deletions

View File

@@ -1752,7 +1752,7 @@ bool GeneratorImpl::EmitStorageVariable(const sem::Variable* var) {
return false;
}
ast::VariableBindingPoint bp = decl->BindingPoint();
line() << "layout(binding = " << bp.binding->value << ") buffer "
line() << "layout(binding = " << bp.binding->value << ", std430) buffer "
<< UniqueIdentifier(StructName(str)) << " {";
EmitStructMembers(current_buffer_, str);
auto name = builder_.Symbols().NameFor(decl->symbol);

View File

@@ -468,7 +468,7 @@ struct Data {
float b;
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
int a;
float b;
} coord;
@@ -523,7 +523,7 @@ struct Data {
float b;
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
int a;
float b;
} coord;
@@ -574,7 +574,7 @@ struct Data {
float b;
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
int a;
float b;
} coord;
@@ -626,7 +626,7 @@ struct Data {
float b;
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
int a;
float b;
} coord;
@@ -733,7 +733,7 @@ struct S {
float x;
};
layout(binding = 0) buffer S_1 {
layout(binding = 0, std430) buffer S_1 {
float x;
} coord;
float sub_func(float param) {
@@ -980,7 +980,7 @@ struct Data {
float d;
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
float d;
} data;
void a() {

View File

@@ -299,7 +299,7 @@ struct Data {
mat2x3 b;
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
int a;
mat2x3 b;
} data;
@@ -347,7 +347,7 @@ struct Data {
mat4x3 a;
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
float z;
mat4x3 a;
} data;
@@ -393,7 +393,7 @@ struct Data {
int a[5];
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
float z;
int a[5];
} data;
@@ -440,7 +440,7 @@ struct Data {
int a[5];
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
float z;
int a[5];
} data;
@@ -484,7 +484,7 @@ struct Data {
int a[5];
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
float z;
int a[5];
} data;
@@ -543,7 +543,7 @@ struct Data {
Inner c[4];
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
Inner c[4];
} data;
void tint_symbol() {
@@ -604,7 +604,7 @@ struct Data {
Inner c[4];
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
Inner c[4];
} data;
void tint_symbol() {
@@ -665,7 +665,7 @@ struct Data {
Inner c[4];
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
Inner c[4];
} data;
void tint_symbol() {
@@ -726,7 +726,7 @@ struct Data {
Inner c[4];
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
Inner c[4];
} data;
void tint_symbol() {
@@ -783,7 +783,7 @@ struct Data {
Inner c[4];
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
Inner c[4];
} data;
void tint_symbol() {
@@ -844,7 +844,7 @@ struct Data {
Inner c[4];
};
layout(binding = 0) buffer Data_1 {
layout(binding = 0, std430) buffer Data_1 {
Inner c[4];
} data;
void tint_symbol() {

View File

@@ -51,7 +51,7 @@ TEST_F(GlslSanitizerTest, Call_ArrayLength) {
auto* expect = R"(#version 310 es
precision mediump float;
layout(binding = 1) buffer my_struct_1 {
layout(binding = 1, std430) buffer my_struct_1 {
float a[];
} b;
void a_func() {
@@ -99,7 +99,7 @@ TEST_F(GlslSanitizerTest, Call_ArrayLength_OtherMembersInStruct) {
auto* expect = R"(#version 310 es
precision mediump float;
layout(binding = 1) buffer my_struct_1 {
layout(binding = 1, std430) buffer my_struct_1 {
float z;
float a[];
} b;
@@ -150,7 +150,7 @@ TEST_F(GlslSanitizerTest, Call_ArrayLength_ViaLets) {
auto* expect = R"(#version 310 es
precision mediump float;
layout(binding = 1) buffer my_struct_1 {
layout(binding = 1, std430) buffer my_struct_1 {
float a[];
} b;
void a_func() {