-
Notifications
You must be signed in to change notification settings - Fork 920
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
Window::request_redraw()
inside WindowEvent::RedrawRequested
is slow on Wine
#3544
Comments
Window::request_redraw()
inside WindowEvent::RedrawRequested
is slow on WindowsWindow::request_redraw()
inside WindowEvent::RedrawRequested
is slow on Wine
Window::request_redraw()
inside WindowEvent::RedrawRequested
is slow on WineWindow::request_redraw()
inside WindowEvent::RedrawRequested
is slow on Wine
They run under wine without any logs. They should open a proper issue with example and how to repro, because I can't repro that myself and that's what we do in e.g. alacritty with much issues. However the WM_PAINT is just broken concept and shouldn't be used, but it's a separate issue. |
Ref: Rend3 Issue #570 Ref: Wine issue This is an issue when Rend3, Winit, and Wine are all used together. It's not clear who is supposed to deal with it. I'm currently dealing with it at the application level. That required a patch to Rend. The basic question is, when should request_redraw be called? Current Winit documentation says to call it at the end of each redraw, so there's always a redraw request event pending. (Hopefully only one such request.) This works terribly under Wine if the main thread is compute-bound. Requesting redraw only on the AboutToWait event solves the problem. From a quick look at the Winit code, at least for the Windows platform, event processing is just a pass-through of the platform's event processing. When running under Wine, the event loop is actually code in a .DLL file dynamically linked into the program executing under Wine. |
Keep in mind that it'll send a redraw for the next frame, and also, even if you're compute bound it shouldn't be a big issue. I think the issue is that I think the initial idea for all of that was to not render faster than os can handle (apps that don't want that can just never request a redraw and use their own logic for stuff like that. I'm also not sure what is your issue in particular with compute bound here? Do you have a gap between redraws where in reality you just want? Also, I've just noticed that you're using winit 0.28, could you please test with |
Oh, and change this back to "Open", please. |
Could you please test with |
Not easily. I'm not a direct user of Winit. It's used by Rend3, which locks the version. |
it's a patch update, you should be able to Could you try to simulate what you're doing with example? You can just |
There's already ui-mock as an example. Use branch "arc2". Build that with whatever version of Winit you want to test. |
Reported by @John-Nagle in #3373 (comment).
The text was updated successfully, but these errors were encountered: