Skip to content

Build gles3 and gles2 and EGL on arm linux with VideoCore GPU (Raspberry Pi)#492

Open
dkonar wants to merge 20 commits intoskylersaleh:devfrom
dkonar:support-gles3-on-linux
Open

Build gles3 and gles2 and EGL on arm linux with VideoCore GPU (Raspberry Pi)#492
dkonar wants to merge 20 commits intoskylersaleh:devfrom
dkonar:support-gles3-on-linux

Conversation

@dkonar
Copy link
Copy Markdown

@dkonar dkonar commented Feb 2, 2025

Builds and runs smoothly on Raspberry Pi 5

@dkonar dkonar force-pushed the support-gles3-on-linux branch from 36643cc to c8b4c86 Compare February 14, 2025 19:54
@skylersaleh
Copy link
Copy Markdown
Owner

Thanks for submitting this!

Could you give a shot at creating a github workflow for building the Raspberry Pi variant, so that we can make sure this target stays working through our CI? You can reference the existing workflow files here: https://github.com/skylersaleh/SkyEmu/tree/dev/.github/workflows

@dkonar
Copy link
Copy Markdown
Author

dkonar commented Feb 17, 2025

So for the action we can do :
OpenGLES3/EGL on arm64 Linux (Pi 3,4,5)

Other possibilities are:
OpenGLES2/EGL on arm64 Linux (Pi Zero 2)
OpenGL 3.x on arm64 Linux is possible on like a Snapdragon X Elite but not a common setup

Anyway will probably remove the GPU detection code and just have explicit options

@skylersaleh
Copy link
Copy Markdown
Owner

If GLES2.0 works reliably on the Pi 3-5, it might be the way to go.

I don't use any features that OpenGL ES 3.x provides and the GLES 2.x path should work very similarly to the WebGL path which gets a lot of testing.

@skylersaleh
Copy link
Copy Markdown
Owner

skylersaleh commented Feb 18, 2025

WRT, the broken ios, android, and web builds. There is some patches in sokol_app (and maybe sokol_gfx) that never made it upstream. You'll have to port them to the updated versions of the libraries if you want to upgrade the library versions.

The patches should be pretty simple and easy to pull out by diffing the source files in my repo against the upstream sokol source code of the matching release or by looking back at the history of those files in my repo.

@dkonar
Copy link
Copy Markdown
Author

dkonar commented Feb 22, 2025

The IOS and Android builds are passing now. The web build is building but failing on permissions on the deploy step (expected?)

@skylersaleh
Copy link
Copy Markdown
Owner

Awesome, so it is ready for me to review?

@dkonar
Copy link
Copy Markdown
Author

dkonar commented Feb 24, 2025

Yes it's ready for review

@dkonar
Copy link
Copy Markdown
Author

dkonar commented Apr 20, 2025

@skylersaleh Are there any blockers on this?

@OFFTKP
Copy link
Copy Markdown
Contributor

OFFTKP commented Apr 20, 2025

@dkonar Basically testing for potential problems with updated Sokol, I tested today on Linux, Android and Windows 11, Sky needs to test on macOS and iOS and then it should be ready

@skylersaleh
Copy link
Copy Markdown
Owner

skylersaleh commented Apr 21, 2025

To add some more details to what offtkp said, here is what we are testing on each of the platforms to check for regressions in the area that is touched by your code change.

  • Android: Does the back button and joystick/gamepad work correctly?
  • Does inertial scrolling work correctly (on iOS/Android)
  • Does keyboard entry work correctly in the cheat editor
  • Does drag and drop to load roms work correctly
  • Does the file picker work correctly
  • Does the UI show up with the correct DPI
  • Are settings saved correctly between launches
  • Does a game play with a smooth Display FPS without stutters

So far the following platforms are looking good:

  • Android
  • Windows
  • Linux
  • iOS
  • macOS
  • Web

I'd also like to see some verification of the arm64 build working on a raspberry pi.

@skylersaleh skylersaleh mentioned this pull request Apr 21, 2025
@dkonar
Copy link
Copy Markdown
Author

dkonar commented Apr 21, 2025

Cool, I can post a video of the build running on a Raspberry Pi 5 in the testing channel on discord

@OFFTKP
Copy link
Copy Markdown
Contributor

OFFTKP commented Apr 23, 2025

Could you please rebase with the latest dev?

@dkonar dkonar force-pushed the support-gles3-on-linux branch from 97f646e to b9c2475 Compare April 25, 2025 19:08
@dkonar
Copy link
Copy Markdown
Author

dkonar commented Apr 25, 2025

Rebased on dev

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