summary refs log tree commit diff
path: root/gpu_renderer/src/generated/virglrenderer.rs
diff options
context:
space:
mode:
authorZach Reizner <zachr@google.com>2018-05-03 16:58:27 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-07-20 05:30:54 -0700
commitf40bb190ece97c908f8dba2efc7c1aceb4fc0e0b (patch)
tree639ee95c303bc0e9abc79508aa0b0d30843739f3 /gpu_renderer/src/generated/virglrenderer.rs
parent86fdb1dc50c62682ee20794a922be402bbe748a5 (diff)
downloadcrosvm-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.rs221
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;
+}