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

@@ -54,19 +54,19 @@ layout(binding = 0) uniform Uniforms_1 {
vec3 bbMax;
} uniforms;
layout(binding = 10) buffer U32s_1 {
layout(binding = 10, std430) buffer U32s_1 {
uint values[];
} indices;
layout(binding = 11) buffer F32s_1 {
layout(binding = 11, std430) buffer F32s_1 {
float values[];
} positions;
layout(binding = 20) buffer AU32s_1 {
layout(binding = 20, std430) buffer AU32s_1 {
uint values[];
} counters;
layout(binding = 21) buffer AI32s_1 {
layout(binding = 21, std430) buffer AI32s_1 {
int values[];
} LUT;
layout(binding = 50) buffer Dbg_1 {
layout(binding = 50, std430) buffer Dbg_1 {
uint offsetCounter;
uint pad0;
uint pad1;

View File

@@ -7,7 +7,7 @@ struct S {
float f;
};
layout(binding = 0) buffer arr_block_1 {
layout(binding = 0, std430) buffer arr_block_1 {
S inner[];
} arr;
void tint_symbol() {

View File

@@ -17,7 +17,7 @@ struct Result {
int tint_symbol;
};
layout(binding = 1) buffer Result_1 {
layout(binding = 1, std430) buffer Result_1 {
int tint_symbol;
} result;
void f() {

View File

@@ -17,7 +17,7 @@ struct Result {
int tint_symbol;
};
layout(binding = 1) buffer Result_1 {
layout(binding = 1, std430) buffer Result_1 {
int tint_symbol;
} result;
S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));

View File

@@ -13,14 +13,14 @@ struct Result {
int tint_symbol;
};
layout(binding = 2) buffer Result_1 {
layout(binding = 2, std430) buffer Result_1 {
int tint_symbol;
} result;
struct SSBO {
int data[4];
};
layout(binding = 1) buffer SSBO_1 {
layout(binding = 1, std430) buffer SSBO_1 {
int data[4];
} ssbo;
void f() {

View File

@@ -15,7 +15,7 @@ struct Result {
int tint_symbol;
};
layout(binding = 2) buffer Result_1 {
layout(binding = 2, std430) buffer Result_1 {
int tint_symbol;
} result;
void f() {

View File

@@ -17,7 +17,7 @@ struct Result {
int tint_symbol;
};
layout(binding = 1) buffer Result_1 {
layout(binding = 1, std430) buffer Result_1 {
int tint_symbol;
} result;
shared S s;

View File

@@ -17,7 +17,7 @@ struct Result {
int tint_symbol;
};
layout(binding = 1) buffer Result_1 {
layout(binding = 1, std430) buffer Result_1 {
int tint_symbol;
} result;
void f() {

View File

@@ -17,7 +17,7 @@ struct Result {
int tint_symbol;
};
layout(binding = 1) buffer Result_1 {
layout(binding = 1, std430) buffer Result_1 {
int tint_symbol;
} result;
void x(inout S p) {

View File

@@ -17,7 +17,7 @@ struct Result {
int tint_symbol;
};
layout(binding = 1) buffer Result_1 {
layout(binding = 1, std430) buffer Result_1 {
int tint_symbol;
} result;
S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));

View File

@@ -17,7 +17,7 @@ struct Result {
int tint_symbol;
};
layout(binding = 1) buffer Result_1 {
layout(binding = 1, std430) buffer Result_1 {
int tint_symbol;
} result;
S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));

View File

@@ -13,14 +13,14 @@ struct Result {
int tint_symbol;
};
layout(binding = 2) buffer Result_1 {
layout(binding = 2, std430) buffer Result_1 {
int tint_symbol;
} result;
struct SSBO {
int data[4];
};
layout(binding = 1) buffer SSBO_1 {
layout(binding = 1, std430) buffer SSBO_1 {
int data[4];
} ssbo;
void f() {

View File

@@ -17,7 +17,7 @@ struct Result {
int tint_symbol;
};
layout(binding = 1) buffer Result_1 {
layout(binding = 1, std430) buffer Result_1 {
int tint_symbol;
} result;
shared S s;

View File

@@ -12,7 +12,7 @@ struct Particle {
vec3 velocity;
};
layout(binding = 3) buffer Particles_1 {
layout(binding = 3, std430) buffer Particles_1 {
Particle p[];
} particles;
layout(binding = 4) uniform Simulation_1 {

View File

@@ -26,7 +26,7 @@ layout(binding = 0) uniform Uniforms_1 {
vec4 color;
} uniforms;
layout(binding = 1) buffer PointLights_1 {
layout(binding = 1, std430) buffer PointLights_1 {
PointLight values[];
} pointLights;
struct FragmentInput {

View File

@@ -34,19 +34,19 @@ layout(binding = 0) uniform Uniforms_1 {
vec3 bbMax;
} uniforms;
layout(binding = 10) buffer U32s_1 {
layout(binding = 10, std430) buffer U32s_1 {
uint values[];
} indices;
layout(binding = 11) buffer F32s_1 {
layout(binding = 11, std430) buffer F32s_1 {
float values[];
} positions;
layout(binding = 20) buffer AU32s_1 {
layout(binding = 20, std430) buffer AU32s_1 {
uint values[];
} counters;
layout(binding = 21) buffer AI32s_1 {
layout(binding = 21, std430) buffer AI32s_1 {
int values[];
} LUT;
layout(binding = 50) buffer Dbg_1 {
layout(binding = 50, std430) buffer Dbg_1 {
uint offsetCounter;
uint pad0;
uint pad1;
@@ -156,19 +156,19 @@ layout(binding = 0) uniform Uniforms_1 {
vec3 bbMax;
} uniforms;
layout(binding = 10) buffer U32s_1 {
layout(binding = 10, std430) buffer U32s_1 {
uint values[];
} indices;
layout(binding = 11) buffer F32s_1 {
layout(binding = 11, std430) buffer F32s_1 {
float values[];
} positions;
layout(binding = 20) buffer AU32s_1 {
layout(binding = 20, std430) buffer AU32s_1 {
uint values[];
} counters;
layout(binding = 21) buffer AI32s_1 {
layout(binding = 21, std430) buffer AI32s_1 {
int values[];
} LUT;
layout(binding = 50) buffer Dbg_1 {
layout(binding = 50, std430) buffer Dbg_1 {
uint offsetCounter;
uint pad0;
uint pad1;
@@ -247,19 +247,19 @@ layout(binding = 0) uniform Uniforms_1 {
vec3 bbMax;
} uniforms;
layout(binding = 10) buffer U32s_1 {
layout(binding = 10, std430) buffer U32s_1 {
uint values[];
} indices;
layout(binding = 11) buffer F32s_1 {
layout(binding = 11, std430) buffer F32s_1 {
float values[];
} positions;
layout(binding = 20) buffer AU32s_1 {
layout(binding = 20, std430) buffer AU32s_1 {
uint values[];
} counters;
layout(binding = 21) buffer AI32s_1 {
layout(binding = 21, std430) buffer AI32s_1 {
int values[];
} LUT;
layout(binding = 50) buffer Dbg_1 {
layout(binding = 50, std430) buffer Dbg_1 {
uint offsetCounter;
uint pad0;
uint pad1;

View File

@@ -7,7 +7,7 @@ struct LightData {
float radius;
};
layout(binding = 0) buffer LightsBuffer_1 {
layout(binding = 0, std430) buffer LightsBuffer_1 {
LightData lights[];
} lightsBuffer;
struct TileLightIdData {
@@ -19,7 +19,7 @@ struct Tiles {
TileLightIdData data[4];
};
layout(binding = 0) buffer Tiles_1 {
layout(binding = 0, std430) buffer Tiles_1 {
TileLightIdData data[4];
} tileLightId;
struct Config {

View File

@@ -9,7 +9,7 @@ struct Buffer {
uint data;
};
layout(binding = 0) buffer Buffer_1 {
layout(binding = 0, std430) buffer Buffer_1 {
uint data;
} tint_symbol;
void tint_symbol_1() {

View File

@@ -1,7 +1,7 @@
#version 310 es
precision mediump float;
layout(binding = 1) buffer data_block_1 {
layout(binding = 1, std430) buffer data_block_1 {
int inner[];
} data;
int foo() {

View File

@@ -6,7 +6,7 @@ struct Buf {
uint data[50];
};
layout(binding = 0) buffer Buf_1 {
layout(binding = 0, std430) buffer Buf_1 {
uint count;
uint data[50];
} b;

View File

@@ -10,6 +10,6 @@ struct Light {
vec3 colour;
};
layout(binding = 1) buffer Lights_1 {
layout(binding = 1, std430) buffer Lights_1 {
Light light[];
} lights;

View File

@@ -9,7 +9,7 @@ struct S {
mat2 m;
};
layout(binding = 0) buffer S_1 {
layout(binding = 0, std430) buffer S_1 {
mat2 m;
} SSBO;
layout(binding = 0) uniform S_2 {

View File

@@ -5,7 +5,7 @@ struct S {
int a;
};
layout(binding = 0) buffer S_1 {
layout(binding = 0, std430) buffer S_1 {
int a;
} buf;
void tint_symbol() {

View File

@@ -8,7 +8,7 @@ struct Uniforms {
uint channelCount;
};
layout(binding = 2) buffer OutputBuf_1 {
layout(binding = 2, std430) buffer OutputBuf_1 {
uint result[];
} tint_symbol;
layout(binding = 3) uniform Uniforms_1 {

View File

@@ -7,13 +7,13 @@ struct Uniforms {
uvec2 outShape;
};
layout(binding = 0) buffer Matrix_1 {
layout(binding = 0, std430) buffer Matrix_1 {
uint numbers[];
} firstMatrix;
layout(binding = 1) buffer Matrix_2 {
layout(binding = 1, std430) buffer Matrix_2 {
uint numbers[];
} secondMatrix;
layout(binding = 2) buffer Matrix_3 {
layout(binding = 2, std430) buffer Matrix_3 {
uint numbers[];
} resultMatrix;
layout(binding = 3) uniform Uniforms_1 {

View File

@@ -5,7 +5,7 @@ struct Constants {
int level;
};
layout(binding = 3) buffer Result_1 {
layout(binding = 3, std430) buffer Result_1 {
float values[];
} result;
uniform highp sampler2DArray myTexture_1;

View File

@@ -2,7 +2,7 @@
precision mediump float;
const uint width = 128u;
layout(binding = 1) buffer Result_1 {
layout(binding = 1, std430) buffer Result_1 {
float values[];
} result;
uniform highp sampler2D tex_1;

View File

@@ -12,7 +12,7 @@ struct x_B4_BuildInformation {
sspp962805860buildInformationS passthru;
};
layout(binding = 2) buffer x_B4_BuildInformation_1 {
layout(binding = 2, std430) buffer x_B4_BuildInformation_1 {
sspp962805860buildInformationS passthru;
} sspp962805860buildInformation;
void main_1() {

View File

@@ -9,7 +9,7 @@ struct Uniforms {
uvec2 copySize;
};
layout(binding = 2) buffer OutputBuf_1 {
layout(binding = 2, std430) buffer OutputBuf_1 {
uint result[];
} tint_symbol;
layout(binding = 3) uniform Uniforms_1 {

View File

@@ -7,13 +7,13 @@ struct Uniforms {
uint dimBOuter;
};
layout(binding = 0) buffer Matrix_1 {
layout(binding = 0, std430) buffer Matrix_1 {
float numbers[];
} firstMatrix;
layout(binding = 1) buffer Matrix_2 {
layout(binding = 1, std430) buffer Matrix_2 {
float numbers[];
} secondMatrix;
layout(binding = 2) buffer Matrix_3 {
layout(binding = 2, std430) buffer Matrix_3 {
float numbers[];
} resultMatrix;
layout(binding = 3) uniform Uniforms_1 {

View File

@@ -5,7 +5,7 @@ struct DrawIndirectArgs {
uint vertexCount;
};
layout(binding = 5) buffer DrawIndirectArgs_1 {
layout(binding = 5, std430) buffer DrawIndirectArgs_1 {
uint vertexCount;
} drawOut;
uint cubeVerts = 0u;

View File

@@ -34,18 +34,18 @@ layout(binding = 3) uniform Uniforms_1 {
int dimInner_1 = 0;
int dimBOuter_1 = 0;
layout(binding = 0) buffer ssbOut_1 {
layout(binding = 0, std430) buffer ssbOut_1 {
float result[];
} x_54;
uvec3 tint_symbol = uvec3(0u, 0u, 0u);
uvec3 tint_symbol_1 = uvec3(0u, 0u, 0u);
shared float mm_Asub[64][64];
shared float mm_Bsub[64][1];
layout(binding = 1) buffer ssbA_1 {
layout(binding = 1, std430) buffer ssbA_1 {
float A[];
} x_165;
int batch = 0;
layout(binding = 2) buffer ssbB_1 {
layout(binding = 2, std430) buffer ssbB_1 {
float B[];
} x_185;
bool coordsInBounds_vi2_vi2_(inout ivec2 coord, inout ivec2 shape) {

View File

@@ -19,10 +19,10 @@ struct Uniforms {
int size;
};
layout(binding = 0) buffer ssbOut_1 {
layout(binding = 0, std430) buffer ssbOut_1 {
float result[];
} x_16;
layout(binding = 1) buffer ssbA_1 {
layout(binding = 1, std430) buffer ssbA_1 {
float A[];
} x_20;
uvec3 tint_symbol = uvec3(0u, 0u, 0u);

View File

@@ -5,28 +5,28 @@ struct S {
float a;
};
layout(binding = 0) buffer S_1 {
layout(binding = 0, std430) buffer S_1 {
float a;
} b0;
layout(binding = 0) buffer S_2 {
layout(binding = 0, std430) buffer S_2 {
float a;
} b1;
layout(binding = 0) buffer S_3 {
layout(binding = 0, std430) buffer S_3 {
float a;
} b2;
layout(binding = 0) buffer S_4 {
layout(binding = 0, std430) buffer S_4 {
float a;
} b3;
layout(binding = 0) buffer S_5 {
layout(binding = 0, std430) buffer S_5 {
float a;
} b4;
layout(binding = 0) buffer S_6 {
layout(binding = 0, std430) buffer S_6 {
float a;
} b5;
layout(binding = 0) buffer S_7 {
layout(binding = 0, std430) buffer S_7 {
float a;
} b6;
layout(binding = 0) buffer S_8 {
layout(binding = 0, std430) buffer S_8 {
float a;
} b7;
layout(binding = 1) uniform S_9 {

View File

@@ -22,7 +22,7 @@ struct Uniforms {
};
uvec3 tint_symbol = uvec3(0u, 0u, 0u);
layout(binding = 2) buffer ResultMatrix_1 {
layout(binding = 2, std430) buffer ResultMatrix_1 {
float numbers[];
} resultMatrix;
float binaryOperation_f1_f1_(inout float a, inout float b) {

View File

@@ -12,7 +12,7 @@ struct S {
uint i;
};
layout(binding = 0) buffer S_1 {
layout(binding = 0, std430) buffer S_1 {
vec3 v;
uint i;
} io;

View File

@@ -13,14 +13,14 @@ struct Result {
uint value;
};
layout(binding = 1) buffer Result_1 {
layout(binding = 1, std430) buffer Result_1 {
uint value;
} result;
struct TestData {
int data[3];
};
layout(binding = 0) buffer TestData_1 {
layout(binding = 0, std430) buffer TestData_1 {
int data[3];
} s;
int runTest() {