Skip to content

Conversation

@riccardobl
Copy link
Member

@riccardobl riccardobl commented Jan 25, 2026

This is an experimental ANGLE backend for jMonkeyEngine.
It is implemented by extending the LWJGL3 backend to provide a GLES renderer that links against libEGL and libGLESv2 built from ANGLE here: https://github.com/riccardobl/angle-build.

The idea is to target the GLES platform provided by ANGLE, which then translates API calls to the best graphics API available on the host platform. This lets ANGLE handle broken or deprecated drivers and implementation-specific quirks, rather than us. Additionally, it helps unify desktop and Android code paths.

I tested this on fedora 43 and managed to get the tests to run, with the following issues:

Vulkan backend doesn't start

If i try to force the vulkan backend on angle
( "ANGLE_DEFAULT_PLATFORM": "vulkan" in launcher envs), it fails to start with error:

ERR: Display.cpp:1097 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../src/libANGLE/renderer/vulkan/vk_renderer.cpp, initialize:2422.

Still unsure why. If ANGLE_DEFAULT_PLATFORM is not specified, angle falls back to the gl backend and everything works.

Gamma correction issue

Gamma correction is not applied to the default framebuffer buffer, i suspect it needs to be handled manually, like in webgl.

@github-actions
Copy link

github-actions bot commented Jan 25, 2026

🖼️ Screenshot tests have failed.

The purpose of these tests is to ensure that changes introduced in this PR don't break visual features. They are visual unit tests.

📄 Where to find the report:

  • Go to the (failed run) > Summary > Artifacts > screenshot-test-report
  • Download the zip and open jme3-screenshot-tests/build/reports/ScreenshotDiffReport.html

⚠️ If you didn't expect to change anything visual:
Fix your changes so the screenshot tests pass.

If you did mean to change things:
Review the replacement images in jme3-screenshot-tests/build/changed-images to make sure they really are improvements and then replace and commit the replacement images at jme3-screenshot-tests/src/test/resources.

If you are creating entirely new tests:
Find the new images in jme3-screenshot-tests/build/changed-images and commit the new images at jme3-screenshot-tests/src/test/resources.

Note; it is very important that the committed reference images are created on the build pipeline, locally created images are not reliable. Similarly tests will fail locally but you can look at the report to check they are "visually similar".

See https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-screenshot-tests/README.md for more information

Contact @richardTingle (aka richtea) for guidance if required

@riccardobl riccardobl changed the title Angle backend (Work in progress) Angle GLES backend for desktop (Work in progress) Jan 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant