Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenGL2: Add support for OpenGL ES 2 #664

Merged
merged 3 commits into from
Jun 6, 2024

Conversation

zturtleman
Copy link
Member

This adds support for running the OpenGL2 renderer using the OpenGL ES 2 and 3 APIs.

It doesn't have framebuffer object support yet; used by many features such as auto-exposure/HDR, SSAO, and sun shadows.

I think this ran at 5 FPS on the Raspberry Pi 3B when I tested essentially these changes in 2019. Though I think the issue is how the OpenGL2 renderer operates rather than the ES API usage.

There is nothing actually broken about this OpenGL ES 2 port—just missing features and room for better performance—so it could be merged.

This mainly targets OpenGL ES 2.0 but it also supports compiling GLSL as
ESSL 3.00. It's missing support for framebuffer objects which should be
possible on ES 2. (Though using renderbuffers instead of textures.)

opengl1 cvars that are not supported will display a message and disable
the cvar. This has not been reviewed for new opengl2 cvars. Enabling
cvars may cause rendering issues. Some of the broken cvars may be
possible to support using OpenGL ES 3 features.

The game displays okay with the default cvars.
OpenGL ES 2 is only required to support unsigned short for indexes.
OpenGL ES has a minimum of 8 vertex attributes while desktop OpenGL has
a minimum of 16. Vertex animation uses attributes 10 to 12.
@NuclearMonster NuclearMonster merged commit 9801477 into ioquake:main Jun 6, 2024
3 checks passed
@NuclearMonster
Copy link
Member

Thank you! Performance improvements can come later on, much better to get a start. You're the best.

@zturtleman zturtleman deleted the opengles2 branch June 6, 2024 03:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants