Not sure is this correct place to share bugs but Adreno OpenGL ES driver shipping with Android L developer preview image (LPV79) seems to behave incorrectly with value 0U within shader code.
Device: Nexus 5 @ Android L developer preview image LPV79
Fragment shader code:
#version 300 es out vec4 outColor; void main() { uint value = 0U; if (value == 0U) outColor = vec4(1.0); }
Error observed during GLES30.glCompileShader:
ERROR: 0:4: '=' : cannot convert from 'const int' to 'uint' ERROR: 0:5: '==' : wrong operand types no operation '==' exists that takes a left-hand operand of type 'uint' and a right operand of type 'const int' (or there is no acceptable conversion) ERROR: 2 compilation errors. No code generated.
This is easy to fix with using 0x0U instead for example but letting you know in any case.
Hi..
Thanks for reporting this issue with the 0U constant. We think it's been fixed recently. Do you have an apk that duplicates the problem?
I created a simple test application which pretty much prints shader compile log on LogCat only (produces same error as my original post). APK is created for Android-L due to my only device runs it at the moment. Adding links for pre-built debug APK and zipped Android Studio project for it.
https://www.dropbox.com/s/8qjf8y5w58dvvhu/SignedInt-debug.apk
https://www.dropbox.com/s/prs1g9ubm0zobu3/SignedInt.zip
Appreciate getting the apk. When we try installing, we're getting an "INSTALL_FAILED_OLDER_SDK" . Can you lower the minSDKVersion if possible? We want to check on several devices/API versions..
Ah, my bad, of course it's possible to build this test application using lower API. Here's same application built with SDK 19 (I do not have 18 installed) and minSDK is set to 18.
https://www.dropbox.com/s/s6aubz7v1by9hnr/SignedInt-v18-debug.apk
Sorry for the delay.. We've confirmed this to be fixed in our current software and it should make its way to a commerical release eventually.
Appreciate the help in providing precision test cases.