mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-15 20:01:22 +00:00
Since GLSL ES does not support the offset= attribute, struct members with explicit @align or @size attributes require adding explicit padding members. This in turn requires rewriting any constructor calls to initialize the new padding to zero, handled in the same transform. Note that this is currently overly-verbose, and will add padding where GLSL doesn't technically need it (e.g., padding a vec3 out to 16 bytes). Bug: tint:1415 Change-Id: Ia9ba513066a0e84f4c43247fcbbe02f5fadd6630 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/101720 Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org> Kokoro: Kokoro <noreply+kokoro@google.com>
86 lines
1.6 KiB
GLSL
86 lines
1.6 KiB
GLSL
#version 310 es
|
|
precision mediump float;
|
|
|
|
layout(location = 0) in float f_1;
|
|
layout(location = 1) flat in uint u_1;
|
|
struct S {
|
|
float f;
|
|
uint u;
|
|
uint pad;
|
|
uint pad_1;
|
|
uint pad_2;
|
|
uint pad_3;
|
|
uint pad_4;
|
|
uint pad_5;
|
|
uint pad_6;
|
|
uint pad_7;
|
|
uint pad_8;
|
|
uint pad_9;
|
|
uint pad_10;
|
|
uint pad_11;
|
|
uint pad_12;
|
|
uint pad_13;
|
|
uint pad_14;
|
|
uint pad_15;
|
|
uint pad_16;
|
|
uint pad_17;
|
|
uint pad_18;
|
|
uint pad_19;
|
|
uint pad_20;
|
|
uint pad_21;
|
|
uint pad_22;
|
|
uint pad_23;
|
|
uint pad_24;
|
|
uint pad_25;
|
|
uint pad_26;
|
|
uint pad_27;
|
|
uint pad_28;
|
|
uint pad_29;
|
|
vec4 v;
|
|
uint pad_30;
|
|
uint pad_31;
|
|
uint pad_32;
|
|
uint pad_33;
|
|
uint pad_34;
|
|
uint pad_35;
|
|
uint pad_36;
|
|
uint pad_37;
|
|
uint pad_38;
|
|
uint pad_39;
|
|
uint pad_40;
|
|
uint pad_41;
|
|
uint pad_42;
|
|
uint pad_43;
|
|
uint pad_44;
|
|
uint pad_45;
|
|
uint pad_46;
|
|
uint pad_47;
|
|
uint pad_48;
|
|
uint pad_49;
|
|
uint pad_50;
|
|
uint pad_51;
|
|
uint pad_52;
|
|
uint pad_53;
|
|
uint pad_54;
|
|
uint pad_55;
|
|
uint pad_56;
|
|
uint pad_57;
|
|
};
|
|
|
|
layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
|
|
S inner;
|
|
} tint_symbol;
|
|
|
|
void frag_main(S tint_symbol_1) {
|
|
float f = tint_symbol_1.f;
|
|
uint u = tint_symbol_1.u;
|
|
vec4 v = tint_symbol_1.v;
|
|
tint_symbol.inner = tint_symbol_1;
|
|
}
|
|
|
|
void main() {
|
|
S tint_symbol_2 = S(f_1, u_1, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, gl_FragCoord, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u);
|
|
frag_main(tint_symbol_2);
|
|
return;
|
|
}
|