openframeworks / openframeworks/openFrameworks

rendering issue with GLES 2.0 on Android when using VBO on some devices

Open
#6,177 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.