diff options
author | Gurchetan Singh <gurchetansingh@chromium.org> | 2019-04-23 10:27:49 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-10-01 07:53:33 +0000 |
commit | 5b636babc1e83b7187ef72bd85b3a3bdc2e5d03f (patch) | |
tree | 1c856e04303e3c2882a140d2be45015bdb621b2e /devices/src/virtio/gpu/backend.rs | |
parent | 144c279d281cb2e69caeb8504ff7267d268c4561 (diff) | |
download | crosvm-5b636babc1e83b7187ef72bd85b3a3bdc2e5d03f.tar crosvm-5b636babc1e83b7187ef72bd85b3a3bdc2e5d03f.tar.gz crosvm-5b636babc1e83b7187ef72bd85b3a3bdc2e5d03f.tar.bz2 crosvm-5b636babc1e83b7187ef72bd85b3a3bdc2e5d03f.tar.lz crosvm-5b636babc1e83b7187ef72bd85b3a3bdc2e5d03f.tar.xz crosvm-5b636babc1e83b7187ef72bd85b3a3bdc2e5d03f.tar.zst crosvm-5b636babc1e83b7187ef72bd85b3a3bdc2e5d03f.zip |
virtio-gpu: handle VIRTIO_GPU_CMD_ALLOCATION_METADATA
Designed to return metadata to the guest. BUG=chromium:924405 TEST=compile Change-Id: Ic04a0bbb6b0a5bb6d08314371181f256eb7230df Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1591464 Reviewed-by: Zach Reizner <zachr@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Tested-by: Gurchetan Singh <gurchetansingh@chromium.org> Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Diffstat (limited to 'devices/src/virtio/gpu/backend.rs')
-rw-r--r-- | devices/src/virtio/gpu/backend.rs | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/devices/src/virtio/gpu/backend.rs b/devices/src/virtio/gpu/backend.rs index 9415226..4cfac7a 100644 --- a/devices/src/virtio/gpu/backend.rs +++ b/devices/src/virtio/gpu/backend.rs @@ -23,8 +23,8 @@ use gpu_renderer::{ }; use super::protocol::{ - GpuResponse, GpuResponsePlaneInfo, VIRTIO_GPU_CAPSET3, VIRTIO_GPU_CAPSET_VIRGL, - VIRTIO_GPU_CAPSET_VIRGL2, + AllocationMetadataResponse, GpuResponse, GpuResponsePlaneInfo, VIRTIO_GPU_CAPSET3, + VIRTIO_GPU_CAPSET_VIRGL, VIRTIO_GPU_CAPSET_VIRGL2, }; use crate::virtio::resource_bridge::*; use vm_control::VmMemoryControlRequestSocket; @@ -778,4 +778,28 @@ impl Backend { pub fn force_ctx_0(&mut self) { self.renderer.force_ctx_0(); } + + pub fn allocation_metadata( + &mut self, + request_id: u32, + request: Vec<u8>, + mut response: Vec<u8>, + ) -> GpuResponse { + let res = self.renderer.allocation_metadata(&request, &mut response); + + match res { + Ok(_) => { + let res_info = AllocationMetadataResponse { + request_id, + response, + }; + + GpuResponse::OkAllocationMetadata { res_info } + } + Err(_) => { + error!("failed to get metadata"); + GpuResponse::ErrUnspec + } + } + } } |