xref: /aosp_15_r20/external/crosvm/rutabaga_gfx/src/renderer_utils.rs (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker // Copyright 2020 The ChromiumOS Authors
2*bb4ee6a4SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*bb4ee6a4SAndroid Build Coastguard Worker // found in the LICENSE file.
4*bb4ee6a4SAndroid Build Coastguard Worker 
5*bb4ee6a4SAndroid Build Coastguard Worker //! renderer_utils: Utility functions and structs used by virgl_renderer and gfxstream.
6*bb4ee6a4SAndroid Build Coastguard Worker 
7*bb4ee6a4SAndroid Build Coastguard Worker use crate::rutabaga_os::OwnedDescriptor;
8*bb4ee6a4SAndroid Build Coastguard Worker use crate::rutabaga_utils::RutabagaDebugHandler;
9*bb4ee6a4SAndroid Build Coastguard Worker use crate::rutabaga_utils::RutabagaError;
10*bb4ee6a4SAndroid Build Coastguard Worker use crate::rutabaga_utils::RutabagaFenceHandler;
11*bb4ee6a4SAndroid Build Coastguard Worker use crate::rutabaga_utils::RutabagaResult;
12*bb4ee6a4SAndroid Build Coastguard Worker 
13*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
14*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone)]
15*bb4ee6a4SAndroid Build Coastguard Worker pub struct VirglBox {
16*bb4ee6a4SAndroid Build Coastguard Worker     pub x: u32,
17*bb4ee6a4SAndroid Build Coastguard Worker     pub y: u32,
18*bb4ee6a4SAndroid Build Coastguard Worker     pub z: u32,
19*bb4ee6a4SAndroid Build Coastguard Worker     pub w: u32,
20*bb4ee6a4SAndroid Build Coastguard Worker     pub h: u32,
21*bb4ee6a4SAndroid Build Coastguard Worker     pub d: u32,
22*bb4ee6a4SAndroid Build Coastguard Worker }
23*bb4ee6a4SAndroid Build Coastguard Worker 
ret_to_res(ret: i32) -> RutabagaResult<()>24*bb4ee6a4SAndroid Build Coastguard Worker pub fn ret_to_res(ret: i32) -> RutabagaResult<()> {
25*bb4ee6a4SAndroid Build Coastguard Worker     match ret {
26*bb4ee6a4SAndroid Build Coastguard Worker         0 => Ok(()),
27*bb4ee6a4SAndroid Build Coastguard Worker         _ => Err(RutabagaError::ComponentError(ret)),
28*bb4ee6a4SAndroid Build Coastguard Worker     }
29*bb4ee6a4SAndroid Build Coastguard Worker }
30*bb4ee6a4SAndroid Build Coastguard Worker 
31*bb4ee6a4SAndroid Build Coastguard Worker pub struct RutabagaCookie {
32*bb4ee6a4SAndroid Build Coastguard Worker     pub render_server_fd: Option<OwnedDescriptor>,
33*bb4ee6a4SAndroid Build Coastguard Worker     pub fence_handler: Option<RutabagaFenceHandler>,
34*bb4ee6a4SAndroid Build Coastguard Worker     pub debug_handler: Option<RutabagaDebugHandler>,
35*bb4ee6a4SAndroid Build Coastguard Worker }
36