Conversation
… disable it on GL4ES
Some GL ES drivers running under GL4ES may be very picky about typing and GL4ES still has to implement casting.
texture3D isn't supported by GL ES, so GL4ES cannot support it
illwieckz
commented
Feb 18, 2026
| { | ||
| Log::Debug( "Building concatenated %s program.", shaderTypeName[ concatenated.type ] ); | ||
| // WIP | ||
| // Log::Warn( "Concatenated source:\n<<<\n%s\n>>>", concatenated.shaderSource ); |
illwieckz
commented
Feb 18, 2026
| "Disable mat3x2 GLSL support on GL4ES", | ||
| Cvar::NONE, true ); | ||
| static Cvar::Cvar<bool> workaround_glDriver_gl4es_disableTexture3D( | ||
| "workaround.glDriver.gl4es.disableTexture3D", |
Member
Author
There was a problem hiding this comment.
Maybe rename glDriver as glTranslator, as we would also be able to detect the underlying driver and route code from that detection.
Member
Author
|
On a side note, as recently discussed on the Chat, this may help us to port the game to Android. There are three kinds of requirements for Android:
This assuming a Linux-like environment on Android, like Termux. Direct Android integration would require more work. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I flag it as draft to make it obvious I'm not intending to merge this for the 0.56 release.
I'm just pushing it because it's somewhat usable and as Linus Torvalds said once:
This implements some compatibility code path making possible to run the Dæmon engine and the Unvanquished game on OpenGL ES hardware using the GL4ES translation layer.
In fact this basically implements some compatibility code path for GL ES 2 (what currently targets GL4ES) for when GL4ES isn't able to translate OpenGL to GL ES because of GL ES limitation.
The purpose of this is to allow me to test the engine on more hardware. I used this to confirm the bug we observe on PowerVR-derivated hardware like Apple AGX/Moore Threads is indeed reproducible on PowerVR:
The only Imagination-branded PowerVR device I own is soldered on a RISC-V board, and while there is a Vulkan Mesa driver being on development for it (purposed to be a backend for the Mesa zink OpenGL translation layer), the RISC-V architecture of the said board is very new and then the whole Linux support is experimental and so getting the game running on GL4ES is far less work than doing platform-enablement at the whole distro level. So that allows me to use the proprietary OpenGL ES Imagination driver for PowerVR which is bundled with the distro provided for the board (the Proprietary Imagination Vulkan driver isn't featureful enough to run Zink). I even don't have to rebuild neither the kernel, neither Mesa!
This also brings more rewrite of existing compatibility code in a better way.
I started to implement ways to detect the underlying hardware when running API translators, this may be extended to things like VirGL, Zink or Parallels in the future.
GL4ES actually added such wanted feature on my request:
I have more ideas for some rework on the driver/hardware detection (especially moving things like
TRANSLATORto a different variable thanHARDWARE).So this doesn't only benefit GL4ES and PowerVR.