When I execute
int temp2 = temp1 * 65536;
in my vertex shader on my old Xperia J smart phone (about 8 or so years old), I get a shader compilation error - unfortunately the API does not display the reason for the error.
But when I run the same code on my modern smart phone I get no compilation error.
A work around on the old phone is to use
int temp2 = temp1 * int(65536.0);
instead.
I am using precision highp float;
and I have tried precision highp int;
but that didn't solve the problem.
Any info on why this is the case? Maybe it's just a bug from the earlier GLSL implementations?
Another workaround I have thought about but not yet tried is just uploading 65536
as an integer uniform
.