diff options
author | Gurchetan Singh <gurchetansingh@chromium.org> | 2019-08-30 17:15:54 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-10-01 07:53:30 +0000 |
commit | f585543065c052fc67d3e9f8683e6a91395ca1ae (patch) | |
tree | 62549ca38710eb91b320864fccd31d4d7cfd5415 | |
parent | c554fff2064cf04fe89121ec86889b32a56bf195 (diff) | |
download | crosvm-f585543065c052fc67d3e9f8683e6a91395ca1ae.tar crosvm-f585543065c052fc67d3e9f8683e6a91395ca1ae.tar.gz crosvm-f585543065c052fc67d3e9f8683e6a91395ca1ae.tar.bz2 crosvm-f585543065c052fc67d3e9f8683e6a91395ca1ae.tar.lz crosvm-f585543065c052fc67d3e9f8683e6a91395ca1ae.tar.xz crosvm-f585543065c052fc67d3e9f8683e6a91395ca1ae.tar.zst crosvm-f585543065c052fc67d3e9f8683e6a91395ca1ae.zip |
gpu_renderer: update bindings
Use virglrenderer to get the metadata associated with a buffer. We must do this before we allocate the guest kernel pages, so they agree with host requirements. This implements the rough API outlined here: https://gitlab.freedesktop.org/virgl/virglrenderer/issues/119 Probably we want this in virv-renderer eventually, but that may take some time, so for prototyping just use non-upstreamed virglrenderer functions. BUG=chromium:924405 TEST=compile Change-Id: If78f274c813c2131b297144172019848806e3a0e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1790831 Tested-by: Gurchetan Singh <gurchetansingh@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Auto-Submit: Gurchetan Singh <gurchetansingh@chromium.org> Reviewed-by: Zach Reizner <zachr@chromium.org> Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
-rw-r--r-- | gpu_renderer/src/generated/virglrenderer.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gpu_renderer/src/generated/virglrenderer.rs b/gpu_renderer/src/generated/virglrenderer.rs index 089d1b4..01bf219 100644 --- a/gpu_renderer/src/generated/virglrenderer.rs +++ b/gpu_renderer/src/generated/virglrenderer.rs @@ -116,6 +116,7 @@ extern "C" { } pub const VIRGL_RENDERER_STRUCTURE_TYPE_NONE: virgl_renderer_structure_type_v0 = 0; pub const VIRGL_RENDERER_STRUCTURE_TYPE_EXPORT_QUERY: virgl_renderer_structure_type_v0 = 1; +pub const VIRGL_RENDERER_STRUCTURE_TYPE_SUPPORTED_STRUCTURES: virgl_renderer_structure_type_v0 = 2; pub type virgl_renderer_structure_type_v0 = u32; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] @@ -153,6 +154,13 @@ pub struct virgl_renderer_export_query { pub out_offsets: [u32; 4usize], pub out_modifier: u64, } +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct virgl_renderer_supported_structures { + pub hdr: virgl_renderer_hdr, + pub in_stype_version: u32, + pub out_supported_structures_mask: u32, +} pub type virgl_debug_callback_type = ::std::option::Option< unsafe extern "C" fn(fmt: *const ::std::os::raw::c_char, ap: *mut __va_list_tag), >; @@ -299,6 +307,26 @@ extern "C" { execute_size: u32, ) -> ::std::os::raw::c_int; } +extern "C" { + pub fn virgl_renderer_allocation_metadata( + request: *const ::std::os::raw::c_void, + response: *mut ::std::os::raw::c_void, + request_size: u32, + response_size: u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn virgl_renderer_resource_create_v2( + resource_id: u32, + guest_memory_type: u32, + guest_caching_type: u32, + size: u64, + iovec: *const iovec, + num_iovs: u32, + args: *const ::std::os::raw::c_void, + args_size: u32, + ) -> ::std::os::raw::c_int; +} pub type __builtin_va_list = [__va_list_tag; 1usize]; #[repr(C)] #[derive(Debug, Copy, Clone)] |