-
-
Notifications
You must be signed in to change notification settings - Fork 776
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
Cannot create a WebGL2 context when using SDL #4724
Comments
Thanks for opening the issue! Unfortunately I'm not an SDL expert, so it's not clear to me exactly what's going on. I did some quick search for the error in the Emscripten repository, and found that Emscripten only allows hard coded default config (code pointer, document). Maybe this can be related somehow, but I am not very sure... |
Hello, thank you for your answer! I think the information you gave me can hopefully point us in a better direction. As far as I can understand, by reading the emscripten documentation, I think that OpenGL and EGL are two different graphics rendering targets.
So the question becomes why does the application try to call |
I opened a discussion about this subject in the Emscripten repository. |
🐛 Bug
I'm trying to run an application that uses SDL and OpenGL. I can get something to work with WebGL1 but not WebGL2
Javascript
C++
will fail with the message: "Could not create EGL context (call to eglCreateContext failed, reporting an error of EGL_BAD_CONFIG)"
However, using Webgl 1 does work (using
canvasElement.getContext("webgl")
and not setting SDL_GL_CONTEXT_MAJOR_VERSION in C++).To Reproduce
Use the attached zip file, and unzip it into
pyodide/packages
.daft_lib.zip
Build it "in tree" with:
PYODIDE_PACKAGES="daft_lib" make
The HTML and C++ files are heavily commented and will produce lots of logs in order to help the diagnostic.
Note: it is possible to switch to WebGL 1, by setting
USE_WEBGL2=false
in _daft_lib_test.html, and commenting out the#define USE_WEBGL2
in_daft_lib_test.html
Expected behavior
I hope it would be possible to use WebGL 2.
Environment
Pyodide Version:
main branch, last commit:
commit d32e376 (origin/main, origin/HEAD)
Author: Hood Chatham [email protected]
Date: Tue Apr 23 15:01:33 2024 +0200
Browser version:
Fails with Firefox and Chromium on Linux.
Fails with Firefox and Safari on Mac OS
Any other relevant information:
I already compiled numerous C++ / SDL programs to emscripten, using those same parameters, and it worked without issue.
I guess there might be something in the way emscripten is configured inside pyodide.
Additional context
I'm trying to port a library I created to pyodide: https://pthom.github.io/imgui_bundle/
Live emscripten demo here: https://traineq.org/ImGuiBundle/emscripten/bin/demo_imgui_bundle.html
The text was updated successfully, but these errors were encountered: