mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-11 22:44:04 +00:00
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:
committed by
Tint LUCI CQ
parent
c6d967b4dd
commit
46647f1c13
@@ -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);
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user