diff options
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 + } + } + } } |