[glsl-out] use common bake prefix

This commit is contained in:
Dzmitry Malyshau
2021-08-17 00:09:10 -04:00
committed by Dzmitry Malyshau
parent c398102332
commit ab1e932e16
11 changed files with 151 additions and 154 deletions

View File

@@ -66,9 +66,6 @@ pub const SUPPORTED_CORE_VERSIONS: &[u16] = &[330, 400, 410, 420, 430, 440, 450]
/// List of supported es glsl versions
pub const SUPPORTED_ES_VERSIONS: &[u16] = &[300, 310, 320];
//TODO: use `super::BAKE_PREFIX` instead
const BAKE_PREFIX: &str = "_expr";
pub type BindingMap = std::collections::BTreeMap<crate::ResourceBinding, u8>;
impl crate::AtomicFunction {
@@ -1345,7 +1342,7 @@ impl<'a, W: Write> Writer<'a, W> {
} else {
let min_ref_count = ctx.expressions[handle].bake_ref_count();
if min_ref_count <= ctx.info[handle].ref_count {
Some(format!("{}{}", BAKE_PREFIX, handle.index()))
Some(format!("{}{}", super::BAKE_PREFIX, handle.index()))
} else {
None
}
@@ -1677,7 +1674,7 @@ impl<'a, W: Write> Writer<'a, W> {
} => {
write!(self.out, "{}", INDENT.repeat(indent))?;
if let Some(expr) = result {
let name = format!("{}{}", BAKE_PREFIX, expr.index());
let name = format!("{}{}", super::BAKE_PREFIX, expr.index());
let result = self.module.functions[function].result.as_ref().unwrap();
self.write_type(result.ty)?;
write!(self.out, " {} = ", name)?;
@@ -1705,7 +1702,7 @@ impl<'a, W: Write> Writer<'a, W> {
result,
} => {
write!(self.out, "{}", INDENT.repeat(indent))?;
let res_name = format!("{}{}", BAKE_PREFIX, result.index());
let res_name = format!("{}{}", super::BAKE_PREFIX, result.index());
let res_ty = ctx.info[result].ty.inner_with(&self.module.types);
self.write_value_type(res_ty)?;
write!(self.out, " {} = ", res_name)?;

View File

@@ -16,20 +16,20 @@ buffer Bar_block_0Cs {
void main() {
int tmp = 0;
int value = _group_0_binding_0.atom;
int _expr6 = atomicAdd(_group_0_binding_0.atom, 5);
tmp = _expr6;
int _expr9 = atomicAnd(_group_0_binding_0.atom, 5);
tmp = _expr9;
int _expr12 = atomicOr(_group_0_binding_0.atom, 5);
tmp = _expr12;
int _expr15 = atomicXor(_group_0_binding_0.atom, 5);
tmp = _expr15;
int _expr18 = atomicMin(_group_0_binding_0.atom, 5);
tmp = _expr18;
int _expr21 = atomicMax(_group_0_binding_0.atom, 5);
tmp = _expr21;
int _expr24 = atomicExchange(_group_0_binding_0.atom, 5);
tmp = _expr24;
int _e6 = atomicAdd(_group_0_binding_0.atom, 5);
tmp = _e6;
int _e9 = atomicAnd(_group_0_binding_0.atom, 5);
tmp = _e9;
int _e12 = atomicOr(_group_0_binding_0.atom, 5);
tmp = _e12;
int _e15 = atomicXor(_group_0_binding_0.atom, 5);
tmp = _e15;
int _e18 = atomicMin(_group_0_binding_0.atom, 5);
tmp = _e18;
int _e21 = atomicMax(_group_0_binding_0.atom, 5);
tmp = _e21;
int _e24 = atomicExchange(_group_0_binding_0.atom, 5);
tmp = _e24;
_group_0_binding_0.atom = value;
return;
}

View File

@@ -19,8 +19,8 @@ void main() {
foo1 = 1.0;
mat4x4 matrix = _group_0_binding_0.matrix;
uvec2 arr[2] = _group_0_binding_0.arr;
vec4 _expr13 = _group_0_binding_0.matrix[3];
float b = _expr13.x;
vec4 _e13 = _group_0_binding_0.matrix[3];
float b = _e13.x;
int a = _group_0_binding_0.data[(uint(_group_0_binding_0.data.length()) - 2u)];
_group_0_binding_0.matrix[1][2] = 1.0;
_group_0_binding_0.matrix = mat4x4(vec4(0.0), vec4(1.0), vec4(2.0), vec4(3.0));

View File

@@ -45,112 +45,112 @@ void main() {
if ((index >= 1500u)) {
return;
}
vec2 _expr10 = _group_0_binding_1.particles[index].pos;
vPos = _expr10;
vec2 _expr15 = _group_0_binding_1.particles[index].vel;
vVel = _expr15;
vec2 _e10 = _group_0_binding_1.particles[index].pos;
vPos = _e10;
vec2 _e15 = _group_0_binding_1.particles[index].vel;
vVel = _e15;
cMass = vec2(0.0, 0.0);
cVel = vec2(0.0, 0.0);
colVel = vec2(0.0, 0.0);
bool loop_init = true;
while(true) {
if (!loop_init) {
uint _expr86 = i;
i = (_expr86 + 1u);
uint _e86 = i;
i = (_e86 + 1u);
}
loop_init = false;
uint _expr37 = i;
if ((_expr37 >= 1500u)) {
uint _e37 = i;
if ((_e37 >= 1500u)) {
break;
}
uint _expr39 = i;
if ((_expr39 == index)) {
uint _e39 = i;
if ((_e39 == index)) {
continue;
}
uint _expr42 = i;
vec2 _expr45 = _group_0_binding_1.particles[_expr42].pos;
pos = _expr45;
uint _expr47 = i;
vec2 _expr50 = _group_0_binding_1.particles[_expr47].vel;
vel = _expr50;
vec2 _expr51 = pos;
vec2 _expr52 = vPos;
float _expr55 = _group_0_binding_0.rule1Distance;
if ((distance(_expr51, _expr52) < _expr55)) {
vec2 _expr57 = cMass;
vec2 _expr58 = pos;
cMass = (_expr57 + _expr58);
int _expr60 = cMassCount;
cMassCount = (_expr60 + 1);
uint _e42 = i;
vec2 _e45 = _group_0_binding_1.particles[_e42].pos;
pos = _e45;
uint _e47 = i;
vec2 _e50 = _group_0_binding_1.particles[_e47].vel;
vel = _e50;
vec2 _e51 = pos;
vec2 _e52 = vPos;
float _e55 = _group_0_binding_0.rule1Distance;
if ((distance(_e51, _e52) < _e55)) {
vec2 _e57 = cMass;
vec2 _e58 = pos;
cMass = (_e57 + _e58);
int _e60 = cMassCount;
cMassCount = (_e60 + 1);
}
vec2 _expr63 = pos;
vec2 _expr64 = vPos;
float _expr67 = _group_0_binding_0.rule2Distance;
if ((distance(_expr63, _expr64) < _expr67)) {
vec2 _expr69 = colVel;
vec2 _expr70 = pos;
vec2 _expr71 = vPos;
colVel = (_expr69 - (_expr70 - _expr71));
vec2 _e63 = pos;
vec2 _e64 = vPos;
float _e67 = _group_0_binding_0.rule2Distance;
if ((distance(_e63, _e64) < _e67)) {
vec2 _e69 = colVel;
vec2 _e70 = pos;
vec2 _e71 = vPos;
colVel = (_e69 - (_e70 - _e71));
}
vec2 _expr74 = pos;
vec2 _expr75 = vPos;
float _expr78 = _group_0_binding_0.rule3Distance;
if ((distance(_expr74, _expr75) < _expr78)) {
vec2 _expr80 = cVel;
vec2 _expr81 = vel;
cVel = (_expr80 + _expr81);
int _expr83 = cVelCount;
cVelCount = (_expr83 + 1);
vec2 _e74 = pos;
vec2 _e75 = vPos;
float _e78 = _group_0_binding_0.rule3Distance;
if ((distance(_e74, _e75) < _e78)) {
vec2 _e80 = cVel;
vec2 _e81 = vel;
cVel = (_e80 + _e81);
int _e83 = cVelCount;
cVelCount = (_e83 + 1);
}
}
int _expr89 = cMassCount;
if ((_expr89 > 0)) {
vec2 _expr92 = cMass;
int _expr93 = cMassCount;
vec2 _expr97 = vPos;
cMass = ((_expr92 / vec2(float(_expr93))) - _expr97);
int _e89 = cMassCount;
if ((_e89 > 0)) {
vec2 _e92 = cMass;
int _e93 = cMassCount;
vec2 _e97 = vPos;
cMass = ((_e92 / vec2(float(_e93))) - _e97);
}
int _expr99 = cVelCount;
if ((_expr99 > 0)) {
vec2 _expr102 = cVel;
int _expr103 = cVelCount;
cVel = (_expr102 / vec2(float(_expr103)));
int _e99 = cVelCount;
if ((_e99 > 0)) {
vec2 _e102 = cVel;
int _e103 = cVelCount;
cVel = (_e102 / vec2(float(_e103)));
}
vec2 _expr107 = vVel;
vec2 _expr108 = cMass;
float _expr110 = _group_0_binding_0.rule1Scale;
vec2 _expr113 = colVel;
float _expr115 = _group_0_binding_0.rule2Scale;
vec2 _expr118 = cVel;
float _expr120 = _group_0_binding_0.rule3Scale;
vVel = (((_expr107 + (_expr108 * _expr110)) + (_expr113 * _expr115)) + (_expr118 * _expr120));
vec2 _expr123 = vVel;
vec2 _expr125 = vVel;
vVel = (normalize(_expr123) * clamp(length(_expr125), 0.0, 0.1));
vec2 _expr131 = vPos;
vec2 _expr132 = vVel;
float _expr134 = _group_0_binding_0.deltaT;
vPos = (_expr131 + (_expr132 * _expr134));
vec2 _expr137 = vPos;
if ((_expr137.x < -1.0)) {
vec2 _e107 = vVel;
vec2 _e108 = cMass;
float _e110 = _group_0_binding_0.rule1Scale;
vec2 _e113 = colVel;
float _e115 = _group_0_binding_0.rule2Scale;
vec2 _e118 = cVel;
float _e120 = _group_0_binding_0.rule3Scale;
vVel = (((_e107 + (_e108 * _e110)) + (_e113 * _e115)) + (_e118 * _e120));
vec2 _e123 = vVel;
vec2 _e125 = vVel;
vVel = (normalize(_e123) * clamp(length(_e125), 0.0, 0.1));
vec2 _e131 = vPos;
vec2 _e132 = vVel;
float _e134 = _group_0_binding_0.deltaT;
vPos = (_e131 + (_e132 * _e134));
vec2 _e137 = vPos;
if ((_e137.x < -1.0)) {
vPos.x = 1.0;
}
vec2 _expr143 = vPos;
if ((_expr143.x > 1.0)) {
vec2 _e143 = vPos;
if ((_e143.x > 1.0)) {
vPos.x = -1.0;
}
vec2 _expr149 = vPos;
if ((_expr149.y < -1.0)) {
vec2 _e149 = vPos;
if ((_e149.y < -1.0)) {
vPos.y = 1.0;
}
vec2 _expr155 = vPos;
if ((_expr155.y > 1.0)) {
vec2 _e155 = vPos;
if ((_e155.y > 1.0)) {
vPos.y = -1.0;
}
vec2 _expr164 = vPos;
_group_0_binding_2.particles[index].pos = _expr164;
vec2 _expr168 = vVel;
_group_0_binding_2.particles[index].vel = _expr168;
vec2 _e164 = vPos;
_group_0_binding_2.particles[index].pos = _e164;
vec2 _e168 = vVel;
_group_0_binding_2.particles[index].vel = _e168;
return;
}

View File

@@ -28,15 +28,15 @@ void main() {
out1.perspective = vec4(729.0, 1000.0, 1331.0, 1728.0);
out1.perspective_centroid = 2197.0;
out1.perspective_sample = 2744.0;
FragmentInput _expr30 = out1;
gl_Position = _expr30.position;
_vs2fs_location0 = _expr30.flat1;
_vs2fs_location1 = _expr30.linear;
_vs2fs_location2 = _expr30.linear_centroid;
_vs2fs_location3 = _expr30.linear_sample;
_vs2fs_location4 = _expr30.perspective;
_vs2fs_location5 = _expr30.perspective_centroid;
_vs2fs_location6 = _expr30.perspective_sample;
FragmentInput _e30 = out1;
gl_Position = _e30.position;
_vs2fs_location0 = _e30.flat1;
_vs2fs_location1 = _e30.linear;
_vs2fs_location2 = _e30.linear_centroid;
_vs2fs_location3 = _e30.linear_sample;
_vs2fs_location4 = _e30.perspective;
_vs2fs_location5 = _e30.perspective_centroid;
_vs2fs_location6 = _e30.perspective_sample;
return;
}

View File

@@ -30,9 +30,9 @@ int unary() {
}
void main() {
vec4 _expr3 = builtins();
vec4 _expr4 = splat();
int _expr5 = unary();
vec4 _e3 = builtins();
vec4 _e4 = splat();
int _e5 = unary();
return;
}

View File

@@ -29,10 +29,10 @@ layout(location = 0) in vec2 _p2vs_location0;
layout(location = 0) smooth out vec2 _vs2fs_location0;
void main2() {
vec2 _expr12 = a_uv1;
v_uv = _expr12;
vec2 _expr13 = a_pos1;
perVertexStruct.gen_gl_Position = vec4(_expr13.x, _expr13.y, 0.0, 1.0);
vec2 _e12 = a_uv1;
v_uv = _e12;
vec2 _e13 = a_pos1;
perVertexStruct.gen_gl_Position = vec4(_e13.x, _e13.y, 0.0, 1.0);
return;
}
@@ -42,12 +42,12 @@ void main() {
a_uv1 = a_uv;
a_pos1 = a_pos;
main2();
vec2 _expr10 = v_uv;
vec4 _expr11 = perVertexStruct.gen_gl_Position;
float _expr12 = perVertexStruct.gen_gl_PointSize;
float _expr13[1] = perVertexStruct.gen_gl_ClipDistance;
float _expr14[1] = perVertexStruct.gen_gl_CullDistance;
type10 _tmp_return = type10(_expr10, _expr11, _expr12, _expr13, _expr14);
vec2 _e10 = v_uv;
vec4 _e11 = perVertexStruct.gen_gl_Position;
float _e12 = perVertexStruct.gen_gl_PointSize;
float _e13[1] = perVertexStruct.gen_gl_ClipDistance;
float _e14[1] = perVertexStruct.gen_gl_CullDistance;
type10 _tmp_return = type10(_e10, _e11, _e12, _e13, _e14);
_vs2fs_location0 = _tmp_return.member;
gl_Position = _tmp_return.gen_gl_Position;
gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w);

View File

@@ -29,8 +29,8 @@ float fetch_shadow(uint light_id, vec4 homogeneous_coords) {
}
vec2 flip_correction = vec2(0.5, -0.5);
vec2 light_local = (((homogeneous_coords.xy * flip_correction) / vec2(homogeneous_coords.w)) + vec2(0.5, 0.5));
float _expr26 = textureGrad(_group_0_binding_2, vec4(light_local, int(light_id), (homogeneous_coords.z / homogeneous_coords.w)), vec2(0,0), vec2(0,0));
return _expr26;
float _e26 = textureGrad(_group_0_binding_2, vec4(light_local, int(light_id), (homogeneous_coords.z / homogeneous_coords.w)), vec2(0,0), vec2(0,0));
return _e26;
}
void main() {
@@ -42,26 +42,26 @@ void main() {
bool loop_init = true;
while(true) {
if (!loop_init) {
uint _expr40 = i;
i = (_expr40 + 1u);
uint _e40 = i;
i = (_e40 + 1u);
}
loop_init = false;
uint _expr12 = i;
uvec4 _expr14 = _group_0_binding_0.num_lights;
if ((_expr12 >= min(_expr14.x, 10u))) {
uint _e12 = i;
uvec4 _e14 = _group_0_binding_0.num_lights;
if ((_e12 >= min(_e14.x, 10u))) {
break;
}
uint _expr19 = i;
Light light = _group_0_binding_1.data[_expr19];
uint _expr22 = i;
float _expr25 = fetch_shadow(_expr22, (light.proj * position));
uint _e19 = i;
Light light = _group_0_binding_1.data[_e19];
uint _e22 = i;
float _e25 = fetch_shadow(_e22, (light.proj * position));
vec3 light_dir = normalize((light.pos.xyz - position.xyz));
float diffuse = max(0.0, dot(normal, light_dir));
vec3 _expr34 = color;
color = (_expr34 + ((_expr25 * diffuse) * light.color.xyz));
vec3 _e34 = color;
color = (_e34 + ((_e25 * diffuse) * light.color.xyz));
}
vec3 _expr43 = color;
_fs2p_location0 = vec4(_expr43, 1.0);
vec3 _e43 = color;
_fs2p_location0 = vec4(_e43, 1.0);
return;
}

View File

@@ -15,8 +15,8 @@ layout(location = 0) out vec4 _fs2p_location0;
void main() {
VertexOutput in1 = VertexOutput(gl_FragCoord, _vs2fs_location0);
vec4 _expr5 = texture(_group_0_binding_1, vec3(in1.uv));
_fs2p_location0 = _expr5;
vec4 _e5 = texture(_group_0_binding_1, vec3(in1.uv));
_fs2p_location0 = _e5;
return;
}

View File

@@ -21,15 +21,15 @@ void main() {
int tmp2_ = 0;
tmp1_ = (int(vertex_index) / 2);
tmp2_ = (int(vertex_index) & 1);
int _expr10 = tmp1_;
int _expr16 = tmp2_;
vec4 pos = vec4(((float(_expr10) * 4.0) - 1.0), ((float(_expr16) * 4.0) - 1.0), 0.0, 1.0);
vec4 _expr27 = _group_0_binding_0.view[0];
vec4 _expr31 = _group_0_binding_0.view[1];
vec4 _expr35 = _group_0_binding_0.view[2];
mat3x3 inv_model_view = transpose(mat3x3(_expr27.xyz, _expr31.xyz, _expr35.xyz));
mat4x4 _expr40 = _group_0_binding_0.proj_inv;
vec4 unprojected = (_expr40 * pos);
int _e10 = tmp1_;
int _e16 = tmp2_;
vec4 pos = vec4(((float(_e10) * 4.0) - 1.0), ((float(_e16) * 4.0) - 1.0), 0.0, 1.0);
vec4 _e27 = _group_0_binding_0.view[0];
vec4 _e31 = _group_0_binding_0.view[1];
vec4 _e35 = _group_0_binding_0.view[2];
mat3x3 inv_model_view = transpose(mat3x3(_e27.xyz, _e31.xyz, _e35.xyz));
mat4x4 _e40 = _group_0_binding_0.proj_inv;
vec4 unprojected = (_e40 * pos);
VertexOutput _tmp_return = VertexOutput(pos, (inv_model_view * unprojected.xyz));
gl_Position = _tmp_return.position;
_vs2fs_location0 = _tmp_return.uv;

View File

@@ -8,13 +8,13 @@ uniform highp sampler2D _group_0_binding_0;
layout(location = 0) out vec4 _fs2p_location0;
vec4 test(highp sampler2D Passed_Texture) {
vec4 _expr7 = texture(Passed_Texture, vec2(vec2(0.0, 0.0)));
return _expr7;
vec4 _e7 = texture(Passed_Texture, vec2(vec2(0.0, 0.0)));
return _e7;
}
void main() {
vec4 _expr2 = test(_group_0_binding_0);
_fs2p_location0 = _expr2;
vec4 _e2 = test(_group_0_binding_0);
_fs2p_location0 = _e2;
return;
}