Skip to content

feat: accelerated paint - #524

Open
1zun4 wants to merge 10 commits into
chromiumembedded:masterfrom
CCBlueX:upstream/feat/accelerated-paint
Open

1zun4 wants to merge 10 commits into
chromiumembedded:masterfrom
CCBlueX:upstream/feat/accelerated-paint

Conversation

@1zun4

@1zun4 1zun4 commented Jan 29, 2026

Copy link
Copy Markdown

CEF supports hardware-accelerated off-screen rendering by enabling shared_texture_enabled via WindowInfo and passing --off-screen-rendering-enabled --shared-texture-enabled as arguments.

Unfortunately, Java CEF lacks bindings for OnAcceleratedPaint, meaning we cannot make use of this feature. This pull request enables this feature when turning shared_texture_enabled to true.

The changes were tested on a forked JCEF version (on Update to CEF 143.0.14+gdd46a37+chromium-143.0.7499.193):

  • On Windows, CEF provides the D3D11 shared texture handle which can be importing using ImportMemoryWin32HandleEXT using OpenGL's EXT_external_objects_win32 which is supported by LWJGL3.

    Example Code

  • On Linux, CEF provides dmabuf planes, which can be imported using EGL and then bound as an OpenGL texture (EGL dmabuf import / EGLImage-based path).

    Example Code

Demo:

540270441-a18fd487-386b-431d-a1f3-f3afa76e6854.1.mp4

Use Squash And Merge.

@magreenblatt

Copy link
Copy Markdown
Collaborator

It would be nice if we could also support Mac. I would be interested in your take on #514 (comment)

@VinyarionHyarmendacil

Copy link
Copy Markdown

This is something I would love to have too, as it would greatly simplify one of my use cases (OSR as an overlay with transparency), and having a "raw texture handle" would be great as that's how I actually need/use the browser texture.

@1zun4

1zun4 commented Sep 23, 2026

Copy link
Copy Markdown
Author

@magreenblatt I've opened a successor PR that implements the renderer part for the JOGL-based renderer, including macOS via IOSurface. Linux is tested, Windows and macOS still need testing on real machines. The same import paths are running in production in our LWJGL renderer, linked in the new PR.

This branch also has the merge with the current master and the macOS IOSurface helper, so either PR can be merged on its own. Closing this one in favor of the new PR is fine by me.

This branch has not been deployed

No deployments
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.

Hardware accelerated off-screen rendering

5 participants