-
Notifications
You must be signed in to change notification settings - Fork 270
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
Fix race condition when rendering the UI #774
Fix race condition when rendering the UI #774
Commits on May 9, 2021
-
Fix race condition when rendering the UI
This fix depends on a fix in ign-rendering module, because it depends on the new Camera::SwapFromThread function Without it, compilation will fail Affects gazebosim/gz-rendering#304 Signed-off-by: Matias N. Goldberg <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 38e0a59 - Browse repository at this point
Copy the full SHA 38e0a59View commit details -
Force serialization of render commands
This avoids us to break ign-rendering ABI while also simplifying the amount of work to be done Serializing work is easier to maintain and debug Only CPU-bound scenario would potentially benefit from parallel command generation (in terms of UI responsiveness) Parallel command generation can be added back later Also fixed coding style Refer to gazebosim/gz-rendering#304 (comment) for discussion Affects ign-rendering#304 Signed-off-by: Matias N. Goldberg <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 29be301 - Browse repository at this point
Copy the full SHA 29be301View commit details -
Fix deadlock on initialization & shutdown
Also fixes preexisting race condition when shutting down and improper uninitialization of the worker thread Signed-off-by: Matias N. Goldberg <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8100758 - Browse repository at this point
Copy the full SHA 8100758View commit details -
Fix deadlock when using MoveTo modifier
Fix coding style Signed-off-by: Matias N. Goldberg <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 081e7d0 - Browse repository at this point
Copy the full SHA 081e7d0View commit details -
Reimplemented synchronization mechanism to fix deadlocks
It's a good thing we went for serializing rendering. THe way Qt implements the double buffer scheme using signals & slots is fundamentally flawed because it assumes the worker thread never needs to synchronize (e.g. to invalidate FBOs if window resolution changes). Trying to synchronize can easily cause deadlocks if Qt thread has spurious updates which don't end up emitting TextureInUse, as the worker thread is running slower than Qt thread. A way to fix this could be to use a different synchronization mechanism where the main thread increases a request counter and the worker thread is constantly looping but only wakes up when that counter is > 0. For now, this will do. Signed-off-by: Matias N. Goldberg <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c236828 - Browse repository at this point
Copy the full SHA c236828View commit details
Commits on May 10, 2021
-
Turn some pointers into references Signed-off-by: Matias N. Goldberg <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e1583ba - Browse repository at this point
Copy the full SHA e1583baView commit details
Commits on May 15, 2021
-
Signed-off-by: Matias N. Goldberg <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d55468d - Browse repository at this point
Copy the full SHA d55468dView commit details
Commits on May 23, 2021
-
Document better our use of emit TextureInUse
Signed-off-by: Matias N. Goldberg <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 55b2a7e - Browse repository at this point
Copy the full SHA 55b2a7eView commit details -
Change Q_SLOTS to slots for consistency
I changed it because it didn't work, but it must've been old code because it works now. Signed-off-by: Matias N. Goldberg <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6285e23 - Browse repository at this point
Copy the full SHA 6285e23View commit details
Commits on May 24, 2021
-
Configuration menu - View commit details
-
Copy full SHA for ec154fe - Browse repository at this point
Copy the full SHA ec154feView commit details