diff --git a/rutabaga_gfx/src/generated/virgl_renderer_bindings.rs b/rutabaga_gfx/src/generated/virgl_renderer_bindings.rs index 3f03ad75e5..08b8f7a3ea 100644 --- a/rutabaga_gfx/src/generated/virgl_renderer_bindings.rs +++ b/rutabaga_gfx/src/generated/virgl_renderer_bindings.rs @@ -11,6 +11,8 @@ pub const VIRGL_RENDERER_USE_GLX: u32 = 4; pub const VIRGL_RENDERER_USE_SURFACELESS: u32 = 8; pub const VIRGL_RENDERER_USE_GLES: u32 = 16; pub const VIRGL_RENDERER_USE_EXTERNAL_BLOB: u32 = 32; +pub const VIRGL_RENDERER_VENUS: u32 = 64; +pub const VIRGL_RENDERER_NO_VIRGL: u32 = 128; pub const VIRGL_RES_BIND_DEPTH_STENCIL: u32 = 1; pub const VIRGL_RES_BIND_RENDER_TARGET: u32 = 2; pub const VIRGL_RES_BIND_SAMPLER_VIEW: u32 = 8; diff --git a/rutabaga_gfx/src/rutabaga_utils.rs b/rutabaga_gfx/src/rutabaga_utils.rs index a1db693462..8a99f4e165 100644 --- a/rutabaga_gfx/src/rutabaga_utils.rs +++ b/rutabaga_gfx/src/rutabaga_utils.rs @@ -271,6 +271,8 @@ const VIRGLRENDERER_USE_GLX: u32 = 1 << 2; const VIRGLRENDERER_USE_SURFACELESS: u32 = 1 << 3; const VIRGLRENDERER_USE_GLES: u32 = 1 << 4; const VIRGLRENDERER_USE_EXTERNAL_BLOB: u32 = 1 << 5; +const VIRGLRENDERER_VENUS: u32 = 1 << 6; +const VIRGLRENDERER_NO_VIRGL: u32 = 1 << 7; /// virglrenderer flag struct. #[derive(Copy, Clone)] @@ -279,6 +281,8 @@ pub struct VirglRendererFlags(u32); impl Default for VirglRendererFlags { fn default() -> VirglRendererFlags { VirglRendererFlags::new() + .use_virgl(true) + .use_venus(false) .use_egl(true) .use_surfaceless(true) .use_gles(true) @@ -305,6 +309,16 @@ impl VirglRendererFlags { } } + /// Enable virgl support + pub fn use_virgl(self, v: bool) -> VirglRendererFlags { + self.set_flag(VIRGLRENDERER_NO_VIRGL, !v) + } + + /// Enable venus support + pub fn use_venus(self, v: bool) -> VirglRendererFlags { + self.set_flag(VIRGLRENDERER_VENUS, v) + } + /// Use EGL for context creation. pub fn use_egl(self, v: bool) -> VirglRendererFlags { self.set_flag(VIRGLRENDERER_USE_EGL, v)