-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
WebKit2Gtk 2.46 breaks v86 rendering #1166
Comments
I don't think you get anything out of GPU hardware acceleration in V86, all it does is write pixels into a RAM buffer which gets copied to the canvas at ~60 fps or more. There is an option
Browser support for If you can build your own V86 you'd need to change this line to:
One could argue that this option belongs there anyway. |
You can now easily test if this option changes anything at my V86 demo site (I patched Use Note that this demo uses the canvas in both text and in graphics mode, so either nothing or all should work with your browser. |
It's a Linux browser that uses I could get around it with this line: webkit_settings_set_enable_2d_canvas_acceleration(settings, FALSE); But that would mean any app that was embedding WebKit, which is what Gtk+ offers by default, would not render v86 properly.
I just did, and it works perfectly fine, so I guess that does the trick? But I can't test the other case where But if you're on Linux, and want to test that case, you can get Epiphany, a.k.a. Gnome Web. |
Good. I'll see that I include the |
This sounds like a bug in WebKit2Gtk. Could you check if this renders correctly: https://copy.sh/bug.html
Note that v86 doesn't read the image data frequently (or at all), and it only sends the region that changed, not the whole buffer. I'm not a graphics expert, but it sounds to me that setting that flag could negatively affect performance. At the very least, you should turn on paint flashing (found in chromium dev tools: ... -> more tools -> rendering) and check that this doesn't cause more redraws than necessary. There's also an FPS counter in |
I agree that it's actually a bug in WebKit2Gtk. I will not touch this in my PR. To clarify my reasoning, yes, V86 only sends buffers to the canvas. These buffers are copied from system RAM to GPU RAM using the system bus, and there's really nothing the GPU could do to help us here. V86 doesn't use any of the 2D primitive functions of canvas (like strokeRect(), arc(), etc.) which could potentially be accelerated by the GPU hardware, except for the implementation of ScreenAdapter.make_screenshot() which doesn't really matter in this context. When looking at the definition of So never mind my earlier post :) |
Sorry for being late.
This renders normal. I believe I should report this to WebKit2Gtk as well. |
Let's close this, as there seems to be an agreement that this is not a v86 bug. |
WebKit2Gtk's new release adds a new setting
enable-2d-canvas-acceleration
and enables it by default, which seems to break the rendering in v86.OS/Browser: arch/Epiphany
Console: Clean
I am also able to reproduce the error by writing a small C app and load "https://copy.sh/v86":
The text was updated successfully, but these errors were encountered: