diff options
author | Zach Reizner <zachr@google.com> | 2018-05-03 16:58:27 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-07-20 05:30:54 -0700 |
commit | f40bb190ece97c908f8dba2efc7c1aceb4fc0e0b (patch) | |
tree | 639ee95c303bc0e9abc79508aa0b0d30843739f3 /gpu_renderer/src/generated/virglrenderer.rs | |
parent | 86fdb1dc50c62682ee20794a922be402bbe748a5 (diff) | |
download | crosvm-f40bb190ece97c908f8dba2efc7c1aceb4fc0e0b.tar crosvm-f40bb190ece97c908f8dba2efc7c1aceb4fc0e0b.tar.gz crosvm-f40bb190ece97c908f8dba2efc7c1aceb4fc0e0b.tar.bz2 crosvm-f40bb190ece97c908f8dba2efc7c1aceb4fc0e0b.tar.lz crosvm-f40bb190ece97c908f8dba2efc7c1aceb4fc0e0b.tar.xz crosvm-f40bb190ece97c908f8dba2efc7c1aceb4fc0e0b.tar.zst crosvm-f40bb190ece97c908f8dba2efc7c1aceb4fc0e0b.zip |
gpu_renderer: add virglrenderer bindings
These bindings are needed for virtio-gpu 3D capabilities. All the rust files under gpu_renderer/src/generated are generated via the gpu_renderer/src/generated/generate script. The gpu_renderer/src/lib.rs file contains the Renderer and Context structs, which are the main interfaces to virglrenderer. They encapsulate the global state of virglrenderer (Renderer) and each context ID (Context). The command_buffer module is included only for basic testing and is not intended for production use. The pipe_format_fourcc module is provided for the conversion of virglrenderer specifc formats to standard fourcc formats. BUG=chromium:837073 TEST=cargo build -p gpu_renderer CQ-DEPEND=CL:1144406 Change-Id: Iad153390f618309bf493e92e76432c0b1c4a8a93 Reviewed-on: https://chromium-review.googlesource.com/1043447 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'gpu_renderer/src/generated/virglrenderer.rs')
-rw-r--r-- | gpu_renderer/src/generated/virglrenderer.rs | 221 |
1 files changed, 221 insertions, 0 deletions
diff --git a/gpu_renderer/src/generated/virglrenderer.rs b/gpu_renderer/src/generated/virglrenderer.rs new file mode 100644 index 0000000..02e542a --- /dev/null +++ b/gpu_renderer/src/generated/virglrenderer.rs @@ -0,0 +1,221 @@ +/* automatically generated by rust-bindgen */ + +#[link(name = "virglrenderer")] +extern "C" {} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct virgl_box { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iovec { + _unused: [u8; 0], +} +pub type virgl_renderer_gl_context = *mut ::std::os::raw::c_void; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct virgl_renderer_gl_ctx_param { + pub version: ::std::os::raw::c_int, + pub shared: bool, + pub major_ver: ::std::os::raw::c_int, + pub minor_ver: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct virgl_renderer_callbacks { + pub version: ::std::os::raw::c_int, + pub write_fence: ::std::option::Option< + unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void, fence: u32), + >, + pub create_gl_context: ::std::option::Option< + unsafe extern "C" fn( + cookie: *mut ::std::os::raw::c_void, + scanout_idx: ::std::os::raw::c_int, + param: *mut virgl_renderer_gl_ctx_param, + ) -> virgl_renderer_gl_context, + >, + pub destroy_gl_context: ::std::option::Option< + unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void, ctx: virgl_renderer_gl_context), + >, + pub make_current: ::std::option::Option< + unsafe extern "C" fn( + cookie: *mut ::std::os::raw::c_void, + scanout_idx: ::std::os::raw::c_int, + ctx: virgl_renderer_gl_context, + ) -> ::std::os::raw::c_int, + >, +} +extern "C" { + pub fn virgl_renderer_init( + cookie: *mut ::std::os::raw::c_void, + flags: ::std::os::raw::c_int, + cb: *mut virgl_renderer_callbacks, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn virgl_renderer_poll(); +} +extern "C" { + pub fn virgl_renderer_get_cursor_data( + resource_id: u32, + width: *mut u32, + height: *mut u32, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn virgl_renderer_get_rect( + resource_id: ::std::os::raw::c_int, + iov: *mut iovec, + num_iovs: ::std::os::raw::c_uint, + offset: u32, + x: ::std::os::raw::c_int, + y: ::std::os::raw::c_int, + width: ::std::os::raw::c_int, + height: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn virgl_renderer_get_fd_for_texture( + tex_id: u32, + fd: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct virgl_renderer_resource_create_args { + pub handle: u32, + pub target: u32, + pub format: u32, + pub bind: u32, + pub width: u32, + pub height: u32, + pub depth: u32, + pub array_size: u32, + pub last_level: u32, + pub nr_samples: u32, + pub flags: u32, +} +extern "C" { + pub fn virgl_renderer_resource_create( + args: *mut virgl_renderer_resource_create_args, + iov: *mut iovec, + num_iovs: u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn virgl_renderer_resource_unref(res_handle: u32); +} +extern "C" { + pub fn virgl_renderer_context_create( + handle: u32, + nlen: u32, + name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn virgl_renderer_context_destroy(handle: u32); +} +extern "C" { + pub fn virgl_renderer_submit_cmd( + buffer: *mut ::std::os::raw::c_void, + ctx_id: ::std::os::raw::c_int, + ndw: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn virgl_renderer_transfer_read_iov( + handle: u32, + ctx_id: u32, + level: u32, + stride: u32, + layer_stride: u32, + box_: *mut virgl_box, + offset: u64, + iov: *mut iovec, + iovec_cnt: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn virgl_renderer_transfer_write_iov( + handle: u32, + ctx_id: u32, + level: ::std::os::raw::c_int, + stride: u32, + layer_stride: u32, + box_: *mut virgl_box, + offset: u64, + iovec: *mut iovec, + iovec_cnt: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn virgl_renderer_get_cap_set(set: u32, max_ver: *mut u32, max_size: *mut u32); +} +extern "C" { + pub fn virgl_renderer_fill_caps(set: u32, version: u32, caps: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn virgl_renderer_resource_attach_iov( + res_handle: ::std::os::raw::c_int, + iov: *mut iovec, + num_iovs: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn virgl_renderer_resource_detach_iov( + res_handle: ::std::os::raw::c_int, + iov: *mut *mut iovec, + num_iovs: *mut ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn virgl_renderer_create_fence( + client_fence_id: ::std::os::raw::c_int, + ctx_id: u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn virgl_renderer_force_ctx_0(); +} +extern "C" { + pub fn virgl_renderer_ctx_attach_resource( + ctx_id: ::std::os::raw::c_int, + res_handle: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn virgl_renderer_ctx_detach_resource( + ctx_id: ::std::os::raw::c_int, + res_handle: ::std::os::raw::c_int, + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct virgl_renderer_resource_info { + pub handle: u32, + pub virgl_format: u32, + pub width: u32, + pub height: u32, + pub depth: u32, + pub flags: u32, + pub tex_id: u32, + pub stride: u32, + pub drm_fourcc: ::std::os::raw::c_int, +} +extern "C" { + pub fn virgl_renderer_resource_get_info( + res_handle: ::std::os::raw::c_int, + info: *mut virgl_renderer_resource_info, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn virgl_renderer_cleanup(cookie: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn virgl_renderer_reset(); +} +extern "C" { + pub fn virgl_renderer_get_poll_fd() -> ::std::os::raw::c_int; +} |