OpenVRGamepadDataFetcher::GetGamepadData is not threadsafe |
|||||
Issue descriptionsee crash - 9c42041de234b7bc GetGamepadData is called on a thread while the OpenVRDeviceProvider is shutting down on a separate thread, and shutting down OpenVR.
,
Jul 5
Crash ID doesn't exist, did you paste the wrong hash bill? Also P3 seems low for a crash bug if you found it in the wild.
,
Jul 5
wasn't "in the wild" if I remember correctly, but did hit locally once when testing other things. I have the oculus equivalent fix uploaded, and can start on this soon. boosting priority.
,
Jul 12
,
Jul 12
,
Jul 13
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9 commit 405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9 Author: Bill Orr <billorr@chromium.org> Date: Fri Jul 13 21:19:11 2018 Fix up OpenVR threading and session lifetimes This is similar to a change made for Oculus devices. OpenVR is initialized when we have a magic window session, and can only be used on the UI thread, or it can be initialized on the render-loop thread, and we will only use it on that thread. Gamepad data is now updated per-frame by the render loop, with data passed over to the gamepad fetcher and read in its polling thread. BUG= 820288 , 793364 Change-Id: I543487f823f7ac08e9b0f01889d227f455d0482c Reviewed-on: https://chromium-review.googlesource.com/1136056 Commit-Queue: Bill Orr <billorr@chromium.org> Reviewed-by: Klaus Weidner <klausw@chromium.org> Cr-Commit-Position: refs/heads/master@{#575070} [modify] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/BUILD.gn [add] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/openvr/openvr_api_wrapper.cc [add] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/openvr/openvr_api_wrapper.h [modify] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/openvr/openvr_device.cc [modify] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/openvr/openvr_device.h [modify] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/openvr/openvr_device_provider.cc [modify] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/openvr/openvr_device_provider.h [modify] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/openvr/openvr_gamepad_data_fetcher.cc [modify] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/openvr/openvr_gamepad_data_fetcher.h [modify] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/openvr/openvr_render_loop.cc [modify] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/openvr/openvr_render_loop.h [modify] https://crrev.com/405f1053fe8a90e4ed859d430ea6ab2f8f1a2db9/device/vr/openvr/test/fake_openvr_impl_api.cc
,
Jul 13
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by btebbs@chromium.org
, Jul 4