-
Notifications
You must be signed in to change notification settings - Fork 84
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
CGLCreateContext
fails when creating a context through WebRender from WebGL.
#82
Comments
CGLCreateContext
fails when creating a context through WR from WebGL.CGLCreateContext
fails when creating a context through WebRender from WebGL.
Yes, I believe this is the same underlying issue than servo/servo#11138. Mainly, WR uses a core context, and we use a compatibility one, and CGL freaks out so we have to fall back to readback. My idea for this was fixing it properly (only use shared textures via IOSurface/GLXPixmap/etc., and not sharing contexts as a whole), but I don't have neither time right now, nor a OSX machine :( |
If we want to fix this sharing contexts, we could request a core context for CGL, and then emulate all the compatibility stuff WebGL requires in the renderer, but I don't know if that's a great idea. |
Isn't this essentially what ANGLE does? |
Pretty much. I wrote the bindings for the shader validation side of Angle (https://github.com/servo/angle), perhaps we could extend that, though right now the renderer uses Gleam, so hooking the gl functions may be nontrivial. I believe this should be way easier once #81, and the related gleam and WR PRs have landed. |
Nice! That definitely looks like a robust path after #81. |
CGLCreateContext
fails with error code10009
when creating via WR from WebGL."Invalid share context. Two contexts are a bad match if their pixel formats use different renderers; this can happen if, for example, one format required an accumulation buffer that could be provided only by the software renderer, and the other format did not."
This causes
Servo
to fallback to a nice and slow alternative.The text was updated successfully, but these errors were encountered: