We ran into a SIGSEGV on Samsung Galaxy J7 (SM-730F) running android 9 (Kernel version 3.18.91 - 16526088), which after some debugging we finally found out was in glCompilerShader . (OpenGL ES 3.2 v1.r28p0-01rel0.###other-sha0123456789ABCDEF0###) . After some more debugging we figured out it's because we have a loop that does 9 iterations. Changing this to 8 or manually unrolling works.
Relevant part of the shader code (it's generated by a tool, weights and offsets are arrays of size 9, but with 10 it also crashes)
color = vec3 (ivec3 (0 ,0 ,0 )); i = 9 ; // Change this to 8 and it works _T1 = i; i = (i-1); _T0 = bool(_T1); while(_T0) { color = (color + (texture(Input0,(v.UV + (offsets[int(uint (i))] * vec2 (bloom_width, bloom_height)))) .xyz * vec3 (weights[int(uint (i))],weights[int(uint (i))],weights[int(uint (i))]))); _T2 = i; i = (i-1); _T0 = bool(_T2); }
Thanks for the bug report, I'll raise this with our driver team.
If it's possible to share a full shader it would help us more quickly investigate - please email to developer@arm.com if you don't want to share it publicly.
Kind regards, Pete
I've just mailed the vertex and fragment shader to the provided email address.