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

@@ -13,7 +13,7 @@ struct Inner {
ivec4 i[4];
};
layout(binding = 0) buffer S_1 {
layout(binding = 0, std430) buffer S_1 {
Inner arr[];
} s;
void tint_symbol(uint idx) {

View File

@@ -13,7 +13,7 @@ struct Inner {
ivec4 i[4];
};
layout(binding = 0) buffer S_1 {
layout(binding = 0, std430) buffer S_1 {
Inner arr[];
} s;
void tint_symbol(uint idx) {

View File

@@ -18,7 +18,7 @@ struct S {
Inner j[4];
};
layout(binding = 0) buffer S_1 {
layout(binding = 0, std430) buffer S_1 {
ivec3 a;
int b;
uvec3 c;

View File

@@ -18,7 +18,7 @@ struct S {
Inner j[4];
};
layout(binding = 0) buffer S_1 {
layout(binding = 0, std430) buffer S_1 {
ivec3 a;
int b;
uvec3 c;

View File

@@ -5,10 +5,10 @@ struct tint_symbol_block {
float inner[4];
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
float inner[4];
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
float inner[4];
} tint_symbol_1;
void tint_symbol_2() {

View File

@@ -5,10 +5,10 @@ struct tint_symbol_block {
float inner;
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
float inner;
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
float inner;
} tint_symbol_1;
void tint_symbol_2() {

View File

@@ -5,10 +5,10 @@ struct tint_symbol_block {
int inner;
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
int inner;
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
int inner;
} tint_symbol_1;
void tint_symbol_2() {

View File

@@ -5,10 +5,10 @@ struct tint_symbol_block {
mat2 inner;
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
mat2 inner;
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
mat2 inner;
} tint_symbol_1;
void tint_symbol_2() {

View File

@@ -5,10 +5,10 @@ struct tint_symbol_block {
mat2x3 inner;
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
mat2x3 inner;
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
mat2x3 inner;
} tint_symbol_1;
void tint_symbol_2() {

View File

@@ -5,10 +5,10 @@ struct tint_symbol_block {
mat3x2 inner;
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
mat3x2 inner;
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
mat3x2 inner;
} tint_symbol_1;
void tint_symbol_2() {

View File

@@ -5,10 +5,10 @@ struct tint_symbol_block {
mat4 inner;
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
mat4 inner;
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
mat4 inner;
} tint_symbol_1;
void tint_symbol_2() {

View File

@@ -5,10 +5,10 @@ struct S {
float f;
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
S inner[];
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
S inner[];
} tint_symbol_1;
void tint_symbol_2() {

View File

@@ -11,10 +11,10 @@ struct S {
Inner inner;
};
layout(binding = 0) buffer S_1 {
layout(binding = 0, std430) buffer S_1 {
Inner inner;
} tint_symbol;
layout(binding = 1) buffer S_2 {
layout(binding = 1, std430) buffer S_2 {
Inner inner;
} tint_symbol_1;
void tint_symbol_2() {
@@ -27,7 +27,7 @@ void main() {
return;
}
Error parsing GLSL shader:
ERROR: 0:19: 'assign' : cannot convert from 'layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer structure{ global mediump float f} inner}' to 'layout( binding=1 column_major shared) buffer block{layout( column_major shared) buffer structure{ global mediump float f} inner}'
ERROR: 0:19: 'assign' : cannot convert from 'layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{ global mediump float f} inner}' to 'layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{ global mediump float f} inner}'
ERROR: 0:19: '' : compilation terminated
ERROR: 2 compilation errors. No code generated.

View File

@@ -5,10 +5,10 @@ struct tint_symbol_block {
uint inner;
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
uint inner;
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
uint inner;
} tint_symbol_1;
void tint_symbol_2() {

View File

@@ -5,10 +5,10 @@ struct tint_symbol_block {
ivec2 inner;
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
ivec2 inner;
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
ivec2 inner;
} tint_symbol_1;
void tint_symbol_2() {

View File

@@ -5,10 +5,10 @@ struct tint_symbol_block {
uvec3 inner;
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
uvec3 inner;
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
uvec3 inner;
} tint_symbol_1;
void tint_symbol_2() {

View File

@@ -5,10 +5,10 @@ struct tint_symbol_block {
vec4 inner;
};
layout(binding = 0) buffer tint_symbol_block_1 {
layout(binding = 0, std430) buffer tint_symbol_block_1 {
vec4 inner;
} tint_symbol;
layout(binding = 1) buffer tint_symbol_block_2 {
layout(binding = 1, std430) buffer tint_symbol_block_2 {
vec4 inner;
} tint_symbol_1;
void tint_symbol_2() {