| SKIP: FAILED |
| |
| #version 310 es |
| precision mediump float; |
| |
| struct RenderParams { |
| mat4 modelViewProjectionMatrix; |
| vec3 right; |
| vec3 up; |
| }; |
| |
| layout (binding = 0) uniform RenderParams_1 { |
| mat4 modelViewProjectionMatrix; |
| vec3 right; |
| vec3 up; |
| } render_params; |
| |
| struct VertexInput { |
| vec3 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct VertexOutput { |
| vec4 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct tint_symbol_4 { |
| vec3 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct tint_symbol_5 { |
| vec4 color; |
| vec2 quad_pos; |
| vec4 position; |
| }; |
| |
| VertexOutput vs_main_inner(VertexInput tint_symbol) { |
| vec3 quad_pos = (mat2x3(render_params.right, render_params.up) * tint_symbol.quad_pos); |
| vec3 position = (tint_symbol.position + (quad_pos * 0.01f)); |
| VertexOutput tint_symbol_1 = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec2(0.0f, 0.0f)); |
| tint_symbol_1.position = (render_params.modelViewProjectionMatrix * vec4(position, 1.0f)); |
| tint_symbol_1.color = tint_symbol.color; |
| tint_symbol_1.quad_pos = tint_symbol.quad_pos; |
| return tint_symbol_1; |
| } |
| |
| struct tint_symbol_7 { |
| vec4 color; |
| vec2 quad_pos; |
| vec4 position; |
| }; |
| struct tint_symbol_8 { |
| vec4 value; |
| }; |
| struct SimulationParams { |
| float deltaTime; |
| vec4 seed; |
| }; |
| struct Particle { |
| vec3 position; |
| float lifetime; |
| vec4 color; |
| vec3 velocity; |
| }; |
| struct tint_symbol_10 { |
| uvec3 GlobalInvocationID; |
| }; |
| struct UBO { |
| uint width; |
| }; |
| struct tint_symbol_12 { |
| uvec3 coord; |
| }; |
| struct tint_symbol_14 { |
| uvec3 coord; |
| }; |
| |
| tint_symbol_5 vs_main(tint_symbol_4 tint_symbol_3) { |
| VertexInput tint_symbol_15 = VertexInput(tint_symbol_3.position, tint_symbol_3.color, tint_symbol_3.quad_pos); |
| VertexOutput inner_result = vs_main_inner(tint_symbol_15); |
| tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f)); |
| wrapper_result.position = inner_result.position; |
| wrapper_result.color = inner_result.color; |
| wrapper_result.quad_pos = inner_result.quad_pos; |
| return wrapper_result; |
| } |
| in vec3 position; |
| in vec4 color; |
| in vec2 quad_pos; |
| out vec4 color; |
| out vec2 quad_pos; |
| void main() { |
| tint_symbol_4 inputs; |
| inputs.position = position; |
| inputs.color = color; |
| inputs.quad_pos = quad_pos; |
| tint_symbol_5 outputs; |
| outputs = vs_main(inputs); |
| color = outputs.color; |
| quad_pos = outputs.quad_pos; |
| gl_Position = outputs.position; |
| gl_Position.y = -gl_Position.y; |
| } |
| |
| |
| Error parsing GLSL shader: |
| ERROR: 0:90: 'color' : redefinition |
| ERROR: 1 compilation errors. No code generated. |
| |
| |
| |
| #version 310 es |
| precision mediump float; |
| |
| struct RenderParams { |
| mat4 modelViewProjectionMatrix; |
| vec3 right; |
| vec3 up; |
| }; |
| struct VertexInput { |
| vec3 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct VertexOutput { |
| vec4 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct tint_symbol_4 { |
| vec3 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct tint_symbol_5 { |
| vec4 color; |
| vec2 quad_pos; |
| vec4 position; |
| }; |
| struct tint_symbol_7 { |
| vec4 color; |
| vec2 quad_pos; |
| vec4 position; |
| }; |
| struct tint_symbol_8 { |
| vec4 value; |
| }; |
| |
| vec4 fs_main_inner(VertexOutput tint_symbol) { |
| vec4 color = tint_symbol.color; |
| color.a = (color.a * max((1.0f - length(tint_symbol.quad_pos)), 0.0f)); |
| return color; |
| } |
| |
| struct SimulationParams { |
| float deltaTime; |
| vec4 seed; |
| }; |
| struct Particle { |
| vec3 position; |
| float lifetime; |
| vec4 color; |
| vec3 velocity; |
| }; |
| struct tint_symbol_10 { |
| uvec3 GlobalInvocationID; |
| }; |
| struct UBO { |
| uint width; |
| }; |
| struct tint_symbol_12 { |
| uvec3 coord; |
| }; |
| struct tint_symbol_14 { |
| uvec3 coord; |
| }; |
| |
| tint_symbol_8 fs_main(tint_symbol_7 tint_symbol_6) { |
| VertexOutput tint_symbol_15 = VertexOutput(tint_symbol_6.position, tint_symbol_6.color, tint_symbol_6.quad_pos); |
| vec4 inner_result_1 = fs_main_inner(tint_symbol_15); |
| tint_symbol_8 wrapper_result_1 = tint_symbol_8(vec4(0.0f, 0.0f, 0.0f, 0.0f)); |
| wrapper_result_1.value = inner_result_1; |
| return wrapper_result_1; |
| } |
| in vec4 color; |
| in vec2 quad_pos; |
| out vec4 value; |
| void main() { |
| tint_symbol_7 inputs; |
| inputs.color = color; |
| inputs.quad_pos = quad_pos; |
| inputs.position = gl_FragCoord; |
| tint_symbol_8 outputs; |
| outputs = fs_main(inputs); |
| value = outputs.value; |
| } |
| |
| |
| #version 310 es |
| precision mediump float; |
| |
| vec2 rand_seed = vec2(0.0f, 0.0f); |
| |
| float rand() { |
| rand_seed.x = frac((cos(dot(rand_seed, vec2(23.140779495f, 232.616897583f))) * 136.816802979f)); |
| rand_seed.y = frac((cos(dot(rand_seed, vec2(54.478565216f, 345.841522217f))) * 534.764526367f)); |
| return rand_seed.y; |
| } |
| |
| struct RenderParams { |
| mat4 modelViewProjectionMatrix; |
| vec3 right; |
| vec3 up; |
| }; |
| struct VertexInput { |
| vec3 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct VertexOutput { |
| vec4 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct tint_symbol_4 { |
| vec3 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct tint_symbol_5 { |
| vec4 color; |
| vec2 quad_pos; |
| vec4 position; |
| }; |
| struct tint_symbol_7 { |
| vec4 color; |
| vec2 quad_pos; |
| vec4 position; |
| }; |
| struct tint_symbol_8 { |
| vec4 value; |
| }; |
| struct SimulationParams { |
| float deltaTime; |
| vec4 seed; |
| }; |
| struct Particle { |
| vec3 position; |
| float lifetime; |
| vec4 color; |
| vec3 velocity; |
| }; |
| |
| layout (binding = 0) uniform SimulationParams_1 { |
| float deltaTime; |
| vec4 seed; |
| } sim_params; |
| layout (binding = 1) buffer Particles_1 { |
| Particle particles[]; |
| } data; |
| uniform highp sampler2D tint_symbol_2; |
| |
| struct tint_symbol_10 { |
| uvec3 GlobalInvocationID; |
| }; |
| |
| void simulate_inner(uvec3 GlobalInvocationID) { |
| rand_seed = ((sim_params.seed.xy + vec2(GlobalInvocationID.xy)) * sim_params.seed.zw); |
| uint idx = GlobalInvocationID.x; |
| Particle particle = data.particles[idx]; |
| particle.velocity.z = (particle.velocity.z - (sim_params.deltaTime * 0.5f)); |
| particle.position = (particle.position + (sim_params.deltaTime * particle.velocity)); |
| particle.lifetime = (particle.lifetime - sim_params.deltaTime); |
| particle.color.a = smoothstep(0.0f, 0.5f, particle.lifetime); |
| if ((particle.lifetime < 0.0f)) { |
| ivec2 coord = ivec2(0, 0); |
| { |
| for(int level = (textureQueryLevels(tint_symbol_2); - 1); (level > 0); level = (level - 1)) { |
| vec4 probabilites = texelFetch(tint_symbol_2, coord, level); |
| vec4 value = vec4(rand()); |
| bvec4 mask = (greaterThanEqual(value, vec4(0.0f, probabilites.xyz)) & lessThan(value, probabilites)); |
| coord = (coord * 2); |
| coord.x = (coord.x + (any(mask.yw) ? 1 : 0)); |
| coord.y = (coord.y + (any(mask.zw) ? 1 : 0)); |
| } |
| } |
| vec2 uv = (vec2(coord) / vec2(textureSize(tint_symbol_2, 0))); |
| particle.position = vec3((((uv - 0.5f) * 3.0f) * vec2(1.0f, -1.0f)), 0.0f); |
| particle.color = texelFetch(tint_symbol_2, coord, 0); |
| particle.velocity.x = ((rand() - 0.5f) * 0.100000001f); |
| particle.velocity.y = ((rand() - 0.5f) * 0.100000001f); |
| particle.velocity.z = (rand() * 0.300000012f); |
| particle.lifetime = (0.5f + (rand() * 2.0f)); |
| } |
| data.particles[idx] = particle; |
| } |
| |
| struct UBO { |
| uint width; |
| }; |
| struct tint_symbol_12 { |
| uvec3 coord; |
| }; |
| struct tint_symbol_14 { |
| uvec3 coord; |
| }; |
| |
| layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; |
| void simulate(tint_symbol_10 tint_symbol_9) { |
| simulate_inner(tint_symbol_9.GlobalInvocationID); |
| return; |
| } |
| void main() { |
| tint_symbol_10 inputs; |
| inputs.GlobalInvocationID = gl_GlobalInvocationID; |
| simulate(inputs); |
| } |
| |
| |
| Error parsing GLSL shader: |
| ERROR: 0:7: 'frac' : no matching overloaded function found |
| ERROR: 0:7: '' : compilation terminated |
| ERROR: 2 compilation errors. No code generated. |
| |
| |
| |
| #version 310 es |
| precision mediump float; |
| |
| struct RenderParams { |
| mat4 modelViewProjectionMatrix; |
| vec3 right; |
| vec3 up; |
| }; |
| struct VertexInput { |
| vec3 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct VertexOutput { |
| vec4 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct tint_symbol_4 { |
| vec3 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct tint_symbol_5 { |
| vec4 color; |
| vec2 quad_pos; |
| vec4 position; |
| }; |
| struct tint_symbol_7 { |
| vec4 color; |
| vec2 quad_pos; |
| vec4 position; |
| }; |
| struct tint_symbol_8 { |
| vec4 value; |
| }; |
| struct SimulationParams { |
| float deltaTime; |
| vec4 seed; |
| }; |
| struct Particle { |
| vec3 position; |
| float lifetime; |
| vec4 color; |
| vec3 velocity; |
| }; |
| struct tint_symbol_10 { |
| uvec3 GlobalInvocationID; |
| }; |
| struct UBO { |
| uint width; |
| }; |
| |
| layout (binding = 3) uniform UBO_1 { |
| uint width; |
| } ubo; |
| layout (binding = 4) buffer Buffer_1 { |
| float weights[]; |
| } buf_in; |
| layout (binding = 5) buffer Buffer_2 { |
| float weights[]; |
| } buf_out; |
| uniform highp sampler2D tex_in; |
| |
| struct tint_symbol_12 { |
| uvec3 coord; |
| }; |
| |
| void import_level_inner(uvec3 coord) { |
| uint offset = (coord.x + (coord.y * ubo.width)); |
| buf_out.weights[offset] = texelFetch(tex_in, ivec2(coord.xy), 0).w; |
| } |
| |
| struct tint_symbol_14 { |
| uvec3 coord; |
| }; |
| |
| layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; |
| void import_level(tint_symbol_12 tint_symbol_11) { |
| import_level_inner(tint_symbol_11.coord); |
| return; |
| } |
| void main() { |
| tint_symbol_12 inputs; |
| inputs.coord = gl_GlobalInvocationID; |
| import_level(inputs); |
| } |
| |
| |
| #version 310 es |
| precision mediump float; |
| |
| struct RenderParams { |
| mat4 modelViewProjectionMatrix; |
| vec3 right; |
| vec3 up; |
| }; |
| struct VertexInput { |
| vec3 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct VertexOutput { |
| vec4 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct tint_symbol_4 { |
| vec3 position; |
| vec4 color; |
| vec2 quad_pos; |
| }; |
| struct tint_symbol_5 { |
| vec4 color; |
| vec2 quad_pos; |
| vec4 position; |
| }; |
| struct tint_symbol_7 { |
| vec4 color; |
| vec2 quad_pos; |
| vec4 position; |
| }; |
| struct tint_symbol_8 { |
| vec4 value; |
| }; |
| struct SimulationParams { |
| float deltaTime; |
| vec4 seed; |
| }; |
| struct Particle { |
| vec3 position; |
| float lifetime; |
| vec4 color; |
| vec3 velocity; |
| }; |
| struct tint_symbol_10 { |
| uvec3 GlobalInvocationID; |
| }; |
| struct UBO { |
| uint width; |
| }; |
| |
| layout (binding = 3) uniform UBO_1 { |
| uint width; |
| } ubo; |
| layout (binding = 4) buffer Buffer_1 { |
| float weights[]; |
| } buf_in; |
| layout (binding = 5) buffer Buffer_2 { |
| float weights[]; |
| } buf_out; |
| uniform highp writeonly image2D tex_out; |
| |
| struct tint_symbol_12 { |
| uvec3 coord; |
| }; |
| struct tint_symbol_14 { |
| uvec3 coord; |
| }; |
| |
| void export_level_inner(uvec3 coord) { |
| if (all(lessThan(coord.xy, uvec2(imageSize(tex_out))))) { |
| uint dst_offset = (coord.x + (coord.y * ubo.width)); |
| uint src_offset = ((coord.x * 2u) + ((coord.y * 2u) * ubo.width)); |
| float a_1 = buf_in.weights[(src_offset + 0u)]; |
| float b = buf_in.weights[(src_offset + 1u)]; |
| float c = buf_in.weights[((src_offset + 0u) + ubo.width)]; |
| float d = buf_in.weights[((src_offset + 1u) + ubo.width)]; |
| float sum = dot(vec4(a_1, b, c, d), vec4(1.0f)); |
| buf_out.weights[dst_offset] = (sum / 4.0f); |
| vec4 probabilities = (vec4(a_1, (a_1 + b), ((a_1 + b) + c), sum) / max(sum, 0.0001f)); |
| imageStore(tex_out, ivec2(coord.xy), probabilities); |
| } |
| } |
| |
| layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; |
| void export_level(tint_symbol_14 tint_symbol_13) { |
| export_level_inner(tint_symbol_13.coord); |
| return; |
| } |
| void main() { |
| tint_symbol_14 inputs; |
| inputs.coord = gl_GlobalInvocationID; |
| export_level(inputs); |
| } |
| |
| |