We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
[We're looking to file some possible bugs related to compilation of shaders for Mali. Please let us know if there's a different, preferable place to do so.]
The following issue is also logged here, which links to the relevant files.
Platform details are at the end.
This fragment shader:
https://raw.githubusercontent.com/mc-imperial/shader-compiler-bugs/master/ARM-Mali-T628-Chromebook-WebGL/wrong_images/sm… https://raw.githubusercontent.com/mc-imperial/shader-compiler-bugs/master/ARM-Mali-T628-Chromebook-WebGL/wrong_images/small-v100-webgl-804943b2b630b741_inv_variant_4/variant.frag
leads to an image like this being rendered on several GPUs that we have been testing (including an Intel GPU):
On our Mali GPU, via WebGL with Chrome, we find that this image is rendered:
Furthermore, we have created a shader that is almost identical to the one linked to above, except that a reference to variable k has been changed to (injectionSwitch.x > injectionSwitch.y ? 1.0 : k). This should have no effect on rendering if we set injectionSwitch to the vector (0.0, 1.0), because the condition in the ternary will evaluate to false.
k
(injectionSwitch.x > injectionSwitch.y ? 1.0 : k)
injectionSwitch
(0.0, 1.0)
Here is the modified shader:
https://raw.githubusercontent.com/mc-imperial/shader-compiler-bugs/master/ARM-Mali-T628-Chromebook-WebGL/wrong_images/sm…
When we set injectionSwitch to (0.0, 1.0) and render on Mali using the modified shader, we get this image:
which is visually very similar to the image that we see rendered on other GPUs we tried.
We speculate that a compiler bug is being triggered when the original shader is used for rendering, and that our modification somehow masks the compiler bug.
Platform details:
- Samsung Chromebook
- Chrome OS
* Version: 54.0.2840.101
* Platform: 8743.85.0 (Official Build) stable-channel peach_pit
* Firmware: Google_Peach_Pit.4482.95.0
- GPU: ARM Mali-T628
Version and renderer info obtained via WebGL API: