This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Issue with half float vertex attribute/varying with OpenGL ES on Mali-T628

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.


Parents
  • Hi tksuoran,

    Thank you for raising this with us.

    I would like additional information if possible, to help us figure out the cause of this.

    What Android OS version are you running?

    Could you also run the following adb linux command to determine the Mali driver version?

    adb pull /vendor/lib/egl/libGLES_mali.so ; strings libGLES_mali.so | grep 'r[0-9]p[0-9]-'

    It should report something similar to 'r5p0-02rel0' for example

    In addition, if you could provide a reproducer app, then this would help us with our testing to reproduce your issue.

    Kind Regards,

    Michael McGeagh

Reply
  • Hi tksuoran,

    Thank you for raising this with us.

    I would like additional information if possible, to help us figure out the cause of this.

    What Android OS version are you running?

    Could you also run the following adb linux command to determine the Mali driver version?

    adb pull /vendor/lib/egl/libGLES_mali.so ; strings libGLES_mali.so | grep 'r[0-9]p[0-9]-'

    It should report something similar to 'r5p0-02rel0' for example

    In addition, if you could provide a reproducer app, then this would help us with our testing to reproduce your issue.

    Kind Regards,

    Michael McGeagh

Children