openframeworks / openframeworks/openFrameworks
rendering issue with GLES 2.0 on Android when using VBO on some devices
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 2.6k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 9
Description
Test was with androidVBOExample which is included with OF. The code was unaltered except to change the main method in main.cpp to follow the standard template for Android:
int main(){
ofGLESWindowSettings settings;
settings.setGLESVersion(2);
ofCreateWindow(settings);
ofRunApp( new ofApp() );
return 0;
}
OF version is compiled from git master commit eacb4a33446c9e1d070100b987feac96b2cdec0a dated Nov. 13, 2018.
The code runs perfectly with settings.setGLESVersion(2) commented out, but if I uncomment that line, I get strange artifacts, flickering, uncomplete draws, etc. on some devices.
Video of 2 devices with settings.setGLESVersion(2) commented out:
https://photos.app.goo.gl/xFxM6a1z3m3wK7377
Video of 2 devices with settings.setGLESVersion(2) uncommented:
https://photos.app.goo.gl/DV3j4WNzrFiNfFiG9
The top unit is a Rockchip RK317x CPU running Android 6.0 (runs fine) and the bottom unit is an Allwinner A33 running Android 4.4 (problematic with ES 2.0 setting). I have tested on some MTK devices running Android 5.1 with similar results as the A33. Other Android examples that do not use VBO run fine on both devices with the ES 2.0 setting.
I confirmed the problem is not with the hardware itself: I downloaded OpenGL ES Examples on the A33 and tried lesson 7, which uses GL ES 2.0 and VBO. It ran perfectly. I confirmed it was using GL ES 2.0 and VBO looking at the OpenGL ES example source code.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the androidVBOExample and its main.cpp, especially the settings.setGLESVersion(2) change described in the report. Reproduce the rendering artifacts on the affected Android devices, compare behavior with and without the GLES 2.0 setting, and confirm that VBO rendering is complete and stable when done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, cpp
- Domain
- computer-graphics, mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100