commit | 6003534ca333985dce8c1ba450e9323f0b7bef64 | [log] [tgz] |
---|---|---|
author | Pujun Lun <lunpujun@google.com> | Thu Nov 03 23:21:22 2022 -0700 |
committer | crosvm LUCI <crosvm-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Aug 29 21:59:39 2023 +0000 |
tree | b5742f255a00d02ec7ee8127ca606567bf9886fa | |
parent | 6074ab90a80d6929df6eef7233b5e13b20bb3b78 [diff] |
gpu_display: refactor gpu_main_display_tube. After go/playcl/83699, the WndProc thread is the only thread that accesses this tube, so we could change its type from Arc<Mutex<Tube>> to Rc<Tube>, so that we no longer need to worry about deadlocking. This tube was a field of struct DisplayParameters. That struct is used for CLI arg parsing, however, we don't get this tube from CLI so the code looks awkward. Besides, DisplayParameters specifies params for each individual window, but we will likely only have one tube and share it among multiple windows when we support multi-windowing. So, we can remove it from DisplayParameters, and WindowProcedureThread will distribute the clones of the tube to surfaces. Bug: 257486521 Test: Ran GPG Change-Id: Ic7adeb4a41c89d79e40820ad4d50e8d85c4e385c Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4804685 Reviewed-by: Noah Gold <nkgold@google.com> Commit-Queue: Kaiyi Li <kaiyili@google.com>
crosvm is a virtual machine monitor (VMM) based on Linux’s KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the ChromeOS platform. Compared to QEMU, crosvm doesn’t emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.
crosvm is currently used to run Linux/Android guests on ChromeOS devices.