Hi!
I am developing UI application for embedded system running on Mali-400 GPU.
So far I have stumbled with following strange behavior: glDrawElements works differently if called with
different parameters.
Scenario: 8 vertices, 12 indices describing 2 rectangles - dark grey and red above it.
1. Variant 1:
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_SHORT, 0);
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_SHORT, (const GLushort*)(0) + 6);
only dark gray triangle is drawn - where is the red triangle???
2. Variant 2:
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, (const GLushort*)(0) + 6);
only dark gray rectangle is drawn (which is expected) - but where is red triangle???
3. Variant 3:
glDrawElements(GL_TRIANGLES, 12, GL_UNSIGNED_SHORT, (const GLushort*)(0));
both dark and red rectangles are drawn (which is expected result)
Why second glDrawElements call in variants 1 and 2 does not produce anything on screen?
Is it something related to internal pipeline optimizations or am I completely missing something here?
I have checked the same code on another device which is running on PowerVR GPU - everything is
fine there, no questions, that is why I came here to Mali support forums.
Executing grep --binary-files=text REVISION libMali.so on libMali shows some entries of REVISION=467.
I was able to create a reproducible program (for Android) which demonstrates those cases.
All those described scenarios are in jniexports.c:render of attached archive (lines 261-276).
Hi, Erik,
I have just replay or verify your test app on our latest driver, we have not found this issue, could you please provide some specification about your platform? such as android version, platform vendor or something, then I can guess the rough version of our driver version. thank you.
brandon,
I am developing on HiSilicon SoC (model Hi3719CV100). This SoC integrates Mali-400 GPU. Performing a 'grep REVISION' on libMali.so I`ve found REVISION=467 in the output. I suppose it is all info I possess right now. Android version provided by a vendor is 4.2.
sorry to reply late。
This issue could be reproduced on our old driver, while it's fixed on our latest driver, could you please upgrade your system to check if this problem still exists, because when the cell phone manufacturer release new version of system, the new version of hardware drivers will be released at the same time.
Brs
Brandon
Brandon,
Thank you very much for your reply. This is indeed helpful and approves my own thoughts. I will inquire device vendor about driver update.