When I pass half float vertex attribute directly (unmodified) to a varying, I get incorrect values in the fragment shader.
This works:
vTexCoord = vec2(1.00001 * TextureCoordinate0.x, 1.0001 * TextureCoordinate0.y);
This does not work:
vTexCoord = vec2(TextureCoordinate0.x, TextureCoordinate0.y);
To me this seems like half float needs to be converted by the vertex shader before interpolation, but shader compiler does not do this when attribute is passed unmodified to the varying in the vertex shader. Also, the very first draw call looks like it comes out correct, but all subsequent frames come out incorrectly.
This happens on SM-T900 with GL renderer reported as Mali-T628.
Where should I report this kind of suspected driver bugs? Is there database of known bugs?
I can work around this { if (gl_renderer.substr(0, 9) == "Mali-T628") halfFloatVertexAttribute = false; } but this it is unfortunate that GL renderer string has no driver version information.
Hi tksuoran,
We have realised that is a problem and have already added version information into GL_RENDERER already, but cannot say when this change will make it to devices already out in the world as we do not control the OTA updates.
Thanks again for your assistance, and I hope we were of help.
Kind Regards,
Michael McGeagh