diff options
author | David Riley <davidriley@chromium.org> | 2018-10-17 16:01:48 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-10-23 22:50:43 -0700 |
commit | 64cc43d2b89bd26fa397bda395a84a128c0df623 (patch) | |
tree | 938f42edcc1b88ec0601561f74c20057c4398591 /devices/src/virtio/gpu | |
parent | 4ad6de0dbceb72b668e08107c9cc56a9b43e2c33 (diff) | |
download | crosvm-64cc43d2b89bd26fa397bda395a84a128c0df623.tar crosvm-64cc43d2b89bd26fa397bda395a84a128c0df623.tar.gz crosvm-64cc43d2b89bd26fa397bda395a84a128c0df623.tar.bz2 crosvm-64cc43d2b89bd26fa397bda395a84a128c0df623.tar.lz crosvm-64cc43d2b89bd26fa397bda395a84a128c0df623.tar.xz crosvm-64cc43d2b89bd26fa397bda395a84a128c0df623.tar.zst crosvm-64cc43d2b89bd26fa397bda395a84a128c0df623.zip |
devices: gpu: Have BackBuffer use renderer resource when attaching backing.
If a BackBuffer has some gpu_renderer_resource, attach the backing through to virgl to allow resources to be transfered in the future. BUG=chromium:892261 TEST=eglgears_x11, xterm, xeyes Change-Id: I9c4310da8eba73ec69dbaeba340b362c22fb21a0 Reviewed-on: https://chromium-review.googlesource.com/1288960 Commit-Ready: David Riley <davidriley@chromium.org> Tested-by: David Riley <davidriley@chromium.org> Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'devices/src/virtio/gpu')
-rw-r--r-- | devices/src/virtio/gpu/backend.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/devices/src/virtio/gpu/backend.rs b/devices/src/virtio/gpu/backend.rs index 9c27712..00a327f 100644 --- a/devices/src/virtio/gpu/backend.rs +++ b/devices/src/virtio/gpu/backend.rs @@ -203,12 +203,20 @@ impl VirglResource for BackedBuffer { self.buffer.height() } - fn attach_guest_backing(&mut self, _mem: &GuestMemory, vecs: Vec<(GuestAddress, usize)>) { - self.backing = vecs; + fn attach_guest_backing(&mut self, mem: &GuestMemory, vecs: Vec<(GuestAddress, usize)>) { + self.backing = vecs.clone(); + if let Some(ref mut resource) = self.gpu_renderer_resource { + if let Err(e) = resource.attach_backing(&vecs[..], mem) { + error!("failed to attach backing to BackBuffer resource: {}", e); + } + } } fn detach_guest_backing(&mut self) { - self.backing.clear() + if let Some(ref mut resource) = self.gpu_renderer_resource { + resource.detach_backing(); + } + self.backing.clear(); } fn gpu_renderer_resource(&mut self) -> Option<&mut GpuRendererResource> { |