diff options
author | Zach Reizner <zachr@google.com> | 2018-10-03 10:22:32 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-10-09 21:14:05 -0700 |
commit | 55a9e504beef368bd97e51ffd5a7fa6c034eb8ad (patch) | |
tree | 894d8685e2fdfa105ea35d1cb6cfceee06502c7a /gpu_renderer | |
parent | 046df60760f3b0691f23c27a7f24a96c9afe8c05 (diff) | |
download | crosvm-55a9e504beef368bd97e51ffd5a7fa6c034eb8ad.tar crosvm-55a9e504beef368bd97e51ffd5a7fa6c034eb8ad.tar.gz crosvm-55a9e504beef368bd97e51ffd5a7fa6c034eb8ad.tar.bz2 crosvm-55a9e504beef368bd97e51ffd5a7fa6c034eb8ad.tar.lz crosvm-55a9e504beef368bd97e51ffd5a7fa6c034eb8ad.tar.xz crosvm-55a9e504beef368bd97e51ffd5a7fa6c034eb8ad.tar.zst crosvm-55a9e504beef368bd97e51ffd5a7fa6c034eb8ad.zip |
cargo fmt all source code
Now that cargo fmt has landed, run it over everything at once to bring rust source to the standard formatting. TEST=cargo test BUG=None Change-Id: Ic95a48725e5a40dcbd33ba6d5aef2bd01e91865b Reviewed-on: https://chromium-review.googlesource.com/1259287 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'gpu_renderer')
-rw-r--r-- | gpu_renderer/src/command_buffer.rs | 48 | ||||
-rw-r--r-- | gpu_renderer/src/generated/mod.rs | 4 | ||||
-rw-r--r-- | gpu_renderer/src/generated/p_defines.rs | 799 | ||||
-rw-r--r-- | gpu_renderer/src/generated/p_format.rs | 333 | ||||
-rw-r--r-- | gpu_renderer/src/generated/virgl_protocol.rs | 253 | ||||
-rw-r--r-- | gpu_renderer/src/generated/virglrenderer.rs | 237 | ||||
-rw-r--r-- | gpu_renderer/src/lib.rs | 677 | ||||
-rw-r--r-- | gpu_renderer/src/pipe_format_fourcc.rs | 4 |
8 files changed, 1760 insertions, 595 deletions
diff --git a/gpu_renderer/src/command_buffer.rs b/gpu_renderer/src/command_buffer.rs index 57b04c3..26ac656 100644 --- a/gpu_renderer/src/command_buffer.rs +++ b/gpu_renderer/src/command_buffer.rs @@ -21,8 +21,10 @@ impl AsRef<[u8]> for CommandBufferBuilder { // Safe because the returned slice is a trivial reinterpretation of the same number of // bytes. unsafe { - from_raw_parts(self.cbuf.as_ptr() as *const u8, - self.cbuf.len() * size_of::<u32>()) + from_raw_parts( + self.cbuf.as_ptr() as *const u8, + self.cbuf.len() * size_of::<u32>(), + ) } } } @@ -32,13 +34,14 @@ impl AsMut<[u8]> for CommandBufferBuilder { // Safe because the returned slice is a trivial reinterpretation of the same number of // bytes. unsafe { - from_raw_parts_mut(self.cbuf.as_mut_ptr() as *mut u8, - self.cbuf.len() * size_of::<u32>()) + from_raw_parts_mut( + self.cbuf.as_mut_ptr() as *mut u8, + self.cbuf.len() * size_of::<u32>(), + ) } } } - impl CommandBufferBuilder { /// Constructs an empty command pub fn new() -> CommandBufferBuilder { @@ -55,7 +58,8 @@ impl CommandBufferBuilder { } fn push_cmd(&mut self, cmd: u32, obj_type: u32, len: u32) { - self.cbuf.push((cmd & 0xff) | ((obj_type & 0xff) << 8) | ((len & 0xffff) << 16)); + self.cbuf + .push((cmd & 0xff) | ((obj_type & 0xff) << 8) | ((len & 0xffff) << 16)); } /// Gets the command buffer as a pointer to the beginning. @@ -95,16 +99,20 @@ impl CommandBufferBuilder { } /// Pushes a create surface command to this command buffer. - pub fn e_create_surface(&mut self, - new_id: u32, - res: &Resource, - format: u32, - level: u32, - first_layer: u32, - last_layer: u32) { - self.push_cmd(VIRGL_CCMD_CREATE_OBJECT, - VIRGL_OBJECT_SURFACE, - VIRGL_OBJ_SURFACE_SIZE); + pub fn e_create_surface( + &mut self, + new_id: u32, + res: &Resource, + format: u32, + level: u32, + first_layer: u32, + last_layer: u32, + ) { + self.push_cmd( + VIRGL_CCMD_CREATE_OBJECT, + VIRGL_OBJECT_SURFACE, + VIRGL_OBJ_SURFACE_SIZE, + ); self.push(new_id); self.push(res.id()); self.push(format); @@ -118,9 +126,11 @@ impl CommandBufferBuilder { fn cmd_set_fb_state_size(surface_count: u32) -> u32 { 2 + surface_count } - self.push_cmd(VIRGL_CCMD_SET_FRAMEBUFFER_STATE, - 0, - cmd_set_fb_state_size(surface_handles.len() as u32)); + self.push_cmd( + VIRGL_CCMD_SET_FRAMEBUFFER_STATE, + 0, + cmd_set_fb_state_size(surface_handles.len() as u32), + ); self.push(surface_handles.len() as u32); self.push(zbuf.unwrap_or(0)); for &surface_handle in surface_handles { diff --git a/gpu_renderer/src/generated/mod.rs b/gpu_renderer/src/generated/mod.rs index a836066..64e2263 100644 --- a/gpu_renderer/src/generated/mod.rs +++ b/gpu_renderer/src/generated/mod.rs @@ -3,8 +3,8 @@ #![allow(non_camel_case_types)] #![allow(non_snake_case)] #![allow(non_upper_case_globals)] -pub mod virglrenderer; pub mod epoxy_egl; -pub mod virgl_protocol; pub mod p_defines; pub mod p_format; +pub mod virgl_protocol; +pub mod virglrenderer; diff --git a/gpu_renderer/src/generated/p_defines.rs b/gpu_renderer/src/generated/p_defines.rs index b5ecb36..08946b7 100644 --- a/gpu_renderer/src/generated/p_defines.rs +++ b/gpu_renderer/src/generated/p_defines.rs @@ -1,66 +1,274 @@ /* automatically generated by rust-bindgen */ -pub const _POSIX_PIPE_BUF : u32 = 512 ; pub const PIPE_BUF : u32 = 4096 ; pub const PIPE_BLENDFACTOR_ONE : u32 = 1 ; pub const PIPE_BLENDFACTOR_SRC_COLOR : u32 = 2 ; pub const PIPE_BLENDFACTOR_SRC_ALPHA : u32 = 3 ; pub const PIPE_BLENDFACTOR_DST_ALPHA : u32 = 4 ; pub const PIPE_BLENDFACTOR_DST_COLOR : u32 = 5 ; pub const PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE : u32 = 6 ; pub const PIPE_BLENDFACTOR_CONST_COLOR : u32 = 7 ; pub const PIPE_BLENDFACTOR_CONST_ALPHA : u32 = 8 ; pub const PIPE_BLENDFACTOR_SRC1_COLOR : u32 = 9 ; pub const PIPE_BLENDFACTOR_SRC1_ALPHA : u32 = 10 ; pub const PIPE_BLENDFACTOR_ZERO : u32 = 17 ; pub const PIPE_BLENDFACTOR_INV_SRC_COLOR : u32 = 18 ; pub const PIPE_BLENDFACTOR_INV_SRC_ALPHA : u32 = 19 ; pub const PIPE_BLENDFACTOR_INV_DST_ALPHA : u32 = 20 ; pub const PIPE_BLENDFACTOR_INV_DST_COLOR : u32 = 21 ; pub const PIPE_BLENDFACTOR_INV_CONST_COLOR : u32 = 23 ; pub const PIPE_BLENDFACTOR_INV_CONST_ALPHA : u32 = 24 ; pub const PIPE_BLENDFACTOR_INV_SRC1_COLOR : u32 = 25 ; pub const PIPE_BLENDFACTOR_INV_SRC1_ALPHA : u32 = 26 ; pub const PIPE_BLEND_ADD : u32 = 0 ; pub const PIPE_BLEND_SUBTRACT : u32 = 1 ; pub const PIPE_BLEND_REVERSE_SUBTRACT : u32 = 2 ; pub const PIPE_BLEND_MIN : u32 = 3 ; pub const PIPE_BLEND_MAX : u32 = 4 ; pub const PIPE_LOGICOP_CLEAR : u32 = 0 ; pub const PIPE_LOGICOP_NOR : u32 = 1 ; pub const PIPE_LOGICOP_AND_INVERTED : u32 = 2 ; pub const PIPE_LOGICOP_COPY_INVERTED : u32 = 3 ; pub const PIPE_LOGICOP_AND_REVERSE : u32 = 4 ; pub const PIPE_LOGICOP_INVERT : u32 = 5 ; pub const PIPE_LOGICOP_XOR : u32 = 6 ; pub const PIPE_LOGICOP_NAND : u32 = 7 ; pub const PIPE_LOGICOP_AND : u32 = 8 ; pub const PIPE_LOGICOP_EQUIV : u32 = 9 ; pub const PIPE_LOGICOP_NOOP : u32 = 10 ; pub const PIPE_LOGICOP_OR_INVERTED : u32 = 11 ; pub const PIPE_LOGICOP_COPY : u32 = 12 ; pub const PIPE_LOGICOP_OR_REVERSE : u32 = 13 ; pub const PIPE_LOGICOP_OR : u32 = 14 ; pub const PIPE_LOGICOP_SET : u32 = 15 ; pub const PIPE_MASK_R : u32 = 1 ; pub const PIPE_MASK_G : u32 = 2 ; pub const PIPE_MASK_B : u32 = 4 ; pub const PIPE_MASK_A : u32 = 8 ; pub const PIPE_MASK_RGBA : u32 = 15 ; pub const PIPE_MASK_Z : u32 = 16 ; pub const PIPE_MASK_S : u32 = 32 ; pub const PIPE_MASK_ZS : u32 = 48 ; pub const PIPE_MASK_RGBAZS : u32 = 63 ; pub const PIPE_FUNC_NEVER : u32 = 0 ; pub const PIPE_FUNC_LESS : u32 = 1 ; pub const PIPE_FUNC_EQUAL : u32 = 2 ; pub const PIPE_FUNC_LEQUAL : u32 = 3 ; pub const PIPE_FUNC_GREATER : u32 = 4 ; pub const PIPE_FUNC_NOTEQUAL : u32 = 5 ; pub const PIPE_FUNC_GEQUAL : u32 = 6 ; pub const PIPE_FUNC_ALWAYS : u32 = 7 ; pub const PIPE_POLYGON_MODE_FILL : u32 = 0 ; pub const PIPE_POLYGON_MODE_LINE : u32 = 1 ; pub const PIPE_POLYGON_MODE_POINT : u32 = 2 ; pub const PIPE_FACE_NONE : u32 = 0 ; pub const PIPE_FACE_FRONT : u32 = 1 ; pub const PIPE_FACE_BACK : u32 = 2 ; pub const PIPE_FACE_FRONT_AND_BACK : u32 = 3 ; pub const PIPE_STENCIL_OP_KEEP : u32 = 0 ; pub const PIPE_STENCIL_OP_ZERO : u32 = 1 ; pub const PIPE_STENCIL_OP_REPLACE : u32 = 2 ; pub const PIPE_STENCIL_OP_INCR : u32 = 3 ; pub const PIPE_STENCIL_OP_DECR : u32 = 4 ; pub const PIPE_STENCIL_OP_INCR_WRAP : u32 = 5 ; pub const PIPE_STENCIL_OP_DECR_WRAP : u32 = 6 ; pub const PIPE_STENCIL_OP_INVERT : u32 = 7 ; pub const PIPE_TEX_FACE_POS_X : u32 = 0 ; pub const PIPE_TEX_FACE_NEG_X : u32 = 1 ; pub const PIPE_TEX_FACE_POS_Y : u32 = 2 ; pub const PIPE_TEX_FACE_NEG_Y : u32 = 3 ; pub const PIPE_TEX_FACE_POS_Z : u32 = 4 ; pub const PIPE_TEX_FACE_NEG_Z : u32 = 5 ; pub const PIPE_TEX_FACE_MAX : u32 = 6 ; pub const PIPE_TEX_WRAP_REPEAT : u32 = 0 ; pub const PIPE_TEX_WRAP_CLAMP : u32 = 1 ; pub const PIPE_TEX_WRAP_CLAMP_TO_EDGE : u32 = 2 ; pub const PIPE_TEX_WRAP_CLAMP_TO_BORDER : u32 = 3 ; pub const PIPE_TEX_WRAP_MIRROR_REPEAT : u32 = 4 ; pub const PIPE_TEX_WRAP_MIRROR_CLAMP : u32 = 5 ; pub const PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE : u32 = 6 ; pub const PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER : u32 = 7 ; pub const PIPE_TEX_MIPFILTER_NEAREST : u32 = 0 ; pub const PIPE_TEX_MIPFILTER_LINEAR : u32 = 1 ; pub const PIPE_TEX_MIPFILTER_NONE : u32 = 2 ; pub const PIPE_TEX_FILTER_NEAREST : u32 = 0 ; pub const PIPE_TEX_FILTER_LINEAR : u32 = 1 ; pub const PIPE_TEX_COMPARE_NONE : u32 = 0 ; pub const PIPE_TEX_COMPARE_R_TO_TEXTURE : u32 = 1 ; pub const PIPE_CLEAR_DEPTH : u32 = 1 ; pub const PIPE_CLEAR_STENCIL : u32 = 2 ; pub const PIPE_CLEAR_COLOR0 : u32 = 4 ; pub const PIPE_CLEAR_COLOR1 : u32 = 8 ; pub const PIPE_CLEAR_COLOR2 : u32 = 16 ; pub const PIPE_CLEAR_COLOR3 : u32 = 32 ; pub const PIPE_CLEAR_COLOR4 : u32 = 64 ; pub const PIPE_CLEAR_COLOR5 : u32 = 128 ; pub const PIPE_CLEAR_COLOR6 : u32 = 256 ; pub const PIPE_CLEAR_COLOR7 : u32 = 512 ; pub const PIPE_CLEAR_COLOR : u32 = 1020 ; pub const PIPE_CLEAR_DEPTHSTENCIL : u32 = 3 ; pub const PIPE_BARRIER_MAPPED_BUFFER : u32 = 1 ; pub const PIPE_BIND_DEPTH_STENCIL : u32 = 1 ; pub const PIPE_BIND_RENDER_TARGET : u32 = 2 ; pub const PIPE_BIND_BLENDABLE : u32 = 4 ; pub const PIPE_BIND_SAMPLER_VIEW : u32 = 8 ; pub const PIPE_BIND_VERTEX_BUFFER : u32 = 16 ; pub const PIPE_BIND_INDEX_BUFFER : u32 = 32 ; pub const PIPE_BIND_CONSTANT_BUFFER : u32 = 64 ; pub const PIPE_BIND_DISPLAY_TARGET : u32 = 256 ; pub const PIPE_BIND_TRANSFER_WRITE : u32 = 512 ; pub const PIPE_BIND_TRANSFER_READ : u32 = 1024 ; pub const PIPE_BIND_STREAM_OUTPUT : u32 = 2048 ; pub const PIPE_BIND_CURSOR : u32 = 65536 ; pub const PIPE_BIND_CUSTOM : u32 = 131072 ; pub const PIPE_BIND_GLOBAL : u32 = 262144 ; pub const PIPE_BIND_SHADER_RESOURCE : u32 = 524288 ; pub const PIPE_BIND_COMPUTE_RESOURCE : u32 = 1048576 ; pub const PIPE_BIND_COMMAND_ARGS_BUFFER : u32 = 2097152 ; pub const PIPE_BIND_SCANOUT : u32 = 16384 ; pub const PIPE_BIND_SHARED : u32 = 32768 ; pub const PIPE_BIND_LINEAR : u32 = 2097152 ; pub const PIPE_RESOURCE_FLAG_MAP_PERSISTENT : u32 = 1 ; pub const PIPE_RESOURCE_FLAG_MAP_COHERENT : u32 = 2 ; pub const PIPE_RESOURCE_FLAG_DRV_PRIV : u32 = 65536 ; pub const PIPE_RESOURCE_FLAG_ST_PRIV : u32 = 16777216 ; pub const PIPE_USAGE_DEFAULT : u32 = 0 ; pub const PIPE_USAGE_IMMUTABLE : u32 = 1 ; pub const PIPE_USAGE_DYNAMIC : u32 = 2 ; pub const PIPE_USAGE_STREAM : u32 = 3 ; pub const PIPE_USAGE_STAGING : u32 = 4 ; pub const PIPE_SHADER_VERTEX : u32 = 0 ; pub const PIPE_SHADER_FRAGMENT : u32 = 1 ; pub const PIPE_SHADER_GEOMETRY : u32 = 2 ; pub const PIPE_SHADER_TESS_CTRL : u32 = 3 ; pub const PIPE_SHADER_TESS_EVAL : u32 = 4 ; pub const PIPE_SHADER_COMPUTE : u32 = 5 ; pub const PIPE_SHADER_TYPES : u32 = 6 ; pub const PIPE_PRIM_POINTS : u32 = 0 ; pub const PIPE_PRIM_LINES : u32 = 1 ; pub const PIPE_PRIM_LINE_LOOP : u32 = 2 ; pub const PIPE_PRIM_LINE_STRIP : u32 = 3 ; pub const PIPE_PRIM_TRIANGLES : u32 = 4 ; pub const PIPE_PRIM_TRIANGLE_STRIP : u32 = 5 ; pub const PIPE_PRIM_TRIANGLE_FAN : u32 = 6 ; pub const PIPE_PRIM_QUADS : u32 = 7 ; pub const PIPE_PRIM_QUAD_STRIP : u32 = 8 ; pub const PIPE_PRIM_POLYGON : u32 = 9 ; pub const PIPE_PRIM_LINES_ADJACENCY : u32 = 10 ; pub const PIPE_PRIM_LINE_STRIP_ADJACENCY : u32 = 11 ; pub const PIPE_PRIM_TRIANGLES_ADJACENCY : u32 = 12 ; pub const PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY : u32 = 13 ; pub const PIPE_PRIM_PATCHES : u32 = 14 ; pub const PIPE_PRIM_MAX : u32 = 15 ; pub const PIPE_TESS_SPACING_FRACTIONAL_ODD : u32 = 0 ; pub const PIPE_TESS_SPACING_FRACTIONAL_EVEN : u32 = 1 ; pub const PIPE_TESS_SPACING_EQUAL : u32 = 2 ; pub const PIPE_QUERY_OCCLUSION_COUNTER : u32 = 0 ; pub const PIPE_QUERY_OCCLUSION_PREDICATE : u32 = 1 ; pub const PIPE_QUERY_TIMESTAMP : u32 = 2 ; pub const PIPE_QUERY_TIMESTAMP_DISJOINT : u32 = 3 ; pub const PIPE_QUERY_TIME_ELAPSED : u32 = 4 ; pub const PIPE_QUERY_PRIMITIVES_GENERATED : u32 = 5 ; pub const PIPE_QUERY_PRIMITIVES_EMITTED : u32 = 6 ; pub const PIPE_QUERY_SO_STATISTICS : u32 = 7 ; pub const PIPE_QUERY_SO_OVERFLOW_PREDICATE : u32 = 8 ; pub const PIPE_QUERY_GPU_FINISHED : u32 = 9 ; pub const PIPE_QUERY_PIPELINE_STATISTICS : u32 = 10 ; pub const PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVE : u32 = 11 ; pub const PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE : u32 = 12 ; pub const PIPE_QUERY_TYPES : u32 = 13 ; pub const PIPE_QUERY_DRIVER_SPECIFIC : u32 = 256 ; pub const PIPE_RENDER_COND_WAIT : u32 = 0 ; pub const PIPE_RENDER_COND_NO_WAIT : u32 = 1 ; pub const PIPE_RENDER_COND_BY_REGION_WAIT : u32 = 2 ; pub const PIPE_RENDER_COND_BY_REGION_NO_WAIT : u32 = 3 ; pub const PIPE_SPRITE_COORD_UPPER_LEFT : u32 = 0 ; pub const PIPE_SPRITE_COORD_LOWER_LEFT : u32 = 1 ; pub const PIPE_SWIZZLE_RED : u32 = 0 ; pub const PIPE_SWIZZLE_GREEN : u32 = 1 ; pub const PIPE_SWIZZLE_BLUE : u32 = 2 ; pub const PIPE_SWIZZLE_ALPHA : u32 = 3 ; pub const PIPE_SWIZZLE_ZERO : u32 = 4 ; pub const PIPE_SWIZZLE_ONE : u32 = 5 ; pub const PIPE_TIMEOUT_INFINITE : i32 = -1 ; pub const PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 : u32 = 1 ; pub const PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600 : u32 = 2 ; pub type boolean = :: std :: os :: raw :: c_uchar ; pub const PIPE_OK : pipe_error = 0 ; - /// < Generic error - pub const PIPE_ERROR : pipe_error = -1 ; pub const PIPE_ERROR_BAD_INPUT : pipe_error = -2 ; pub const PIPE_ERROR_OUT_OF_MEMORY : pipe_error = -3 ; pub const PIPE_ERROR_RETRY : pipe_error = -4 ; - /// Gallium error codes. +pub const _POSIX_PIPE_BUF: u32 = 512; +pub const PIPE_BUF: u32 = 4096; +pub const PIPE_BLENDFACTOR_ONE: u32 = 1; +pub const PIPE_BLENDFACTOR_SRC_COLOR: u32 = 2; +pub const PIPE_BLENDFACTOR_SRC_ALPHA: u32 = 3; +pub const PIPE_BLENDFACTOR_DST_ALPHA: u32 = 4; +pub const PIPE_BLENDFACTOR_DST_COLOR: u32 = 5; +pub const PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE: u32 = 6; +pub const PIPE_BLENDFACTOR_CONST_COLOR: u32 = 7; +pub const PIPE_BLENDFACTOR_CONST_ALPHA: u32 = 8; +pub const PIPE_BLENDFACTOR_SRC1_COLOR: u32 = 9; +pub const PIPE_BLENDFACTOR_SRC1_ALPHA: u32 = 10; +pub const PIPE_BLENDFACTOR_ZERO: u32 = 17; +pub const PIPE_BLENDFACTOR_INV_SRC_COLOR: u32 = 18; +pub const PIPE_BLENDFACTOR_INV_SRC_ALPHA: u32 = 19; +pub const PIPE_BLENDFACTOR_INV_DST_ALPHA: u32 = 20; +pub const PIPE_BLENDFACTOR_INV_DST_COLOR: u32 = 21; +pub const PIPE_BLENDFACTOR_INV_CONST_COLOR: u32 = 23; +pub const PIPE_BLENDFACTOR_INV_CONST_ALPHA: u32 = 24; +pub const PIPE_BLENDFACTOR_INV_SRC1_COLOR: u32 = 25; +pub const PIPE_BLENDFACTOR_INV_SRC1_ALPHA: u32 = 26; +pub const PIPE_BLEND_ADD: u32 = 0; +pub const PIPE_BLEND_SUBTRACT: u32 = 1; +pub const PIPE_BLEND_REVERSE_SUBTRACT: u32 = 2; +pub const PIPE_BLEND_MIN: u32 = 3; +pub const PIPE_BLEND_MAX: u32 = 4; +pub const PIPE_LOGICOP_CLEAR: u32 = 0; +pub const PIPE_LOGICOP_NOR: u32 = 1; +pub const PIPE_LOGICOP_AND_INVERTED: u32 = 2; +pub const PIPE_LOGICOP_COPY_INVERTED: u32 = 3; +pub const PIPE_LOGICOP_AND_REVERSE: u32 = 4; +pub const PIPE_LOGICOP_INVERT: u32 = 5; +pub const PIPE_LOGICOP_XOR: u32 = 6; +pub const PIPE_LOGICOP_NAND: u32 = 7; +pub const PIPE_LOGICOP_AND: u32 = 8; +pub const PIPE_LOGICOP_EQUIV: u32 = 9; +pub const PIPE_LOGICOP_NOOP: u32 = 10; +pub const PIPE_LOGICOP_OR_INVERTED: u32 = 11; +pub const PIPE_LOGICOP_COPY: u32 = 12; +pub const PIPE_LOGICOP_OR_REVERSE: u32 = 13; +pub const PIPE_LOGICOP_OR: u32 = 14; +pub const PIPE_LOGICOP_SET: u32 = 15; +pub const PIPE_MASK_R: u32 = 1; +pub const PIPE_MASK_G: u32 = 2; +pub const PIPE_MASK_B: u32 = 4; +pub const PIPE_MASK_A: u32 = 8; +pub const PIPE_MASK_RGBA: u32 = 15; +pub const PIPE_MASK_Z: u32 = 16; +pub const PIPE_MASK_S: u32 = 32; +pub const PIPE_MASK_ZS: u32 = 48; +pub const PIPE_MASK_RGBAZS: u32 = 63; +pub const PIPE_FUNC_NEVER: u32 = 0; +pub const PIPE_FUNC_LESS: u32 = 1; +pub const PIPE_FUNC_EQUAL: u32 = 2; +pub const PIPE_FUNC_LEQUAL: u32 = 3; +pub const PIPE_FUNC_GREATER: u32 = 4; +pub const PIPE_FUNC_NOTEQUAL: u32 = 5; +pub const PIPE_FUNC_GEQUAL: u32 = 6; +pub const PIPE_FUNC_ALWAYS: u32 = 7; +pub const PIPE_POLYGON_MODE_FILL: u32 = 0; +pub const PIPE_POLYGON_MODE_LINE: u32 = 1; +pub const PIPE_POLYGON_MODE_POINT: u32 = 2; +pub const PIPE_FACE_NONE: u32 = 0; +pub const PIPE_FACE_FRONT: u32 = 1; +pub const PIPE_FACE_BACK: u32 = 2; +pub const PIPE_FACE_FRONT_AND_BACK: u32 = 3; +pub const PIPE_STENCIL_OP_KEEP: u32 = 0; +pub const PIPE_STENCIL_OP_ZERO: u32 = 1; +pub const PIPE_STENCIL_OP_REPLACE: u32 = 2; +pub const PIPE_STENCIL_OP_INCR: u32 = 3; +pub const PIPE_STENCIL_OP_DECR: u32 = 4; +pub const PIPE_STENCIL_OP_INCR_WRAP: u32 = 5; +pub const PIPE_STENCIL_OP_DECR_WRAP: u32 = 6; +pub const PIPE_STENCIL_OP_INVERT: u32 = 7; +pub const PIPE_TEX_FACE_POS_X: u32 = 0; +pub const PIPE_TEX_FACE_NEG_X: u32 = 1; +pub const PIPE_TEX_FACE_POS_Y: u32 = 2; +pub const PIPE_TEX_FACE_NEG_Y: u32 = 3; +pub const PIPE_TEX_FACE_POS_Z: u32 = 4; +pub const PIPE_TEX_FACE_NEG_Z: u32 = 5; +pub const PIPE_TEX_FACE_MAX: u32 = 6; +pub const PIPE_TEX_WRAP_REPEAT: u32 = 0; +pub const PIPE_TEX_WRAP_CLAMP: u32 = 1; +pub const PIPE_TEX_WRAP_CLAMP_TO_EDGE: u32 = 2; +pub const PIPE_TEX_WRAP_CLAMP_TO_BORDER: u32 = 3; +pub const PIPE_TEX_WRAP_MIRROR_REPEAT: u32 = 4; +pub const PIPE_TEX_WRAP_MIRROR_CLAMP: u32 = 5; +pub const PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE: u32 = 6; +pub const PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER: u32 = 7; +pub const PIPE_TEX_MIPFILTER_NEAREST: u32 = 0; +pub const PIPE_TEX_MIPFILTER_LINEAR: u32 = 1; +pub const PIPE_TEX_MIPFILTER_NONE: u32 = 2; +pub const PIPE_TEX_FILTER_NEAREST: u32 = 0; +pub const PIPE_TEX_FILTER_LINEAR: u32 = 1; +pub const PIPE_TEX_COMPARE_NONE: u32 = 0; +pub const PIPE_TEX_COMPARE_R_TO_TEXTURE: u32 = 1; +pub const PIPE_CLEAR_DEPTH: u32 = 1; +pub const PIPE_CLEAR_STENCIL: u32 = 2; +pub const PIPE_CLEAR_COLOR0: u32 = 4; +pub const PIPE_CLEAR_COLOR1: u32 = 8; +pub const PIPE_CLEAR_COLOR2: u32 = 16; +pub const PIPE_CLEAR_COLOR3: u32 = 32; +pub const PIPE_CLEAR_COLOR4: u32 = 64; +pub const PIPE_CLEAR_COLOR5: u32 = 128; +pub const PIPE_CLEAR_COLOR6: u32 = 256; +pub const PIPE_CLEAR_COLOR7: u32 = 512; +pub const PIPE_CLEAR_COLOR: u32 = 1020; +pub const PIPE_CLEAR_DEPTHSTENCIL: u32 = 3; +pub const PIPE_BARRIER_MAPPED_BUFFER: u32 = 1; +pub const PIPE_BIND_DEPTH_STENCIL: u32 = 1; +pub const PIPE_BIND_RENDER_TARGET: u32 = 2; +pub const PIPE_BIND_BLENDABLE: u32 = 4; +pub const PIPE_BIND_SAMPLER_VIEW: u32 = 8; +pub const PIPE_BIND_VERTEX_BUFFER: u32 = 16; +pub const PIPE_BIND_INDEX_BUFFER: u32 = 32; +pub const PIPE_BIND_CONSTANT_BUFFER: u32 = 64; +pub const PIPE_BIND_DISPLAY_TARGET: u32 = 256; +pub const PIPE_BIND_TRANSFER_WRITE: u32 = 512; +pub const PIPE_BIND_TRANSFER_READ: u32 = 1024; +pub const PIPE_BIND_STREAM_OUTPUT: u32 = 2048; +pub const PIPE_BIND_CURSOR: u32 = 65536; +pub const PIPE_BIND_CUSTOM: u32 = 131072; +pub const PIPE_BIND_GLOBAL: u32 = 262144; +pub const PIPE_BIND_SHADER_RESOURCE: u32 = 524288; +pub const PIPE_BIND_COMPUTE_RESOURCE: u32 = 1048576; +pub const PIPE_BIND_COMMAND_ARGS_BUFFER: u32 = 2097152; +pub const PIPE_BIND_SCANOUT: u32 = 16384; +pub const PIPE_BIND_SHARED: u32 = 32768; +pub const PIPE_BIND_LINEAR: u32 = 2097152; +pub const PIPE_RESOURCE_FLAG_MAP_PERSISTENT: u32 = 1; +pub const PIPE_RESOURCE_FLAG_MAP_COHERENT: u32 = 2; +pub const PIPE_RESOURCE_FLAG_DRV_PRIV: u32 = 65536; +pub const PIPE_RESOURCE_FLAG_ST_PRIV: u32 = 16777216; +pub const PIPE_USAGE_DEFAULT: u32 = 0; +pub const PIPE_USAGE_IMMUTABLE: u32 = 1; +pub const PIPE_USAGE_DYNAMIC: u32 = 2; +pub const PIPE_USAGE_STREAM: u32 = 3; +pub const PIPE_USAGE_STAGING: u32 = 4; +pub const PIPE_SHADER_VERTEX: u32 = 0; +pub const PIPE_SHADER_FRAGMENT: u32 = 1; +pub const PIPE_SHADER_GEOMETRY: u32 = 2; +pub const PIPE_SHADER_TESS_CTRL: u32 = 3; +pub const PIPE_SHADER_TESS_EVAL: u32 = 4; +pub const PIPE_SHADER_COMPUTE: u32 = 5; +pub const PIPE_SHADER_TYPES: u32 = 6; +pub const PIPE_PRIM_POINTS: u32 = 0; +pub const PIPE_PRIM_LINES: u32 = 1; +pub const PIPE_PRIM_LINE_LOOP: u32 = 2; +pub const PIPE_PRIM_LINE_STRIP: u32 = 3; +pub const PIPE_PRIM_TRIANGLES: u32 = 4; +pub const PIPE_PRIM_TRIANGLE_STRIP: u32 = 5; +pub const PIPE_PRIM_TRIANGLE_FAN: u32 = 6; +pub const PIPE_PRIM_QUADS: u32 = 7; +pub const PIPE_PRIM_QUAD_STRIP: u32 = 8; +pub const PIPE_PRIM_POLYGON: u32 = 9; +pub const PIPE_PRIM_LINES_ADJACENCY: u32 = 10; +pub const PIPE_PRIM_LINE_STRIP_ADJACENCY: u32 = 11; +pub const PIPE_PRIM_TRIANGLES_ADJACENCY: u32 = 12; +pub const PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY: u32 = 13; +pub const PIPE_PRIM_PATCHES: u32 = 14; +pub const PIPE_PRIM_MAX: u32 = 15; +pub const PIPE_TESS_SPACING_FRACTIONAL_ODD: u32 = 0; +pub const PIPE_TESS_SPACING_FRACTIONAL_EVEN: u32 = 1; +pub const PIPE_TESS_SPACING_EQUAL: u32 = 2; +pub const PIPE_QUERY_OCCLUSION_COUNTER: u32 = 0; +pub const PIPE_QUERY_OCCLUSION_PREDICATE: u32 = 1; +pub const PIPE_QUERY_TIMESTAMP: u32 = 2; +pub const PIPE_QUERY_TIMESTAMP_DISJOINT: u32 = 3; +pub const PIPE_QUERY_TIME_ELAPSED: u32 = 4; +pub const PIPE_QUERY_PRIMITIVES_GENERATED: u32 = 5; +pub const PIPE_QUERY_PRIMITIVES_EMITTED: u32 = 6; +pub const PIPE_QUERY_SO_STATISTICS: u32 = 7; +pub const PIPE_QUERY_SO_OVERFLOW_PREDICATE: u32 = 8; +pub const PIPE_QUERY_GPU_FINISHED: u32 = 9; +pub const PIPE_QUERY_PIPELINE_STATISTICS: u32 = 10; +pub const PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVE: u32 = 11; +pub const PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE: u32 = 12; +pub const PIPE_QUERY_TYPES: u32 = 13; +pub const PIPE_QUERY_DRIVER_SPECIFIC: u32 = 256; +pub const PIPE_RENDER_COND_WAIT: u32 = 0; +pub const PIPE_RENDER_COND_NO_WAIT: u32 = 1; +pub const PIPE_RENDER_COND_BY_REGION_WAIT: u32 = 2; +pub const PIPE_RENDER_COND_BY_REGION_NO_WAIT: u32 = 3; +pub const PIPE_SPRITE_COORD_UPPER_LEFT: u32 = 0; +pub const PIPE_SPRITE_COORD_LOWER_LEFT: u32 = 1; +pub const PIPE_SWIZZLE_RED: u32 = 0; +pub const PIPE_SWIZZLE_GREEN: u32 = 1; +pub const PIPE_SWIZZLE_BLUE: u32 = 2; +pub const PIPE_SWIZZLE_ALPHA: u32 = 3; +pub const PIPE_SWIZZLE_ZERO: u32 = 4; +pub const PIPE_SWIZZLE_ONE: u32 = 5; +pub const PIPE_TIMEOUT_INFINITE: i32 = -1; +pub const PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50: u32 = 1; +pub const PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600: u32 = 2; +pub type boolean = ::std::os::raw::c_uchar; +pub const PIPE_OK: pipe_error = 0; +/// < Generic error +pub const PIPE_ERROR: pipe_error = -1; +pub const PIPE_ERROR_BAD_INPUT: pipe_error = -2; +pub const PIPE_ERROR_OUT_OF_MEMORY: pipe_error = -3; +pub const PIPE_ERROR_RETRY: pipe_error = -4; +/// Gallium error codes. /// /// - A zero value always means success. /// - A negative value always means failure. -/// - The meaning of a positive value is function dependent. - pub type pipe_error = i32 ; pub const PIPE_BUFFER : pipe_texture_target = 0 ; pub const PIPE_TEXTURE_1D : pipe_texture_target = 1 ; pub const PIPE_TEXTURE_2D : pipe_texture_target = 2 ; pub const PIPE_TEXTURE_3D : pipe_texture_target = 3 ; pub const PIPE_TEXTURE_CUBE : pipe_texture_target = 4 ; pub const PIPE_TEXTURE_RECT : pipe_texture_target = 5 ; pub const PIPE_TEXTURE_1D_ARRAY : pipe_texture_target = 6 ; pub const PIPE_TEXTURE_2D_ARRAY : pipe_texture_target = 7 ; pub const PIPE_TEXTURE_CUBE_ARRAY : pipe_texture_target = 8 ; pub const PIPE_MAX_TEXTURE_TYPES : pipe_texture_target = 9 ; - /// Texture types. -/// See the documentation for info on PIPE_TEXTURE_RECT vs PIPE_TEXTURE_2D - pub type pipe_texture_target = u32 ; - /// Resource contents read back (or accessed directly) at transfer -/// create time. - pub const PIPE_TRANSFER_READ : pipe_transfer_usage = 1 ; - /// Resource contents will be written back at transfer_unmap -/// time (or modified as a result of being accessed directly). - pub const PIPE_TRANSFER_WRITE : pipe_transfer_usage = 2 ; - /// Read/modify/write - pub const PIPE_TRANSFER_READ_WRITE : pipe_transfer_usage = 3 ; - /// The transfer should map the texture storage directly. The driver may +/// - The meaning of a positive value is function dependent. +pub type pipe_error = i32; +pub const PIPE_BUFFER: pipe_texture_target = 0; +pub const PIPE_TEXTURE_1D: pipe_texture_target = 1; +pub const PIPE_TEXTURE_2D: pipe_texture_target = 2; +pub const PIPE_TEXTURE_3D: pipe_texture_target = 3; +pub const PIPE_TEXTURE_CUBE: pipe_texture_target = 4; +pub const PIPE_TEXTURE_RECT: pipe_texture_target = 5; +pub const PIPE_TEXTURE_1D_ARRAY: pipe_texture_target = 6; +pub const PIPE_TEXTURE_2D_ARRAY: pipe_texture_target = 7; +pub const PIPE_TEXTURE_CUBE_ARRAY: pipe_texture_target = 8; +pub const PIPE_MAX_TEXTURE_TYPES: pipe_texture_target = 9; +/// Texture types. +/// See the documentation for info on PIPE_TEXTURE_RECT vs PIPE_TEXTURE_2D +pub type pipe_texture_target = u32; +/// Resource contents read back (or accessed directly) at transfer +/// create time. +pub const PIPE_TRANSFER_READ: pipe_transfer_usage = 1; +/// Resource contents will be written back at transfer_unmap +/// time (or modified as a result of being accessed directly). +pub const PIPE_TRANSFER_WRITE: pipe_transfer_usage = 2; +/// Read/modify/write +pub const PIPE_TRANSFER_READ_WRITE: pipe_transfer_usage = 3; +/// The transfer should map the texture storage directly. The driver may /// return NULL if that isn't possible, and the state tracker needs to cope /// with that and use an alternative path without this flag. /// /// E.g. the state tracker could have a simpler path which maps textures and /// does read/modify/write cycles on them directly, and a more complicated -/// path which uses minimal read and write transfers. - pub const PIPE_TRANSFER_MAP_DIRECTLY : pipe_transfer_usage = 4 ; - /// Discards the memory within the mapped region. +/// path which uses minimal read and write transfers. +pub const PIPE_TRANSFER_MAP_DIRECTLY: pipe_transfer_usage = 4; +/// Discards the memory within the mapped region. /// /// It should not be used with PIPE_TRANSFER_READ. /// /// See also: -/// - OpenGL's ARB_map_buffer_range extension, MAP_INVALIDATE_RANGE_BIT flag. - pub const PIPE_TRANSFER_DISCARD_RANGE : pipe_transfer_usage = 256 ; - /// Fail if the resource cannot be mapped immediately. +/// - OpenGL's ARB_map_buffer_range extension, MAP_INVALIDATE_RANGE_BIT flag. +pub const PIPE_TRANSFER_DISCARD_RANGE: pipe_transfer_usage = 256; +/// Fail if the resource cannot be mapped immediately. /// /// See also: /// - Direct3D's D3DLOCK_DONOTWAIT flag. /// - Mesa3D's MESA_MAP_NOWAIT_BIT flag. -/// - WDDM's D3DDDICB_LOCKFLAGS.DonotWait flag. - pub const PIPE_TRANSFER_DONTBLOCK : pipe_transfer_usage = 512 ; - /// Do not attempt to synchronize pending operations on the resource when mapping. +/// - WDDM's D3DDDICB_LOCKFLAGS.DonotWait flag. +pub const PIPE_TRANSFER_DONTBLOCK: pipe_transfer_usage = 512; +/// Do not attempt to synchronize pending operations on the resource when mapping. /// /// It should not be used with PIPE_TRANSFER_READ. /// /// See also: /// - OpenGL's ARB_map_buffer_range extension, MAP_UNSYNCHRONIZED_BIT flag. /// - Direct3D's D3DLOCK_NOOVERWRITE flag. -/// - WDDM's D3DDDICB_LOCKFLAGS.IgnoreSync flag. - pub const PIPE_TRANSFER_UNSYNCHRONIZED : pipe_transfer_usage = 1024 ; - /// Written ranges will be notified later with +/// - WDDM's D3DDDICB_LOCKFLAGS.IgnoreSync flag. +pub const PIPE_TRANSFER_UNSYNCHRONIZED: pipe_transfer_usage = 1024; +/// Written ranges will be notified later with /// pipe_context::transfer_flush_region. /// /// It should not be used with PIPE_TRANSFER_READ. /// /// See also: /// - pipe_context::transfer_flush_region -/// - OpenGL's ARB_map_buffer_range extension, MAP_FLUSH_EXPLICIT_BIT flag. - pub const PIPE_TRANSFER_FLUSH_EXPLICIT : pipe_transfer_usage = 2048 ; - /// Discards all memory backing the resource. +/// - OpenGL's ARB_map_buffer_range extension, MAP_FLUSH_EXPLICIT_BIT flag. +pub const PIPE_TRANSFER_FLUSH_EXPLICIT: pipe_transfer_usage = 2048; +/// Discards all memory backing the resource. /// /// It should not be used with PIPE_TRANSFER_READ. /// @@ -70,218 +278,329 @@ pub const _POSIX_PIPE_BUF : u32 = 512 ; pub const PIPE_BUF : u32 = 4096 ; pub co /// - Direct3D's D3DLOCK_DISCARD flag. /// - WDDM's D3DDDICB_LOCKFLAGS.Discard flag. /// - D3D10 DDI's D3D10_DDI_MAP_WRITE_DISCARD flag -/// - D3D10's D3D10_MAP_WRITE_DISCARD flag. - pub const PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE : pipe_transfer_usage = 4096 ; - /// Allows the resource to be used for rendering while mapped. +/// - D3D10's D3D10_MAP_WRITE_DISCARD flag. +pub const PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE: pipe_transfer_usage = 4096; +/// Allows the resource to be used for rendering while mapped. /// /// PIPE_RESOURCE_FLAG_MAP_PERSISTENT must be set when creating /// the resource. /// /// If COHERENT is not set, memory_barrier(PIPE_BARRIER_MAPPED_BUFFER) -/// must be called to ensure the device can see what the CPU has written. - pub const PIPE_TRANSFER_PERSISTENT : pipe_transfer_usage = 8192 ; - /// If PERSISTENT is set, this ensures any writes done by the device are +/// must be called to ensure the device can see what the CPU has written. +pub const PIPE_TRANSFER_PERSISTENT: pipe_transfer_usage = 8192; +/// If PERSISTENT is set, this ensures any writes done by the device are /// immediately visible to the CPU and vice versa. /// /// PIPE_RESOURCE_FLAG_MAP_COHERENT must be set when creating -/// the resource. - pub const PIPE_TRANSFER_COHERENT : pipe_transfer_usage = 16384 ; - /// Transfer object usage flags - pub type pipe_transfer_usage = u32 ; pub const PIPE_FLUSH_END_OF_FRAME : pipe_flush_flags = 1 ; - /// Flags for the flush function. - pub type pipe_flush_flags = u32 ; pub const PIPE_CAP_NPOT_TEXTURES : pipe_cap = 1 ; pub const PIPE_CAP_TWO_SIDED_STENCIL : pipe_cap = 2 ; pub const PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS : pipe_cap = 4 ; pub const PIPE_CAP_ANISOTROPIC_FILTER : pipe_cap = 5 ; pub const PIPE_CAP_POINT_SPRITE : pipe_cap = 6 ; pub const PIPE_CAP_MAX_RENDER_TARGETS : pipe_cap = 7 ; pub const PIPE_CAP_OCCLUSION_QUERY : pipe_cap = 8 ; pub const PIPE_CAP_QUERY_TIME_ELAPSED : pipe_cap = 9 ; pub const PIPE_CAP_TEXTURE_SHADOW_MAP : pipe_cap = 10 ; pub const PIPE_CAP_TEXTURE_SWIZZLE : pipe_cap = 11 ; pub const PIPE_CAP_MAX_TEXTURE_2D_LEVELS : pipe_cap = 12 ; pub const PIPE_CAP_MAX_TEXTURE_3D_LEVELS : pipe_cap = 13 ; pub const PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS : pipe_cap = 14 ; pub const PIPE_CAP_TEXTURE_MIRROR_CLAMP : pipe_cap = 25 ; pub const PIPE_CAP_BLEND_EQUATION_SEPARATE : pipe_cap = 28 ; pub const PIPE_CAP_SM3 : pipe_cap = 29 ; pub const PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS : pipe_cap = 30 ; pub const PIPE_CAP_PRIMITIVE_RESTART : pipe_cap = 31 ; - /// blend enables and write masks per rendertarget - pub const PIPE_CAP_INDEP_BLEND_ENABLE : pipe_cap = 33 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_INDEP_BLEND_FUNC : pipe_cap = 34 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS : pipe_cap = 36 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT : pipe_cap = 37 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT : pipe_cap = 38 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER : pipe_cap = 39 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER : pipe_cap = 40 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_DEPTH_CLIP_DISABLE : pipe_cap = 41 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_SHADER_STENCIL_EXPORT : pipe_cap = 42 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TGSI_INSTANCEID : pipe_cap = 43 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR : pipe_cap = 44 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_FRAGMENT_COLOR_CLAMPED : pipe_cap = 45 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MIXED_COLORBUFFER_FORMATS : pipe_cap = 46 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_SEAMLESS_CUBE_MAP : pipe_cap = 47 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE : pipe_cap = 48 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MIN_TEXEL_OFFSET : pipe_cap = 50 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_TEXEL_OFFSET : pipe_cap = 51 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_CONDITIONAL_RENDER : pipe_cap = 52 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TEXTURE_BARRIER : pipe_cap = 53 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS : pipe_cap = 55 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS : pipe_cap = 56 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME : pipe_cap = 57 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS : pipe_cap = 59 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_VERTEX_COLOR_UNCLAMPED : pipe_cap = 60 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_VERTEX_COLOR_CLAMPED : pipe_cap = 61 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_GLSL_FEATURE_LEVEL : pipe_cap = 62 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION : pipe_cap = 63 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_USER_VERTEX_BUFFERS : pipe_cap = 64 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY : pipe_cap = 65 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY : pipe_cap = 66 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY : pipe_cap = 67 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_COMPUTE : pipe_cap = 68 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_USER_INDEX_BUFFERS : pipe_cap = 69 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_USER_CONSTANT_BUFFERS : pipe_cap = 70 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT : pipe_cap = 71 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_START_INSTANCE : pipe_cap = 72 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_QUERY_TIMESTAMP : pipe_cap = 73 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TEXTURE_MULTISAMPLE : pipe_cap = 74 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT : pipe_cap = 75 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_CUBE_MAP_ARRAY : pipe_cap = 76 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TEXTURE_BUFFER_OBJECTS : pipe_cap = 77 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT : pipe_cap = 78 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TGSI_TEXCOORD : pipe_cap = 79 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER : pipe_cap = 80 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_QUERY_PIPELINE_STATISTICS : pipe_cap = 81 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK : pipe_cap = 82 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE : pipe_cap = 83 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_VIEWPORTS : pipe_cap = 84 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_ENDIANNESS : pipe_cap = 85 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MIXED_FRAMEBUFFER_SIZES : pipe_cap = 86 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TGSI_VS_LAYER_VIEWPORT : pipe_cap = 87 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_GEOMETRY_OUTPUT_VERTICES : pipe_cap = 88 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS : pipe_cap = 89 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS : pipe_cap = 90 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TEXTURE_GATHER_SM5 : pipe_cap = 91 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT : pipe_cap = 92 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_FAKE_SW_MSAA : pipe_cap = 93 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TEXTURE_QUERY_LOD : pipe_cap = 94 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MIN_TEXTURE_GATHER_OFFSET : pipe_cap = 95 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_TEXTURE_GATHER_OFFSET : pipe_cap = 96 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_SAMPLE_SHADING : pipe_cap = 97 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TEXTURE_GATHER_OFFSETS : pipe_cap = 98 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION : pipe_cap = 99 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_VERTEX_STREAMS : pipe_cap = 100 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_DRAW_INDIRECT : pipe_cap = 101 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_TGSI_FS_FINE_DERIVATIVE : pipe_cap = 102 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_VENDOR_ID : pipe_cap = 103 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_DEVICE_ID : pipe_cap = 104 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_ACCELERATED : pipe_cap = 105 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_VIDEO_MEMORY : pipe_cap = 106 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_UMA : pipe_cap = 107 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_CONDITIONAL_RENDER_INVERTED : pipe_cap = 108 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_MAX_VERTEX_ATTRIB_STRIDE : pipe_cap = 109 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_SAMPLER_VIEW_TARGET : pipe_cap = 110 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_CLIP_HALFZ : pipe_cap = 111 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_VERTEXID_NOBASE : pipe_cap = 112 ; - /// different blend funcs per rendertarget - pub const PIPE_CAP_POLYGON_OFFSET_CLAMP : pipe_cap = 113 ; - /// Implementation capabilities/limits which are queried through -/// pipe_screen::get_param() - pub type pipe_cap = u32 ; pub const PIPE_ENDIAN_LITTLE : pipe_endian = 0 ; pub const PIPE_ENDIAN_BIG : pipe_endian = 1 ; pub const PIPE_ENDIAN_NATIVE : pipe_endian = 0 ; pub type pipe_endian = u32 ; pub const PIPE_CAPF_MAX_LINE_WIDTH : pipe_capf = 0 ; pub const PIPE_CAPF_MAX_LINE_WIDTH_AA : pipe_capf = 1 ; pub const PIPE_CAPF_MAX_POINT_WIDTH : pipe_capf = 2 ; pub const PIPE_CAPF_MAX_POINT_WIDTH_AA : pipe_capf = 3 ; pub const PIPE_CAPF_MAX_TEXTURE_ANISOTROPY : pipe_capf = 4 ; pub const PIPE_CAPF_MAX_TEXTURE_LOD_BIAS : pipe_capf = 5 ; pub const PIPE_CAPF_GUARD_BAND_LEFT : pipe_capf = 6 ; pub const PIPE_CAPF_GUARD_BAND_TOP : pipe_capf = 7 ; pub const PIPE_CAPF_GUARD_BAND_RIGHT : pipe_capf = 8 ; pub const PIPE_CAPF_GUARD_BAND_BOTTOM : pipe_capf = 9 ; - /// Implementation limits which are queried through -/// pipe_screen::get_paramf() - pub type pipe_capf = u32 ; pub const PIPE_SHADER_CAP_MAX_INSTRUCTIONS : pipe_shader_cap = 0 ; pub const PIPE_SHADER_CAP_MAX_ALU_INSTRUCTIONS : pipe_shader_cap = 1 ; pub const PIPE_SHADER_CAP_MAX_TEX_INSTRUCTIONS : pipe_shader_cap = 2 ; pub const PIPE_SHADER_CAP_MAX_TEX_INDIRECTIONS : pipe_shader_cap = 3 ; pub const PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH : pipe_shader_cap = 4 ; pub const PIPE_SHADER_CAP_MAX_INPUTS : pipe_shader_cap = 5 ; pub const PIPE_SHADER_CAP_MAX_OUTPUTS : pipe_shader_cap = 6 ; pub const PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE : pipe_shader_cap = 7 ; pub const PIPE_SHADER_CAP_MAX_CONST_BUFFERS : pipe_shader_cap = 8 ; pub const PIPE_SHADER_CAP_MAX_TEMPS : pipe_shader_cap = 9 ; pub const PIPE_SHADER_CAP_MAX_PREDS : pipe_shader_cap = 10 ; pub const PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED : pipe_shader_cap = 11 ; pub const PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR : pipe_shader_cap = 12 ; pub const PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR : pipe_shader_cap = 13 ; pub const PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR : pipe_shader_cap = 14 ; pub const PIPE_SHADER_CAP_INDIRECT_CONST_ADDR : pipe_shader_cap = 15 ; pub const PIPE_SHADER_CAP_SUBROUTINES : pipe_shader_cap = 16 ; pub const PIPE_SHADER_CAP_INTEGERS : pipe_shader_cap = 17 ; pub const PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS : pipe_shader_cap = 18 ; pub const PIPE_SHADER_CAP_PREFERRED_IR : pipe_shader_cap = 19 ; pub const PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED : pipe_shader_cap = 20 ; pub const PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS : pipe_shader_cap = 21 ; pub const PIPE_SHADER_CAP_DOUBLES : pipe_shader_cap = 22 ; pub type pipe_shader_cap = u32 ; pub const PIPE_SHADER_IR_TGSI : pipe_shader_ir = 0 ; pub const PIPE_SHADER_IR_LLVM : pipe_shader_ir = 1 ; pub const PIPE_SHADER_IR_NATIVE : pipe_shader_ir = 2 ; - /// Shader intermediate representation. - pub type pipe_shader_ir = u32 ; pub const PIPE_COMPUTE_CAP_IR_TARGET : pipe_compute_cap = 0 ; pub const PIPE_COMPUTE_CAP_GRID_DIMENSION : pipe_compute_cap = 1 ; pub const PIPE_COMPUTE_CAP_MAX_GRID_SIZE : pipe_compute_cap = 2 ; pub const PIPE_COMPUTE_CAP_MAX_BLOCK_SIZE : pipe_compute_cap = 3 ; pub const PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK : pipe_compute_cap = 4 ; pub const PIPE_COMPUTE_CAP_MAX_GLOBAL_SIZE : pipe_compute_cap = 5 ; pub const PIPE_COMPUTE_CAP_MAX_LOCAL_SIZE : pipe_compute_cap = 6 ; pub const PIPE_COMPUTE_CAP_MAX_PRIVATE_SIZE : pipe_compute_cap = 7 ; pub const PIPE_COMPUTE_CAP_MAX_INPUT_SIZE : pipe_compute_cap = 8 ; pub const PIPE_COMPUTE_CAP_MAX_MEM_ALLOC_SIZE : pipe_compute_cap = 9 ; pub const PIPE_COMPUTE_CAP_MAX_CLOCK_FREQUENCY : pipe_compute_cap = 10 ; pub const PIPE_COMPUTE_CAP_MAX_COMPUTE_UNITS : pipe_compute_cap = 11 ; pub const PIPE_COMPUTE_CAP_IMAGES_SUPPORTED : pipe_compute_cap = 12 ; - /// Compute-specific implementation capability. They can be queried -/// using pipe_screen::get_compute_param. - pub type pipe_compute_cap = u32 ; - /// Query result for PIPE_QUERY_SO_STATISTICS. - # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct pipe_query_data_so_statistics { pub num_primitives_written : u64 , pub primitives_storage_needed : u64 , } - /// Query result for PIPE_QUERY_TIMESTAMP_DISJOINT. - # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct pipe_query_data_timestamp_disjoint { pub frequency : u64 , pub disjoint : boolean , } - /// Query result for PIPE_QUERY_PIPELINE_STATISTICS. - # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct pipe_query_data_pipeline_statistics { - /// < Num vertices read by the vertex fetcher. - pub ia_vertices : u64 , - /// < Num primitives read by the vertex fetcher. - pub ia_primitives : u64 , - /// < Num vertex shader invocations. - pub vs_invocations : u64 , - /// < Num geometry shader invocations. - pub gs_invocations : u64 , - /// < Num primitives output by a geometry shader. - pub gs_primitives : u64 , - /// < Num primitives sent to the rasterizer. - pub c_invocations : u64 , - /// < Num primitives that were rendered. - pub c_primitives : u64 , - /// < Num pixel shader invocations. - pub ps_invocations : u64 , - /// < Num hull shader invocations. - pub hs_invocations : u64 , - /// < Num domain shader invocations. - pub ds_invocations : u64 , - /// < Num compute shader invocations. - pub cs_invocations : u64 , } - /// Query result (returned by pipe_context::get_query_result). - # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pipe_query_result { pub b : boolean , pub u64 : u64 , pub so_statistics : pipe_query_data_so_statistics , pub timestamp_disjoint : pipe_query_data_timestamp_disjoint , pub pipeline_statistics : pipe_query_data_pipeline_statistics , _bindgen_union_align : [ u64 ; 11usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pipe_color_union { pub f : [ f32 ; 4usize ] , pub i : [ :: std :: os :: raw :: c_int ; 4usize ] , pub ui : [ :: std :: os :: raw :: c_uint ; 4usize ] , _bindgen_union_align : [ u32 ; 4usize ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct pipe_driver_query_info { pub name : * const :: std :: os :: raw :: c_char , pub query_type : :: std :: os :: raw :: c_uint , pub max_value : u64 , pub uses_byte_units : boolean , } \ No newline at end of file +/// the resource. +pub const PIPE_TRANSFER_COHERENT: pipe_transfer_usage = 16384; +/// Transfer object usage flags +pub type pipe_transfer_usage = u32; +pub const PIPE_FLUSH_END_OF_FRAME: pipe_flush_flags = 1; +/// Flags for the flush function. +pub type pipe_flush_flags = u32; +pub const PIPE_CAP_NPOT_TEXTURES: pipe_cap = 1; +pub const PIPE_CAP_TWO_SIDED_STENCIL: pipe_cap = 2; +pub const PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS: pipe_cap = 4; +pub const PIPE_CAP_ANISOTROPIC_FILTER: pipe_cap = 5; +pub const PIPE_CAP_POINT_SPRITE: pipe_cap = 6; +pub const PIPE_CAP_MAX_RENDER_TARGETS: pipe_cap = 7; +pub const PIPE_CAP_OCCLUSION_QUERY: pipe_cap = 8; +pub const PIPE_CAP_QUERY_TIME_ELAPSED: pipe_cap = 9; +pub const PIPE_CAP_TEXTURE_SHADOW_MAP: pipe_cap = 10; +pub const PIPE_CAP_TEXTURE_SWIZZLE: pipe_cap = 11; +pub const PIPE_CAP_MAX_TEXTURE_2D_LEVELS: pipe_cap = 12; +pub const PIPE_CAP_MAX_TEXTURE_3D_LEVELS: pipe_cap = 13; +pub const PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS: pipe_cap = 14; +pub const PIPE_CAP_TEXTURE_MIRROR_CLAMP: pipe_cap = 25; +pub const PIPE_CAP_BLEND_EQUATION_SEPARATE: pipe_cap = 28; +pub const PIPE_CAP_SM3: pipe_cap = 29; +pub const PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS: pipe_cap = 30; +pub const PIPE_CAP_PRIMITIVE_RESTART: pipe_cap = 31; +/// blend enables and write masks per rendertarget +pub const PIPE_CAP_INDEP_BLEND_ENABLE: pipe_cap = 33; +/// different blend funcs per rendertarget +pub const PIPE_CAP_INDEP_BLEND_FUNC: pipe_cap = 34; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: pipe_cap = 36; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT: pipe_cap = 37; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT: pipe_cap = 38; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER: pipe_cap = 39; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER: pipe_cap = 40; +/// different blend funcs per rendertarget +pub const PIPE_CAP_DEPTH_CLIP_DISABLE: pipe_cap = 41; +/// different blend funcs per rendertarget +pub const PIPE_CAP_SHADER_STENCIL_EXPORT: pipe_cap = 42; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TGSI_INSTANCEID: pipe_cap = 43; +/// different blend funcs per rendertarget +pub const PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR: pipe_cap = 44; +/// different blend funcs per rendertarget +pub const PIPE_CAP_FRAGMENT_COLOR_CLAMPED: pipe_cap = 45; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MIXED_COLORBUFFER_FORMATS: pipe_cap = 46; +/// different blend funcs per rendertarget +pub const PIPE_CAP_SEAMLESS_CUBE_MAP: pipe_cap = 47; +/// different blend funcs per rendertarget +pub const PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE: pipe_cap = 48; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MIN_TEXEL_OFFSET: pipe_cap = 50; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_TEXEL_OFFSET: pipe_cap = 51; +/// different blend funcs per rendertarget +pub const PIPE_CAP_CONDITIONAL_RENDER: pipe_cap = 52; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TEXTURE_BARRIER: pipe_cap = 53; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS: pipe_cap = 55; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS: pipe_cap = 56; +/// different blend funcs per rendertarget +pub const PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME: pipe_cap = 57; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS: pipe_cap = 59; +/// different blend funcs per rendertarget +pub const PIPE_CAP_VERTEX_COLOR_UNCLAMPED: pipe_cap = 60; +/// different blend funcs per rendertarget +pub const PIPE_CAP_VERTEX_COLOR_CLAMPED: pipe_cap = 61; +/// different blend funcs per rendertarget +pub const PIPE_CAP_GLSL_FEATURE_LEVEL: pipe_cap = 62; +/// different blend funcs per rendertarget +pub const PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: pipe_cap = 63; +/// different blend funcs per rendertarget +pub const PIPE_CAP_USER_VERTEX_BUFFERS: pipe_cap = 64; +/// different blend funcs per rendertarget +pub const PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY: pipe_cap = 65; +/// different blend funcs per rendertarget +pub const PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY: pipe_cap = 66; +/// different blend funcs per rendertarget +pub const PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY: pipe_cap = 67; +/// different blend funcs per rendertarget +pub const PIPE_CAP_COMPUTE: pipe_cap = 68; +/// different blend funcs per rendertarget +pub const PIPE_CAP_USER_INDEX_BUFFERS: pipe_cap = 69; +/// different blend funcs per rendertarget +pub const PIPE_CAP_USER_CONSTANT_BUFFERS: pipe_cap = 70; +/// different blend funcs per rendertarget +pub const PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT: pipe_cap = 71; +/// different blend funcs per rendertarget +pub const PIPE_CAP_START_INSTANCE: pipe_cap = 72; +/// different blend funcs per rendertarget +pub const PIPE_CAP_QUERY_TIMESTAMP: pipe_cap = 73; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TEXTURE_MULTISAMPLE: pipe_cap = 74; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT: pipe_cap = 75; +/// different blend funcs per rendertarget +pub const PIPE_CAP_CUBE_MAP_ARRAY: pipe_cap = 76; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TEXTURE_BUFFER_OBJECTS: pipe_cap = 77; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT: pipe_cap = 78; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TGSI_TEXCOORD: pipe_cap = 79; +/// different blend funcs per rendertarget +pub const PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER: pipe_cap = 80; +/// different blend funcs per rendertarget +pub const PIPE_CAP_QUERY_PIPELINE_STATISTICS: pipe_cap = 81; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK: pipe_cap = 82; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE: pipe_cap = 83; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_VIEWPORTS: pipe_cap = 84; +/// different blend funcs per rendertarget +pub const PIPE_CAP_ENDIANNESS: pipe_cap = 85; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: pipe_cap = 86; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TGSI_VS_LAYER_VIEWPORT: pipe_cap = 87; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_GEOMETRY_OUTPUT_VERTICES: pipe_cap = 88; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: pipe_cap = 89; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS: pipe_cap = 90; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TEXTURE_GATHER_SM5: pipe_cap = 91; +/// different blend funcs per rendertarget +pub const PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT: pipe_cap = 92; +/// different blend funcs per rendertarget +pub const PIPE_CAP_FAKE_SW_MSAA: pipe_cap = 93; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TEXTURE_QUERY_LOD: pipe_cap = 94; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MIN_TEXTURE_GATHER_OFFSET: pipe_cap = 95; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_TEXTURE_GATHER_OFFSET: pipe_cap = 96; +/// different blend funcs per rendertarget +pub const PIPE_CAP_SAMPLE_SHADING: pipe_cap = 97; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TEXTURE_GATHER_OFFSETS: pipe_cap = 98; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION: pipe_cap = 99; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_VERTEX_STREAMS: pipe_cap = 100; +/// different blend funcs per rendertarget +pub const PIPE_CAP_DRAW_INDIRECT: pipe_cap = 101; +/// different blend funcs per rendertarget +pub const PIPE_CAP_TGSI_FS_FINE_DERIVATIVE: pipe_cap = 102; +/// different blend funcs per rendertarget +pub const PIPE_CAP_VENDOR_ID: pipe_cap = 103; +/// different blend funcs per rendertarget +pub const PIPE_CAP_DEVICE_ID: pipe_cap = 104; +/// different blend funcs per rendertarget +pub const PIPE_CAP_ACCELERATED: pipe_cap = 105; +/// different blend funcs per rendertarget +pub const PIPE_CAP_VIDEO_MEMORY: pipe_cap = 106; +/// different blend funcs per rendertarget +pub const PIPE_CAP_UMA: pipe_cap = 107; +/// different blend funcs per rendertarget +pub const PIPE_CAP_CONDITIONAL_RENDER_INVERTED: pipe_cap = 108; +/// different blend funcs per rendertarget +pub const PIPE_CAP_MAX_VERTEX_ATTRIB_STRIDE: pipe_cap = 109; +/// different blend funcs per rendertarget +pub const PIPE_CAP_SAMPLER_VIEW_TARGET: pipe_cap = 110; +/// different blend funcs per rendertarget +pub const PIPE_CAP_CLIP_HALFZ: pipe_cap = 111; +/// different blend funcs per rendertarget +pub const PIPE_CAP_VERTEXID_NOBASE: pipe_cap = 112; +/// different blend funcs per rendertarget +pub const PIPE_CAP_POLYGON_OFFSET_CLAMP: pipe_cap = 113; +/// Implementation capabilities/limits which are queried through +/// pipe_screen::get_param() +pub type pipe_cap = u32; +pub const PIPE_ENDIAN_LITTLE: pipe_endian = 0; +pub const PIPE_ENDIAN_BIG: pipe_endian = 1; +pub const PIPE_ENDIAN_NATIVE: pipe_endian = 0; +pub type pipe_endian = u32; +pub const PIPE_CAPF_MAX_LINE_WIDTH: pipe_capf = 0; +pub const PIPE_CAPF_MAX_LINE_WIDTH_AA: pipe_capf = 1; +pub const PIPE_CAPF_MAX_POINT_WIDTH: pipe_capf = 2; +pub const PIPE_CAPF_MAX_POINT_WIDTH_AA: pipe_capf = 3; +pub const PIPE_CAPF_MAX_TEXTURE_ANISOTROPY: pipe_capf = 4; +pub const PIPE_CAPF_MAX_TEXTURE_LOD_BIAS: pipe_capf = 5; +pub const PIPE_CAPF_GUARD_BAND_LEFT: pipe_capf = 6; +pub const PIPE_CAPF_GUARD_BAND_TOP: pipe_capf = 7; +pub const PIPE_CAPF_GUARD_BAND_RIGHT: pipe_capf = 8; +pub const PIPE_CAPF_GUARD_BAND_BOTTOM: pipe_capf = 9; +/// Implementation limits which are queried through +/// pipe_screen::get_paramf() +pub type pipe_capf = u32; +pub const PIPE_SHADER_CAP_MAX_INSTRUCTIONS: pipe_shader_cap = 0; +pub const PIPE_SHADER_CAP_MAX_ALU_INSTRUCTIONS: pipe_shader_cap = 1; +pub const PIPE_SHADER_CAP_MAX_TEX_INSTRUCTIONS: pipe_shader_cap = 2; +pub const PIPE_SHADER_CAP_MAX_TEX_INDIRECTIONS: pipe_shader_cap = 3; +pub const PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH: pipe_shader_cap = 4; +pub const PIPE_SHADER_CAP_MAX_INPUTS: pipe_shader_cap = 5; +pub const PIPE_SHADER_CAP_MAX_OUTPUTS: pipe_shader_cap = 6; +pub const PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE: pipe_shader_cap = 7; +pub const PIPE_SHADER_CAP_MAX_CONST_BUFFERS: pipe_shader_cap = 8; +pub const PIPE_SHADER_CAP_MAX_TEMPS: pipe_shader_cap = 9; +pub const PIPE_SHADER_CAP_MAX_PREDS: pipe_shader_cap = 10; +pub const PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED: pipe_shader_cap = 11; +pub const PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR: pipe_shader_cap = 12; +pub const PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR: pipe_shader_cap = 13; +pub const PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR: pipe_shader_cap = 14; +pub const PIPE_SHADER_CAP_INDIRECT_CONST_ADDR: pipe_shader_cap = 15; +pub const PIPE_SHADER_CAP_SUBROUTINES: pipe_shader_cap = 16; +pub const PIPE_SHADER_CAP_INTEGERS: pipe_shader_cap = 17; +pub const PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: pipe_shader_cap = 18; +pub const PIPE_SHADER_CAP_PREFERRED_IR: pipe_shader_cap = 19; +pub const PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED: pipe_shader_cap = 20; +pub const PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: pipe_shader_cap = 21; +pub const PIPE_SHADER_CAP_DOUBLES: pipe_shader_cap = 22; +pub type pipe_shader_cap = u32; +pub const PIPE_SHADER_IR_TGSI: pipe_shader_ir = 0; +pub const PIPE_SHADER_IR_LLVM: pipe_shader_ir = 1; +pub const PIPE_SHADER_IR_NATIVE: pipe_shader_ir = 2; +/// Shader intermediate representation. +pub type pipe_shader_ir = u32; +pub const PIPE_COMPUTE_CAP_IR_TARGET: pipe_compute_cap = 0; +pub const PIPE_COMPUTE_CAP_GRID_DIMENSION: pipe_compute_cap = 1; +pub const PIPE_COMPUTE_CAP_MAX_GRID_SIZE: pipe_compute_cap = 2; +pub const PIPE_COMPUTE_CAP_MAX_BLOCK_SIZE: pipe_compute_cap = 3; +pub const PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK: pipe_compute_cap = 4; +pub const PIPE_COMPUTE_CAP_MAX_GLOBAL_SIZE: pipe_compute_cap = 5; +pub const PIPE_COMPUTE_CAP_MAX_LOCAL_SIZE: pipe_compute_cap = 6; +pub const PIPE_COMPUTE_CAP_MAX_PRIVATE_SIZE: pipe_compute_cap = 7; +pub const PIPE_COMPUTE_CAP_MAX_INPUT_SIZE: pipe_compute_cap = 8; +pub const PIPE_COMPUTE_CAP_MAX_MEM_ALLOC_SIZE: pipe_compute_cap = 9; +pub const PIPE_COMPUTE_CAP_MAX_CLOCK_FREQUENCY: pipe_compute_cap = 10; +pub const PIPE_COMPUTE_CAP_MAX_COMPUTE_UNITS: pipe_compute_cap = 11; +pub const PIPE_COMPUTE_CAP_IMAGES_SUPPORTED: pipe_compute_cap = 12; +/// Compute-specific implementation capability. They can be queried +/// using pipe_screen::get_compute_param. +pub type pipe_compute_cap = u32; +/// Query result for PIPE_QUERY_SO_STATISTICS. +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pipe_query_data_so_statistics { + pub num_primitives_written: u64, + pub primitives_storage_needed: u64, +} +/// Query result for PIPE_QUERY_TIMESTAMP_DISJOINT. +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pipe_query_data_timestamp_disjoint { + pub frequency: u64, + pub disjoint: boolean, +} +/// Query result for PIPE_QUERY_PIPELINE_STATISTICS. +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pipe_query_data_pipeline_statistics { + /// < Num vertices read by the vertex fetcher. + pub ia_vertices: u64, + /// < Num primitives read by the vertex fetcher. + pub ia_primitives: u64, + /// < Num vertex shader invocations. + pub vs_invocations: u64, + /// < Num geometry shader invocations. + pub gs_invocations: u64, + /// < Num primitives output by a geometry shader. + pub gs_primitives: u64, + /// < Num primitives sent to the rasterizer. + pub c_invocations: u64, + /// < Num primitives that were rendered. + pub c_primitives: u64, + /// < Num pixel shader invocations. + pub ps_invocations: u64, + /// < Num hull shader invocations. + pub hs_invocations: u64, + /// < Num domain shader invocations. + pub ds_invocations: u64, + /// < Num compute shader invocations. + pub cs_invocations: u64, +} +/// Query result (returned by pipe_context::get_query_result). +#[repr(C)] +#[derive(Copy, Clone)] +pub union pipe_query_result { + pub b: boolean, + pub u64: u64, + pub so_statistics: pipe_query_data_so_statistics, + pub timestamp_disjoint: pipe_query_data_timestamp_disjoint, + pub pipeline_statistics: pipe_query_data_pipeline_statistics, + _bindgen_union_align: [u64; 11usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pipe_color_union { + pub f: [f32; 4usize], + pub i: [::std::os::raw::c_int; 4usize], + pub ui: [::std::os::raw::c_uint; 4usize], + _bindgen_union_align: [u32; 4usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pipe_driver_query_info { + pub name: *const ::std::os::raw::c_char, + pub query_type: ::std::os::raw::c_uint, + pub max_value: u64, + pub uses_byte_units: boolean, +} diff --git a/gpu_renderer/src/generated/p_format.rs b/gpu_renderer/src/generated/p_format.rs index 13f3d0b..ee86907 100644 --- a/gpu_renderer/src/generated/p_format.rs +++ b/gpu_renderer/src/generated/p_format.rs @@ -1,19 +1,318 @@ /* automatically generated by rust-bindgen */ -pub const PIPE_FORMAT_NONE : pipe_format = 0 ; pub const PIPE_FORMAT_B8G8R8A8_UNORM : pipe_format = 1 ; pub const PIPE_FORMAT_B8G8R8X8_UNORM : pipe_format = 2 ; pub const PIPE_FORMAT_A8R8G8B8_UNORM : pipe_format = 3 ; pub const PIPE_FORMAT_X8R8G8B8_UNORM : pipe_format = 4 ; pub const PIPE_FORMAT_B5G5R5A1_UNORM : pipe_format = 5 ; pub const PIPE_FORMAT_B4G4R4A4_UNORM : pipe_format = 6 ; pub const PIPE_FORMAT_B5G6R5_UNORM : pipe_format = 7 ; pub const PIPE_FORMAT_R10G10B10A2_UNORM : pipe_format = 8 ; - /// < ubyte luminance - pub const PIPE_FORMAT_L8_UNORM : pipe_format = 9 ; - /// < ubyte alpha - pub const PIPE_FORMAT_A8_UNORM : pipe_format = 10 ; - /// < ubyte intensity - pub const PIPE_FORMAT_I8_UNORM : pipe_format = 11 ; - /// < ubyte alpha, luminance - pub const PIPE_FORMAT_L8A8_UNORM : pipe_format = 12 ; - /// < ushort luminance - pub const PIPE_FORMAT_L16_UNORM : pipe_format = 13 ; pub const PIPE_FORMAT_UYVY : pipe_format = 14 ; pub const PIPE_FORMAT_YUYV : pipe_format = 15 ; pub const PIPE_FORMAT_Z16_UNORM : pipe_format = 16 ; pub const PIPE_FORMAT_Z32_UNORM : pipe_format = 17 ; pub const PIPE_FORMAT_Z32_FLOAT : pipe_format = 18 ; pub const PIPE_FORMAT_Z24_UNORM_S8_UINT : pipe_format = 19 ; pub const PIPE_FORMAT_S8_UINT_Z24_UNORM : pipe_format = 20 ; pub const PIPE_FORMAT_Z24X8_UNORM : pipe_format = 21 ; pub const PIPE_FORMAT_X8Z24_UNORM : pipe_format = 22 ; - /// < ubyte stencil - pub const PIPE_FORMAT_S8_UINT : pipe_format = 23 ; pub const PIPE_FORMAT_R64_FLOAT : pipe_format = 24 ; pub const PIPE_FORMAT_R64G64_FLOAT : pipe_format = 25 ; pub const PIPE_FORMAT_R64G64B64_FLOAT : pipe_format = 26 ; pub const PIPE_FORMAT_R64G64B64A64_FLOAT : pipe_format = 27 ; pub const PIPE_FORMAT_R32_FLOAT : pipe_format = 28 ; pub const PIPE_FORMAT_R32G32_FLOAT : pipe_format = 29 ; pub const PIPE_FORMAT_R32G32B32_FLOAT : pipe_format = 30 ; pub const PIPE_FORMAT_R32G32B32A32_FLOAT : pipe_format = 31 ; pub const PIPE_FORMAT_R32_UNORM : pipe_format = 32 ; pub const PIPE_FORMAT_R32G32_UNORM : pipe_format = 33 ; pub const PIPE_FORMAT_R32G32B32_UNORM : pipe_format = 34 ; pub const PIPE_FORMAT_R32G32B32A32_UNORM : pipe_format = 35 ; pub const PIPE_FORMAT_R32_USCALED : pipe_format = 36 ; pub const PIPE_FORMAT_R32G32_USCALED : pipe_format = 37 ; pub const PIPE_FORMAT_R32G32B32_USCALED : pipe_format = 38 ; pub const PIPE_FORMAT_R32G32B32A32_USCALED : pipe_format = 39 ; pub const PIPE_FORMAT_R32_SNORM : pipe_format = 40 ; pub const PIPE_FORMAT_R32G32_SNORM : pipe_format = 41 ; pub const PIPE_FORMAT_R32G32B32_SNORM : pipe_format = 42 ; pub const PIPE_FORMAT_R32G32B32A32_SNORM : pipe_format = 43 ; pub const PIPE_FORMAT_R32_SSCALED : pipe_format = 44 ; pub const PIPE_FORMAT_R32G32_SSCALED : pipe_format = 45 ; pub const PIPE_FORMAT_R32G32B32_SSCALED : pipe_format = 46 ; pub const PIPE_FORMAT_R32G32B32A32_SSCALED : pipe_format = 47 ; pub const PIPE_FORMAT_R16_UNORM : pipe_format = 48 ; pub const PIPE_FORMAT_R16G16_UNORM : pipe_format = 49 ; pub const PIPE_FORMAT_R16G16B16_UNORM : pipe_format = 50 ; pub const PIPE_FORMAT_R16G16B16A16_UNORM : pipe_format = 51 ; pub const PIPE_FORMAT_R16_USCALED : pipe_format = 52 ; pub const PIPE_FORMAT_R16G16_USCALED : pipe_format = 53 ; pub const PIPE_FORMAT_R16G16B16_USCALED : pipe_format = 54 ; pub const PIPE_FORMAT_R16G16B16A16_USCALED : pipe_format = 55 ; pub const PIPE_FORMAT_R16_SNORM : pipe_format = 56 ; pub const PIPE_FORMAT_R16G16_SNORM : pipe_format = 57 ; pub const PIPE_FORMAT_R16G16B16_SNORM : pipe_format = 58 ; pub const PIPE_FORMAT_R16G16B16A16_SNORM : pipe_format = 59 ; pub const PIPE_FORMAT_R16_SSCALED : pipe_format = 60 ; pub const PIPE_FORMAT_R16G16_SSCALED : pipe_format = 61 ; pub const PIPE_FORMAT_R16G16B16_SSCALED : pipe_format = 62 ; pub const PIPE_FORMAT_R16G16B16A16_SSCALED : pipe_format = 63 ; pub const PIPE_FORMAT_R8_UNORM : pipe_format = 64 ; pub const PIPE_FORMAT_R8G8_UNORM : pipe_format = 65 ; pub const PIPE_FORMAT_R8G8B8_UNORM : pipe_format = 66 ; pub const PIPE_FORMAT_R8G8B8A8_UNORM : pipe_format = 67 ; pub const PIPE_FORMAT_X8B8G8R8_UNORM : pipe_format = 68 ; pub const PIPE_FORMAT_R8_USCALED : pipe_format = 69 ; pub const PIPE_FORMAT_R8G8_USCALED : pipe_format = 70 ; pub const PIPE_FORMAT_R8G8B8_USCALED : pipe_format = 71 ; pub const PIPE_FORMAT_R8G8B8A8_USCALED : pipe_format = 72 ; pub const PIPE_FORMAT_R8_SNORM : pipe_format = 74 ; pub const PIPE_FORMAT_R8G8_SNORM : pipe_format = 75 ; pub const PIPE_FORMAT_R8G8B8_SNORM : pipe_format = 76 ; pub const PIPE_FORMAT_R8G8B8A8_SNORM : pipe_format = 77 ; pub const PIPE_FORMAT_R8_SSCALED : pipe_format = 82 ; pub const PIPE_FORMAT_R8G8_SSCALED : pipe_format = 83 ; pub const PIPE_FORMAT_R8G8B8_SSCALED : pipe_format = 84 ; pub const PIPE_FORMAT_R8G8B8A8_SSCALED : pipe_format = 85 ; pub const PIPE_FORMAT_R32_FIXED : pipe_format = 87 ; pub const PIPE_FORMAT_R32G32_FIXED : pipe_format = 88 ; pub const PIPE_FORMAT_R32G32B32_FIXED : pipe_format = 89 ; pub const PIPE_FORMAT_R32G32B32A32_FIXED : pipe_format = 90 ; pub const PIPE_FORMAT_R16_FLOAT : pipe_format = 91 ; pub const PIPE_FORMAT_R16G16_FLOAT : pipe_format = 92 ; pub const PIPE_FORMAT_R16G16B16_FLOAT : pipe_format = 93 ; pub const PIPE_FORMAT_R16G16B16A16_FLOAT : pipe_format = 94 ; pub const PIPE_FORMAT_L8_SRGB : pipe_format = 95 ; pub const PIPE_FORMAT_L8A8_SRGB : pipe_format = 96 ; pub const PIPE_FORMAT_R8G8B8_SRGB : pipe_format = 97 ; pub const PIPE_FORMAT_A8B8G8R8_SRGB : pipe_format = 98 ; pub const PIPE_FORMAT_X8B8G8R8_SRGB : pipe_format = 99 ; pub const PIPE_FORMAT_B8G8R8A8_SRGB : pipe_format = 100 ; pub const PIPE_FORMAT_B8G8R8X8_SRGB : pipe_format = 101 ; pub const PIPE_FORMAT_A8R8G8B8_SRGB : pipe_format = 102 ; pub const PIPE_FORMAT_X8R8G8B8_SRGB : pipe_format = 103 ; pub const PIPE_FORMAT_R8G8B8A8_SRGB : pipe_format = 104 ; pub const PIPE_FORMAT_DXT1_RGB : pipe_format = 105 ; pub const PIPE_FORMAT_DXT1_RGBA : pipe_format = 106 ; pub const PIPE_FORMAT_DXT3_RGBA : pipe_format = 107 ; pub const PIPE_FORMAT_DXT5_RGBA : pipe_format = 108 ; pub const PIPE_FORMAT_DXT1_SRGB : pipe_format = 109 ; pub const PIPE_FORMAT_DXT1_SRGBA : pipe_format = 110 ; pub const PIPE_FORMAT_DXT3_SRGBA : pipe_format = 111 ; pub const PIPE_FORMAT_DXT5_SRGBA : pipe_format = 112 ; pub const PIPE_FORMAT_RGTC1_UNORM : pipe_format = 113 ; pub const PIPE_FORMAT_RGTC1_SNORM : pipe_format = 114 ; pub const PIPE_FORMAT_RGTC2_UNORM : pipe_format = 115 ; pub const PIPE_FORMAT_RGTC2_SNORM : pipe_format = 116 ; pub const PIPE_FORMAT_R8G8_B8G8_UNORM : pipe_format = 117 ; pub const PIPE_FORMAT_G8R8_G8B8_UNORM : pipe_format = 118 ; pub const PIPE_FORMAT_R8SG8SB8UX8U_NORM : pipe_format = 119 ; pub const PIPE_FORMAT_R5SG5SB6U_NORM : pipe_format = 120 ; pub const PIPE_FORMAT_A8B8G8R8_UNORM : pipe_format = 121 ; pub const PIPE_FORMAT_B5G5R5X1_UNORM : pipe_format = 122 ; pub const PIPE_FORMAT_R10G10B10A2_USCALED : pipe_format = 123 ; pub const PIPE_FORMAT_R11G11B10_FLOAT : pipe_format = 124 ; pub const PIPE_FORMAT_R9G9B9E5_FLOAT : pipe_format = 125 ; pub const PIPE_FORMAT_Z32_FLOAT_S8X24_UINT : pipe_format = 126 ; pub const PIPE_FORMAT_R1_UNORM : pipe_format = 127 ; pub const PIPE_FORMAT_R10G10B10X2_USCALED : pipe_format = 128 ; pub const PIPE_FORMAT_R10G10B10X2_SNORM : pipe_format = 129 ; pub const PIPE_FORMAT_L4A4_UNORM : pipe_format = 130 ; pub const PIPE_FORMAT_B10G10R10A2_UNORM : pipe_format = 131 ; pub const PIPE_FORMAT_R10SG10SB10SA2U_NORM : pipe_format = 132 ; pub const PIPE_FORMAT_R8G8Bx_SNORM : pipe_format = 133 ; pub const PIPE_FORMAT_R8G8B8X8_UNORM : pipe_format = 134 ; pub const PIPE_FORMAT_B4G4R4X4_UNORM : pipe_format = 135 ; pub const PIPE_FORMAT_X24S8_UINT : pipe_format = 136 ; pub const PIPE_FORMAT_S8X24_UINT : pipe_format = 137 ; pub const PIPE_FORMAT_X32_S8X24_UINT : pipe_format = 138 ; pub const PIPE_FORMAT_B2G3R3_UNORM : pipe_format = 139 ; pub const PIPE_FORMAT_L16A16_UNORM : pipe_format = 140 ; pub const PIPE_FORMAT_A16_UNORM : pipe_format = 141 ; pub const PIPE_FORMAT_I16_UNORM : pipe_format = 142 ; pub const PIPE_FORMAT_LATC1_UNORM : pipe_format = 143 ; pub const PIPE_FORMAT_LATC1_SNORM : pipe_format = 144 ; pub const PIPE_FORMAT_LATC2_UNORM : pipe_format = 145 ; pub const PIPE_FORMAT_LATC2_SNORM : pipe_format = 146 ; pub const PIPE_FORMAT_A8_SNORM : pipe_format = 147 ; pub const PIPE_FORMAT_L8_SNORM : pipe_format = 148 ; pub const PIPE_FORMAT_L8A8_SNORM : pipe_format = 149 ; pub const PIPE_FORMAT_I8_SNORM : pipe_format = 150 ; pub const PIPE_FORMAT_A16_SNORM : pipe_format = 151 ; pub const PIPE_FORMAT_L16_SNORM : pipe_format = 152 ; pub const PIPE_FORMAT_L16A16_SNORM : pipe_format = 153 ; pub const PIPE_FORMAT_I16_SNORM : pipe_format = 154 ; pub const PIPE_FORMAT_A16_FLOAT : pipe_format = 155 ; pub const PIPE_FORMAT_L16_FLOAT : pipe_format = 156 ; pub const PIPE_FORMAT_L16A16_FLOAT : pipe_format = 157 ; pub const PIPE_FORMAT_I16_FLOAT : pipe_format = 158 ; pub const PIPE_FORMAT_A32_FLOAT : pipe_format = 159 ; pub const PIPE_FORMAT_L32_FLOAT : pipe_format = 160 ; pub const PIPE_FORMAT_L32A32_FLOAT : pipe_format = 161 ; pub const PIPE_FORMAT_I32_FLOAT : pipe_format = 162 ; pub const PIPE_FORMAT_YV12 : pipe_format = 163 ; pub const PIPE_FORMAT_YV16 : pipe_format = 164 ; - /// < aka I420 - pub const PIPE_FORMAT_IYUV : pipe_format = 165 ; pub const PIPE_FORMAT_NV12 : pipe_format = 166 ; pub const PIPE_FORMAT_NV21 : pipe_format = 167 ; pub const PIPE_FORMAT_A4R4_UNORM : pipe_format = 168 ; pub const PIPE_FORMAT_R4A4_UNORM : pipe_format = 169 ; pub const PIPE_FORMAT_R8A8_UNORM : pipe_format = 170 ; pub const PIPE_FORMAT_A8R8_UNORM : pipe_format = 171 ; pub const PIPE_FORMAT_R10G10B10A2_SSCALED : pipe_format = 172 ; pub const PIPE_FORMAT_R10G10B10A2_SNORM : pipe_format = 173 ; pub const PIPE_FORMAT_B10G10R10A2_USCALED : pipe_format = 174 ; pub const PIPE_FORMAT_B10G10R10A2_SSCALED : pipe_format = 175 ; pub const PIPE_FORMAT_B10G10R10A2_SNORM : pipe_format = 176 ; pub const PIPE_FORMAT_R8_UINT : pipe_format = 177 ; pub const PIPE_FORMAT_R8G8_UINT : pipe_format = 178 ; pub const PIPE_FORMAT_R8G8B8_UINT : pipe_format = 179 ; pub const PIPE_FORMAT_R8G8B8A8_UINT : pipe_format = 180 ; pub const PIPE_FORMAT_R8_SINT : pipe_format = 181 ; pub const PIPE_FORMAT_R8G8_SINT : pipe_format = 182 ; pub const PIPE_FORMAT_R8G8B8_SINT : pipe_format = 183 ; pub const PIPE_FORMAT_R8G8B8A8_SINT : pipe_format = 184 ; pub const PIPE_FORMAT_R16_UINT : pipe_format = 185 ; pub const PIPE_FORMAT_R16G16_UINT : pipe_format = 186 ; pub const PIPE_FORMAT_R16G16B16_UINT : pipe_format = 187 ; pub const PIPE_FORMAT_R16G16B16A16_UINT : pipe_format = 188 ; pub const PIPE_FORMAT_R16_SINT : pipe_format = 189 ; pub const PIPE_FORMAT_R16G16_SINT : pipe_format = 190 ; pub const PIPE_FORMAT_R16G16B16_SINT : pipe_format = 191 ; pub const PIPE_FORMAT_R16G16B16A16_SINT : pipe_format = 192 ; pub const PIPE_FORMAT_R32_UINT : pipe_format = 193 ; pub const PIPE_FORMAT_R32G32_UINT : pipe_format = 194 ; pub const PIPE_FORMAT_R32G32B32_UINT : pipe_format = 195 ; pub const PIPE_FORMAT_R32G32B32A32_UINT : pipe_format = 196 ; pub const PIPE_FORMAT_R32_SINT : pipe_format = 197 ; pub const PIPE_FORMAT_R32G32_SINT : pipe_format = 198 ; pub const PIPE_FORMAT_R32G32B32_SINT : pipe_format = 199 ; pub const PIPE_FORMAT_R32G32B32A32_SINT : pipe_format = 200 ; pub const PIPE_FORMAT_A8_UINT : pipe_format = 201 ; pub const PIPE_FORMAT_I8_UINT : pipe_format = 202 ; pub const PIPE_FORMAT_L8_UINT : pipe_format = 203 ; pub const PIPE_FORMAT_L8A8_UINT : pipe_format = 204 ; pub const PIPE_FORMAT_A8_SINT : pipe_format = 205 ; pub const PIPE_FORMAT_I8_SINT : pipe_format = 206 ; pub const PIPE_FORMAT_L8_SINT : pipe_format = 207 ; pub const PIPE_FORMAT_L8A8_SINT : pipe_format = 208 ; pub const PIPE_FORMAT_A16_UINT : pipe_format = 209 ; pub const PIPE_FORMAT_I16_UINT : pipe_format = 210 ; pub const PIPE_FORMAT_L16_UINT : pipe_format = 211 ; pub const PIPE_FORMAT_L16A16_UINT : pipe_format = 212 ; pub const PIPE_FORMAT_A16_SINT : pipe_format = 213 ; pub const PIPE_FORMAT_I16_SINT : pipe_format = 214 ; pub const PIPE_FORMAT_L16_SINT : pipe_format = 215 ; pub const PIPE_FORMAT_L16A16_SINT : pipe_format = 216 ; pub const PIPE_FORMAT_A32_UINT : pipe_format = 217 ; pub const PIPE_FORMAT_I32_UINT : pipe_format = 218 ; pub const PIPE_FORMAT_L32_UINT : pipe_format = 219 ; pub const PIPE_FORMAT_L32A32_UINT : pipe_format = 220 ; pub const PIPE_FORMAT_A32_SINT : pipe_format = 221 ; pub const PIPE_FORMAT_I32_SINT : pipe_format = 222 ; pub const PIPE_FORMAT_L32_SINT : pipe_format = 223 ; pub const PIPE_FORMAT_L32A32_SINT : pipe_format = 224 ; pub const PIPE_FORMAT_B10G10R10A2_UINT : pipe_format = 225 ; pub const PIPE_FORMAT_ETC1_RGB8 : pipe_format = 226 ; pub const PIPE_FORMAT_R8G8_R8B8_UNORM : pipe_format = 227 ; pub const PIPE_FORMAT_G8R8_B8R8_UNORM : pipe_format = 228 ; pub const PIPE_FORMAT_R8G8B8X8_SNORM : pipe_format = 229 ; pub const PIPE_FORMAT_R8G8B8X8_SRGB : pipe_format = 230 ; pub const PIPE_FORMAT_R8G8B8X8_UINT : pipe_format = 231 ; pub const PIPE_FORMAT_R8G8B8X8_SINT : pipe_format = 232 ; pub const PIPE_FORMAT_B10G10R10X2_UNORM : pipe_format = 233 ; pub const PIPE_FORMAT_R16G16B16X16_UNORM : pipe_format = 234 ; pub const PIPE_FORMAT_R16G16B16X16_SNORM : pipe_format = 235 ; pub const PIPE_FORMAT_R16G16B16X16_FLOAT : pipe_format = 236 ; pub const PIPE_FORMAT_R16G16B16X16_UINT : pipe_format = 237 ; pub const PIPE_FORMAT_R16G16B16X16_SINT : pipe_format = 238 ; pub const PIPE_FORMAT_R32G32B32X32_FLOAT : pipe_format = 239 ; pub const PIPE_FORMAT_R32G32B32X32_UINT : pipe_format = 240 ; pub const PIPE_FORMAT_R32G32B32X32_SINT : pipe_format = 241 ; pub const PIPE_FORMAT_R8A8_SNORM : pipe_format = 242 ; pub const PIPE_FORMAT_R16A16_UNORM : pipe_format = 243 ; pub const PIPE_FORMAT_R16A16_SNORM : pipe_format = 244 ; pub const PIPE_FORMAT_R16A16_FLOAT : pipe_format = 245 ; pub const PIPE_FORMAT_R32A32_FLOAT : pipe_format = 246 ; pub const PIPE_FORMAT_R8A8_UINT : pipe_format = 247 ; pub const PIPE_FORMAT_R8A8_SINT : pipe_format = 248 ; pub const PIPE_FORMAT_R16A16_UINT : pipe_format = 249 ; pub const PIPE_FORMAT_R16A16_SINT : pipe_format = 250 ; pub const PIPE_FORMAT_R32A32_UINT : pipe_format = 251 ; pub const PIPE_FORMAT_R32A32_SINT : pipe_format = 252 ; pub const PIPE_FORMAT_R10G10B10A2_UINT : pipe_format = 253 ; pub const PIPE_FORMAT_B5G6R5_SRGB : pipe_format = 254 ; pub const PIPE_FORMAT_BPTC_RGBA_UNORM : pipe_format = 255 ; pub const PIPE_FORMAT_BPTC_SRGBA : pipe_format = 256 ; pub const PIPE_FORMAT_BPTC_RGB_FLOAT : pipe_format = 257 ; pub const PIPE_FORMAT_BPTC_RGB_UFLOAT : pipe_format = 258 ; pub const PIPE_FORMAT_A8L8_UNORM : pipe_format = 259 ; pub const PIPE_FORMAT_A8L8_SNORM : pipe_format = 260 ; pub const PIPE_FORMAT_A8L8_SRGB : pipe_format = 261 ; pub const PIPE_FORMAT_A16L16_UNORM : pipe_format = 262 ; pub const PIPE_FORMAT_G8R8_UNORM : pipe_format = 263 ; pub const PIPE_FORMAT_G8R8_SNORM : pipe_format = 264 ; pub const PIPE_FORMAT_G16R16_UNORM : pipe_format = 265 ; pub const PIPE_FORMAT_G16R16_SNORM : pipe_format = 266 ; pub const PIPE_FORMAT_A8B8G8R8_SNORM : pipe_format = 267 ; pub const PIPE_FORMAT_X8B8G8R8_SNORM : pipe_format = 268 ; pub const PIPE_FORMAT_ETC2_RGB8 : pipe_format = 269 ; pub const PIPE_FORMAT_ETC2_SRGB8 : pipe_format = 270 ; pub const PIPE_FORMAT_ETC2_RGB8A1 : pipe_format = 271 ; pub const PIPE_FORMAT_ETC2_SRGB8A1 : pipe_format = 272 ; pub const PIPE_FORMAT_ETC2_RGBA8 : pipe_format = 273 ; pub const PIPE_FORMAT_ETC2_SRGBA8 : pipe_format = 274 ; pub const PIPE_FORMAT_ETC2_R11_UNORM : pipe_format = 275 ; pub const PIPE_FORMAT_ETC2_R11_SNORM : pipe_format = 276 ; pub const PIPE_FORMAT_ETC2_RG11_UNORM : pipe_format = 277 ; pub const PIPE_FORMAT_ETC2_RG11_SNORM : pipe_format = 278 ; pub const PIPE_FORMAT_ASTC_4x4 : pipe_format = 279 ; pub const PIPE_FORMAT_ASTC_5x4 : pipe_format = 280 ; pub const PIPE_FORMAT_ASTC_5x5 : pipe_format = 281 ; pub const PIPE_FORMAT_ASTC_6x5 : pipe_format = 282 ; pub const PIPE_FORMAT_ASTC_6x6 : pipe_format = 283 ; pub const PIPE_FORMAT_ASTC_8x5 : pipe_format = 284 ; pub const PIPE_FORMAT_ASTC_8x6 : pipe_format = 285 ; pub const PIPE_FORMAT_ASTC_8x8 : pipe_format = 286 ; pub const PIPE_FORMAT_ASTC_10x5 : pipe_format = 287 ; pub const PIPE_FORMAT_ASTC_10x6 : pipe_format = 288 ; pub const PIPE_FORMAT_ASTC_10x8 : pipe_format = 289 ; pub const PIPE_FORMAT_ASTC_10x10 : pipe_format = 290 ; pub const PIPE_FORMAT_ASTC_12x10 : pipe_format = 291 ; pub const PIPE_FORMAT_ASTC_12x12 : pipe_format = 292 ; pub const PIPE_FORMAT_ASTC_4x4_SRGB : pipe_format = 293 ; pub const PIPE_FORMAT_ASTC_5x4_SRGB : pipe_format = 294 ; pub const PIPE_FORMAT_ASTC_5x5_SRGB : pipe_format = 295 ; pub const PIPE_FORMAT_ASTC_6x5_SRGB : pipe_format = 296 ; pub const PIPE_FORMAT_ASTC_6x6_SRGB : pipe_format = 297 ; pub const PIPE_FORMAT_ASTC_8x5_SRGB : pipe_format = 298 ; pub const PIPE_FORMAT_ASTC_8x6_SRGB : pipe_format = 299 ; pub const PIPE_FORMAT_ASTC_8x8_SRGB : pipe_format = 300 ; pub const PIPE_FORMAT_ASTC_10x5_SRGB : pipe_format = 301 ; pub const PIPE_FORMAT_ASTC_10x6_SRGB : pipe_format = 302 ; pub const PIPE_FORMAT_ASTC_10x8_SRGB : pipe_format = 303 ; pub const PIPE_FORMAT_ASTC_10x10_SRGB : pipe_format = 304 ; pub const PIPE_FORMAT_ASTC_12x10_SRGB : pipe_format = 305 ; pub const PIPE_FORMAT_ASTC_12x12_SRGB : pipe_format = 306 ; pub const PIPE_FORMAT_P016 : pipe_format = 307 ; pub const PIPE_FORMAT_R10G10B10X2_UNORM : pipe_format = 308 ; pub const PIPE_FORMAT_A1B5G5R5_UNORM : pipe_format = 309 ; pub const PIPE_FORMAT_X1B5G5R5_UNORM : pipe_format = 310 ; pub const PIPE_FORMAT_A4B4G4R4_UNORM : pipe_format = 311 ; pub const PIPE_FORMAT_COUNT : pipe_format = 312 ; - /// Formats for textures, surfaces and vertex data - pub type pipe_format = u32 ; \ No newline at end of file +pub const PIPE_FORMAT_NONE: pipe_format = 0; +pub const PIPE_FORMAT_B8G8R8A8_UNORM: pipe_format = 1; +pub const PIPE_FORMAT_B8G8R8X8_UNORM: pipe_format = 2; +pub const PIPE_FORMAT_A8R8G8B8_UNORM: pipe_format = 3; +pub const PIPE_FORMAT_X8R8G8B8_UNORM: pipe_format = 4; +pub const PIPE_FORMAT_B5G5R5A1_UNORM: pipe_format = 5; +pub const PIPE_FORMAT_B4G4R4A4_UNORM: pipe_format = 6; +pub const PIPE_FORMAT_B5G6R5_UNORM: pipe_format = 7; +pub const PIPE_FORMAT_R10G10B10A2_UNORM: pipe_format = 8; +/// < ubyte luminance +pub const PIPE_FORMAT_L8_UNORM: pipe_format = 9; +/// < ubyte alpha +pub const PIPE_FORMAT_A8_UNORM: pipe_format = 10; +/// < ubyte intensity +pub const PIPE_FORMAT_I8_UNORM: pipe_format = 11; +/// < ubyte alpha, luminance +pub const PIPE_FORMAT_L8A8_UNORM: pipe_format = 12; +/// < ushort luminance +pub const PIPE_FORMAT_L16_UNORM: pipe_format = 13; +pub const PIPE_FORMAT_UYVY: pipe_format = 14; +pub const PIPE_FORMAT_YUYV: pipe_format = 15; +pub const PIPE_FORMAT_Z16_UNORM: pipe_format = 16; +pub const PIPE_FORMAT_Z32_UNORM: pipe_format = 17; +pub const PIPE_FORMAT_Z32_FLOAT: pipe_format = 18; +pub const PIPE_FORMAT_Z24_UNORM_S8_UINT: pipe_format = 19; +pub const PIPE_FORMAT_S8_UINT_Z24_UNORM: pipe_format = 20; +pub const PIPE_FORMAT_Z24X8_UNORM: pipe_format = 21; +pub const PIPE_FORMAT_X8Z24_UNORM: pipe_format = 22; +/// < ubyte stencil +pub const PIPE_FORMAT_S8_UINT: pipe_format = 23; +pub const PIPE_FORMAT_R64_FLOAT: pipe_format = 24; +pub const PIPE_FORMAT_R64G64_FLOAT: pipe_format = 25; +pub const PIPE_FORMAT_R64G64B64_FLOAT: pipe_format = 26; +pub const PIPE_FORMAT_R64G64B64A64_FLOAT: pipe_format = 27; +pub const PIPE_FORMAT_R32_FLOAT: pipe_format = 28; +pub const PIPE_FORMAT_R32G32_FLOAT: pipe_format = 29; +pub const PIPE_FORMAT_R32G32B32_FLOAT: pipe_format = 30; +pub const PIPE_FORMAT_R32G32B32A32_FLOAT: pipe_format = 31; +pub const PIPE_FORMAT_R32_UNORM: pipe_format = 32; +pub const PIPE_FORMAT_R32G32_UNORM: pipe_format = 33; +pub const PIPE_FORMAT_R32G32B32_UNORM: pipe_format = 34; +pub const PIPE_FORMAT_R32G32B32A32_UNORM: pipe_format = 35; +pub const PIPE_FORMAT_R32_USCALED: pipe_format = 36; +pub const PIPE_FORMAT_R32G32_USCALED: pipe_format = 37; +pub const PIPE_FORMAT_R32G32B32_USCALED: pipe_format = 38; +pub const PIPE_FORMAT_R32G32B32A32_USCALED: pipe_format = 39; +pub const PIPE_FORMAT_R32_SNORM: pipe_format = 40; +pub const PIPE_FORMAT_R32G32_SNORM: pipe_format = 41; +pub const PIPE_FORMAT_R32G32B32_SNORM: pipe_format = 42; +pub const PIPE_FORMAT_R32G32B32A32_SNORM: pipe_format = 43; +pub const PIPE_FORMAT_R32_SSCALED: pipe_format = 44; +pub const PIPE_FORMAT_R32G32_SSCALED: pipe_format = 45; +pub const PIPE_FORMAT_R32G32B32_SSCALED: pipe_format = 46; +pub const PIPE_FORMAT_R32G32B32A32_SSCALED: pipe_format = 47; +pub const PIPE_FORMAT_R16_UNORM: pipe_format = 48; +pub const PIPE_FORMAT_R16G16_UNORM: pipe_format = 49; +pub const PIPE_FORMAT_R16G16B16_UNORM: pipe_format = 50; +pub const PIPE_FORMAT_R16G16B16A16_UNORM: pipe_format = 51; +pub const PIPE_FORMAT_R16_USCALED: pipe_format = 52; +pub const PIPE_FORMAT_R16G16_USCALED: pipe_format = 53; +pub const PIPE_FORMAT_R16G16B16_USCALED: pipe_format = 54; +pub const PIPE_FORMAT_R16G16B16A16_USCALED: pipe_format = 55; +pub const PIPE_FORMAT_R16_SNORM: pipe_format = 56; +pub const PIPE_FORMAT_R16G16_SNORM: pipe_format = 57; +pub const PIPE_FORMAT_R16G16B16_SNORM: pipe_format = 58; +pub const PIPE_FORMAT_R16G16B16A16_SNORM: pipe_format = 59; +pub const PIPE_FORMAT_R16_SSCALED: pipe_format = 60; +pub const PIPE_FORMAT_R16G16_SSCALED: pipe_format = 61; +pub const PIPE_FORMAT_R16G16B16_SSCALED: pipe_format = 62; +pub const PIPE_FORMAT_R16G16B16A16_SSCALED: pipe_format = 63; +pub const PIPE_FORMAT_R8_UNORM: pipe_format = 64; +pub const PIPE_FORMAT_R8G8_UNORM: pipe_format = 65; +pub const PIPE_FORMAT_R8G8B8_UNORM: pipe_format = 66; +pub const PIPE_FORMAT_R8G8B8A8_UNORM: pipe_format = 67; +pub const PIPE_FORMAT_X8B8G8R8_UNORM: pipe_format = 68; +pub const PIPE_FORMAT_R8_USCALED: pipe_format = 69; +pub const PIPE_FORMAT_R8G8_USCALED: pipe_format = 70; +pub const PIPE_FORMAT_R8G8B8_USCALED: pipe_format = 71; +pub const PIPE_FORMAT_R8G8B8A8_USCALED: pipe_format = 72; +pub const PIPE_FORMAT_R8_SNORM: pipe_format = 74; +pub const PIPE_FORMAT_R8G8_SNORM: pipe_format = 75; +pub const PIPE_FORMAT_R8G8B8_SNORM: pipe_format = 76; +pub const PIPE_FORMAT_R8G8B8A8_SNORM: pipe_format = 77; +pub const PIPE_FORMAT_R8_SSCALED: pipe_format = 82; +pub const PIPE_FORMAT_R8G8_SSCALED: pipe_format = 83; +pub const PIPE_FORMAT_R8G8B8_SSCALED: pipe_format = 84; +pub const PIPE_FORMAT_R8G8B8A8_SSCALED: pipe_format = 85; +pub const PIPE_FORMAT_R32_FIXED: pipe_format = 87; +pub const PIPE_FORMAT_R32G32_FIXED: pipe_format = 88; +pub const PIPE_FORMAT_R32G32B32_FIXED: pipe_format = 89; +pub const PIPE_FORMAT_R32G32B32A32_FIXED: pipe_format = 90; +pub const PIPE_FORMAT_R16_FLOAT: pipe_format = 91; +pub const PIPE_FORMAT_R16G16_FLOAT: pipe_format = 92; +pub const PIPE_FORMAT_R16G16B16_FLOAT: pipe_format = 93; +pub const PIPE_FORMAT_R16G16B16A16_FLOAT: pipe_format = 94; +pub const PIPE_FORMAT_L8_SRGB: pipe_format = 95; +pub const PIPE_FORMAT_L8A8_SRGB: pipe_format = 96; +pub const PIPE_FORMAT_R8G8B8_SRGB: pipe_format = 97; +pub const PIPE_FORMAT_A8B8G8R8_SRGB: pipe_format = 98; +pub const PIPE_FORMAT_X8B8G8R8_SRGB: pipe_format = 99; +pub const PIPE_FORMAT_B8G8R8A8_SRGB: pipe_format = 100; +pub const PIPE_FORMAT_B8G8R8X8_SRGB: pipe_format = 101; +pub const PIPE_FORMAT_A8R8G8B8_SRGB: pipe_format = 102; +pub const PIPE_FORMAT_X8R8G8B8_SRGB: pipe_format = 103; +pub const PIPE_FORMAT_R8G8B8A8_SRGB: pipe_format = 104; +pub const PIPE_FORMAT_DXT1_RGB: pipe_format = 105; +pub const PIPE_FORMAT_DXT1_RGBA: pipe_format = 106; +pub const PIPE_FORMAT_DXT3_RGBA: pipe_format = 107; +pub const PIPE_FORMAT_DXT5_RGBA: pipe_format = 108; +pub const PIPE_FORMAT_DXT1_SRGB: pipe_format = 109; +pub const PIPE_FORMAT_DXT1_SRGBA: pipe_format = 110; +pub const PIPE_FORMAT_DXT3_SRGBA: pipe_format = 111; +pub const PIPE_FORMAT_DXT5_SRGBA: pipe_format = 112; +pub const PIPE_FORMAT_RGTC1_UNORM: pipe_format = 113; +pub const PIPE_FORMAT_RGTC1_SNORM: pipe_format = 114; +pub const PIPE_FORMAT_RGTC2_UNORM: pipe_format = 115; +pub const PIPE_FORMAT_RGTC2_SNORM: pipe_format = 116; +pub const PIPE_FORMAT_R8G8_B8G8_UNORM: pipe_format = 117; +pub const PIPE_FORMAT_G8R8_G8B8_UNORM: pipe_format = 118; +pub const PIPE_FORMAT_R8SG8SB8UX8U_NORM: pipe_format = 119; +pub const PIPE_FORMAT_R5SG5SB6U_NORM: pipe_format = 120; +pub const PIPE_FORMAT_A8B8G8R8_UNORM: pipe_format = 121; +pub const PIPE_FORMAT_B5G5R5X1_UNORM: pipe_format = 122; +pub const PIPE_FORMAT_R10G10B10A2_USCALED: pipe_format = 123; +pub const PIPE_FORMAT_R11G11B10_FLOAT: pipe_format = 124; +pub const PIPE_FORMAT_R9G9B9E5_FLOAT: pipe_format = 125; +pub const PIPE_FORMAT_Z32_FLOAT_S8X24_UINT: pipe_format = 126; +pub const PIPE_FORMAT_R1_UNORM: pipe_format = 127; +pub const PIPE_FORMAT_R10G10B10X2_USCALED: pipe_format = 128; +pub const PIPE_FORMAT_R10G10B10X2_SNORM: pipe_format = 129; +pub const PIPE_FORMAT_L4A4_UNORM: pipe_format = 130; +pub const PIPE_FORMAT_B10G10R10A2_UNORM: pipe_format = 131; +pub const PIPE_FORMAT_R10SG10SB10SA2U_NORM: pipe_format = 132; +pub const PIPE_FORMAT_R8G8Bx_SNORM: pipe_format = 133; +pub const PIPE_FORMAT_R8G8B8X8_UNORM: pipe_format = 134; +pub const PIPE_FORMAT_B4G4R4X4_UNORM: pipe_format = 135; +pub const PIPE_FORMAT_X24S8_UINT: pipe_format = 136; +pub const PIPE_FORMAT_S8X24_UINT: pipe_format = 137; +pub const PIPE_FORMAT_X32_S8X24_UINT: pipe_format = 138; +pub const PIPE_FORMAT_B2G3R3_UNORM: pipe_format = 139; +pub const PIPE_FORMAT_L16A16_UNORM: pipe_format = 140; +pub const PIPE_FORMAT_A16_UNORM: pipe_format = 141; +pub const PIPE_FORMAT_I16_UNORM: pipe_format = 142; +pub const PIPE_FORMAT_LATC1_UNORM: pipe_format = 143; +pub const PIPE_FORMAT_LATC1_SNORM: pipe_format = 144; +pub const PIPE_FORMAT_LATC2_UNORM: pipe_format = 145; +pub const PIPE_FORMAT_LATC2_SNORM: pipe_format = 146; +pub const PIPE_FORMAT_A8_SNORM: pipe_format = 147; +pub const PIPE_FORMAT_L8_SNORM: pipe_format = 148; +pub const PIPE_FORMAT_L8A8_SNORM: pipe_format = 149; +pub const PIPE_FORMAT_I8_SNORM: pipe_format = 150; +pub const PIPE_FORMAT_A16_SNORM: pipe_format = 151; +pub const PIPE_FORMAT_L16_SNORM: pipe_format = 152; +pub const PIPE_FORMAT_L16A16_SNORM: pipe_format = 153; +pub const PIPE_FORMAT_I16_SNORM: pipe_format = 154; +pub const PIPE_FORMAT_A16_FLOAT: pipe_format = 155; +pub const PIPE_FORMAT_L16_FLOAT: pipe_format = 156; +pub const PIPE_FORMAT_L16A16_FLOAT: pipe_format = 157; +pub const PIPE_FORMAT_I16_FLOAT: pipe_format = 158; +pub const PIPE_FORMAT_A32_FLOAT: pipe_format = 159; +pub const PIPE_FORMAT_L32_FLOAT: pipe_format = 160; +pub const PIPE_FORMAT_L32A32_FLOAT: pipe_format = 161; +pub const PIPE_FORMAT_I32_FLOAT: pipe_format = 162; +pub const PIPE_FORMAT_YV12: pipe_format = 163; +pub const PIPE_FORMAT_YV16: pipe_format = 164; +/// < aka I420 +pub const PIPE_FORMAT_IYUV: pipe_format = 165; +pub const PIPE_FORMAT_NV12: pipe_format = 166; +pub const PIPE_FORMAT_NV21: pipe_format = 167; +pub const PIPE_FORMAT_A4R4_UNORM: pipe_format = 168; +pub const PIPE_FORMAT_R4A4_UNORM: pipe_format = 169; +pub const PIPE_FORMAT_R8A8_UNORM: pipe_format = 170; +pub const PIPE_FORMAT_A8R8_UNORM: pipe_format = 171; +pub const PIPE_FORMAT_R10G10B10A2_SSCALED: pipe_format = 172; +pub const PIPE_FORMAT_R10G10B10A2_SNORM: pipe_format = 173; +pub const PIPE_FORMAT_B10G10R10A2_USCALED: pipe_format = 174; +pub const PIPE_FORMAT_B10G10R10A2_SSCALED: pipe_format = 175; +pub const PIPE_FORMAT_B10G10R10A2_SNORM: pipe_format = 176; +pub const PIPE_FORMAT_R8_UINT: pipe_format = 177; +pub const PIPE_FORMAT_R8G8_UINT: pipe_format = 178; +pub const PIPE_FORMAT_R8G8B8_UINT: pipe_format = 179; +pub const PIPE_FORMAT_R8G8B8A8_UINT: pipe_format = 180; +pub const PIPE_FORMAT_R8_SINT: pipe_format = 181; +pub const PIPE_FORMAT_R8G8_SINT: pipe_format = 182; +pub const PIPE_FORMAT_R8G8B8_SINT: pipe_format = 183; +pub const PIPE_FORMAT_R8G8B8A8_SINT: pipe_format = 184; +pub const PIPE_FORMAT_R16_UINT: pipe_format = 185; +pub const PIPE_FORMAT_R16G16_UINT: pipe_format = 186; +pub const PIPE_FORMAT_R16G16B16_UINT: pipe_format = 187; +pub const PIPE_FORMAT_R16G16B16A16_UINT: pipe_format = 188; +pub const PIPE_FORMAT_R16_SINT: pipe_format = 189; +pub const PIPE_FORMAT_R16G16_SINT: pipe_format = 190; +pub const PIPE_FORMAT_R16G16B16_SINT: pipe_format = 191; +pub const PIPE_FORMAT_R16G16B16A16_SINT: pipe_format = 192; +pub const PIPE_FORMAT_R32_UINT: pipe_format = 193; +pub const PIPE_FORMAT_R32G32_UINT: pipe_format = 194; +pub const PIPE_FORMAT_R32G32B32_UINT: pipe_format = 195; +pub const PIPE_FORMAT_R32G32B32A32_UINT: pipe_format = 196; +pub const PIPE_FORMAT_R32_SINT: pipe_format = 197; +pub const PIPE_FORMAT_R32G32_SINT: pipe_format = 198; +pub const PIPE_FORMAT_R32G32B32_SINT: pipe_format = 199; +pub const PIPE_FORMAT_R32G32B32A32_SINT: pipe_format = 200; +pub const PIPE_FORMAT_A8_UINT: pipe_format = 201; +pub const PIPE_FORMAT_I8_UINT: pipe_format = 202; +pub const PIPE_FORMAT_L8_UINT: pipe_format = 203; +pub const PIPE_FORMAT_L8A8_UINT: pipe_format = 204; +pub const PIPE_FORMAT_A8_SINT: pipe_format = 205; +pub const PIPE_FORMAT_I8_SINT: pipe_format = 206; +pub const PIPE_FORMAT_L8_SINT: pipe_format = 207; +pub const PIPE_FORMAT_L8A8_SINT: pipe_format = 208; +pub const PIPE_FORMAT_A16_UINT: pipe_format = 209; +pub const PIPE_FORMAT_I16_UINT: pipe_format = 210; +pub const PIPE_FORMAT_L16_UINT: pipe_format = 211; +pub const PIPE_FORMAT_L16A16_UINT: pipe_format = 212; +pub const PIPE_FORMAT_A16_SINT: pipe_format = 213; +pub const PIPE_FORMAT_I16_SINT: pipe_format = 214; +pub const PIPE_FORMAT_L16_SINT: pipe_format = 215; +pub const PIPE_FORMAT_L16A16_SINT: pipe_format = 216; +pub const PIPE_FORMAT_A32_UINT: pipe_format = 217; +pub const PIPE_FORMAT_I32_UINT: pipe_format = 218; +pub const PIPE_FORMAT_L32_UINT: pipe_format = 219; +pub const PIPE_FORMAT_L32A32_UINT: pipe_format = 220; +pub const PIPE_FORMAT_A32_SINT: pipe_format = 221; +pub const PIPE_FORMAT_I32_SINT: pipe_format = 222; +pub const PIPE_FORMAT_L32_SINT: pipe_format = 223; +pub const PIPE_FORMAT_L32A32_SINT: pipe_format = 224; +pub const PIPE_FORMAT_B10G10R10A2_UINT: pipe_format = 225; +pub const PIPE_FORMAT_ETC1_RGB8: pipe_format = 226; +pub const PIPE_FORMAT_R8G8_R8B8_UNORM: pipe_format = 227; +pub const PIPE_FORMAT_G8R8_B8R8_UNORM: pipe_format = 228; +pub const PIPE_FORMAT_R8G8B8X8_SNORM: pipe_format = 229; +pub const PIPE_FORMAT_R8G8B8X8_SRGB: pipe_format = 230; +pub const PIPE_FORMAT_R8G8B8X8_UINT: pipe_format = 231; +pub const PIPE_FORMAT_R8G8B8X8_SINT: pipe_format = 232; +pub const PIPE_FORMAT_B10G10R10X2_UNORM: pipe_format = 233; +pub const PIPE_FORMAT_R16G16B16X16_UNORM: pipe_format = 234; +pub const PIPE_FORMAT_R16G16B16X16_SNORM: pipe_format = 235; +pub const PIPE_FORMAT_R16G16B16X16_FLOAT: pipe_format = 236; +pub const PIPE_FORMAT_R16G16B16X16_UINT: pipe_format = 237; +pub const PIPE_FORMAT_R16G16B16X16_SINT: pipe_format = 238; +pub const PIPE_FORMAT_R32G32B32X32_FLOAT: pipe_format = 239; +pub const PIPE_FORMAT_R32G32B32X32_UINT: pipe_format = 240; +pub const PIPE_FORMAT_R32G32B32X32_SINT: pipe_format = 241; +pub const PIPE_FORMAT_R8A8_SNORM: pipe_format = 242; +pub const PIPE_FORMAT_R16A16_UNORM: pipe_format = 243; +pub const PIPE_FORMAT_R16A16_SNORM: pipe_format = 244; +pub const PIPE_FORMAT_R16A16_FLOAT: pipe_format = 245; +pub const PIPE_FORMAT_R32A32_FLOAT: pipe_format = 246; +pub const PIPE_FORMAT_R8A8_UINT: pipe_format = 247; +pub const PIPE_FORMAT_R8A8_SINT: pipe_format = 248; +pub const PIPE_FORMAT_R16A16_UINT: pipe_format = 249; +pub const PIPE_FORMAT_R16A16_SINT: pipe_format = 250; +pub const PIPE_FORMAT_R32A32_UINT: pipe_format = 251; +pub const PIPE_FORMAT_R32A32_SINT: pipe_format = 252; +pub const PIPE_FORMAT_R10G10B10A2_UINT: pipe_format = 253; +pub const PIPE_FORMAT_B5G6R5_SRGB: pipe_format = 254; +pub const PIPE_FORMAT_BPTC_RGBA_UNORM: pipe_format = 255; +pub const PIPE_FORMAT_BPTC_SRGBA: pipe_format = 256; +pub const PIPE_FORMAT_BPTC_RGB_FLOAT: pipe_format = 257; +pub const PIPE_FORMAT_BPTC_RGB_UFLOAT: pipe_format = 258; +pub const PIPE_FORMAT_A8L8_UNORM: pipe_format = 259; +pub const PIPE_FORMAT_A8L8_SNORM: pipe_format = 260; +pub const PIPE_FORMAT_A8L8_SRGB: pipe_format = 261; +pub const PIPE_FORMAT_A16L16_UNORM: pipe_format = 262; +pub const PIPE_FORMAT_G8R8_UNORM: pipe_format = 263; +pub const PIPE_FORMAT_G8R8_SNORM: pipe_format = 264; +pub const PIPE_FORMAT_G16R16_UNORM: pipe_format = 265; +pub const PIPE_FORMAT_G16R16_SNORM: pipe_format = 266; +pub const PIPE_FORMAT_A8B8G8R8_SNORM: pipe_format = 267; +pub const PIPE_FORMAT_X8B8G8R8_SNORM: pipe_format = 268; +pub const PIPE_FORMAT_ETC2_RGB8: pipe_format = 269; +pub const PIPE_FORMAT_ETC2_SRGB8: pipe_format = 270; +pub const PIPE_FORMAT_ETC2_RGB8A1: pipe_format = 271; +pub const PIPE_FORMAT_ETC2_SRGB8A1: pipe_format = 272; +pub const PIPE_FORMAT_ETC2_RGBA8: pipe_format = 273; +pub const PIPE_FORMAT_ETC2_SRGBA8: pipe_format = 274; +pub const PIPE_FORMAT_ETC2_R11_UNORM: pipe_format = 275; +pub const PIPE_FORMAT_ETC2_R11_SNORM: pipe_format = 276; +pub const PIPE_FORMAT_ETC2_RG11_UNORM: pipe_format = 277; +pub const PIPE_FORMAT_ETC2_RG11_SNORM: pipe_format = 278; +pub const PIPE_FORMAT_ASTC_4x4: pipe_format = 279; +pub const PIPE_FORMAT_ASTC_5x4: pipe_format = 280; +pub const PIPE_FORMAT_ASTC_5x5: pipe_format = 281; +pub const PIPE_FORMAT_ASTC_6x5: pipe_format = 282; +pub const PIPE_FORMAT_ASTC_6x6: pipe_format = 283; +pub const PIPE_FORMAT_ASTC_8x5: pipe_format = 284; +pub const PIPE_FORMAT_ASTC_8x6: pipe_format = 285; +pub const PIPE_FORMAT_ASTC_8x8: pipe_format = 286; +pub const PIPE_FORMAT_ASTC_10x5: pipe_format = 287; +pub const PIPE_FORMAT_ASTC_10x6: pipe_format = 288; +pub const PIPE_FORMAT_ASTC_10x8: pipe_format = 289; +pub const PIPE_FORMAT_ASTC_10x10: pipe_format = 290; +pub const PIPE_FORMAT_ASTC_12x10: pipe_format = 291; +pub const PIPE_FORMAT_ASTC_12x12: pipe_format = 292; +pub const PIPE_FORMAT_ASTC_4x4_SRGB: pipe_format = 293; +pub const PIPE_FORMAT_ASTC_5x4_SRGB: pipe_format = 294; +pub const PIPE_FORMAT_ASTC_5x5_SRGB: pipe_format = 295; +pub const PIPE_FORMAT_ASTC_6x5_SRGB: pipe_format = 296; +pub const PIPE_FORMAT_ASTC_6x6_SRGB: pipe_format = 297; +pub const PIPE_FORMAT_ASTC_8x5_SRGB: pipe_format = 298; +pub const PIPE_FORMAT_ASTC_8x6_SRGB: pipe_format = 299; +pub const PIPE_FORMAT_ASTC_8x8_SRGB: pipe_format = 300; +pub const PIPE_FORMAT_ASTC_10x5_SRGB: pipe_format = 301; +pub const PIPE_FORMAT_ASTC_10x6_SRGB: pipe_format = 302; +pub const PIPE_FORMAT_ASTC_10x8_SRGB: pipe_format = 303; +pub const PIPE_FORMAT_ASTC_10x10_SRGB: pipe_format = 304; +pub const PIPE_FORMAT_ASTC_12x10_SRGB: pipe_format = 305; +pub const PIPE_FORMAT_ASTC_12x12_SRGB: pipe_format = 306; +pub const PIPE_FORMAT_P016: pipe_format = 307; +pub const PIPE_FORMAT_R10G10B10X2_UNORM: pipe_format = 308; +pub const PIPE_FORMAT_A1B5G5R5_UNORM: pipe_format = 309; +pub const PIPE_FORMAT_X1B5G5R5_UNORM: pipe_format = 310; +pub const PIPE_FORMAT_A4B4G4R4_UNORM: pipe_format = 311; +pub const PIPE_FORMAT_COUNT: pipe_format = 312; +/// Formats for textures, surfaces and vertex data +pub type pipe_format = u32; diff --git a/gpu_renderer/src/generated/virgl_protocol.rs b/gpu_renderer/src/generated/virgl_protocol.rs index c9d0746..7e06f93 100644 --- a/gpu_renderer/src/generated/virgl_protocol.rs +++ b/gpu_renderer/src/generated/virgl_protocol.rs @@ -1,3 +1,254 @@ /* automatically generated by rust-bindgen */ -pub const VIRGL_QUERY_STATE_NEW : u32 = 0 ; pub const VIRGL_QUERY_STATE_DONE : u32 = 1 ; pub const VIRGL_QUERY_STATE_WAIT_HOST : u32 = 2 ; pub const VIRGL_MAX_COLOR_BUFS : u32 = 8 ; pub const VIRGL_MAX_CLIP_PLANES : u32 = 8 ; pub const VIRGL_OBJ_CREATE_HEADER : u32 = 0 ; pub const VIRGL_OBJ_CREATE_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_BIND_HEADER : u32 = 0 ; pub const VIRGL_OBJ_BIND_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_DESTROY_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_BLEND_SIZE : u32 = 11 ; pub const VIRGL_OBJ_BLEND_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_BLEND_S0 : u32 = 2 ; pub const VIRGL_OBJ_BLEND_S1 : u32 = 3 ; pub const VIRGL_OBJ_DSA_SIZE : u32 = 5 ; pub const VIRGL_OBJ_DSA_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_DSA_S0 : u32 = 2 ; pub const VIRGL_OBJ_DSA_S1 : u32 = 3 ; pub const VIRGL_OBJ_DSA_S2 : u32 = 4 ; pub const VIRGL_OBJ_DSA_ALPHA_REF : u32 = 5 ; pub const VIRGL_OBJ_RS_SIZE : u32 = 9 ; pub const VIRGL_OBJ_RS_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_RS_S0 : u32 = 2 ; pub const VIRGL_OBJ_RS_POINT_SIZE : u32 = 3 ; pub const VIRGL_OBJ_RS_SPRITE_COORD_ENABLE : u32 = 4 ; pub const VIRGL_OBJ_RS_S3 : u32 = 5 ; pub const VIRGL_OBJ_RS_LINE_WIDTH : u32 = 6 ; pub const VIRGL_OBJ_RS_OFFSET_UNITS : u32 = 7 ; pub const VIRGL_OBJ_RS_OFFSET_SCALE : u32 = 8 ; pub const VIRGL_OBJ_RS_OFFSET_CLAMP : u32 = 9 ; pub const VIRGL_OBJ_CLEAR_SIZE : u32 = 8 ; pub const VIRGL_OBJ_CLEAR_BUFFERS : u32 = 1 ; pub const VIRGL_OBJ_CLEAR_COLOR_0 : u32 = 2 ; pub const VIRGL_OBJ_CLEAR_COLOR_1 : u32 = 3 ; pub const VIRGL_OBJ_CLEAR_COLOR_2 : u32 = 4 ; pub const VIRGL_OBJ_CLEAR_COLOR_3 : u32 = 5 ; pub const VIRGL_OBJ_CLEAR_DEPTH_0 : u32 = 6 ; pub const VIRGL_OBJ_CLEAR_DEPTH_1 : u32 = 7 ; pub const VIRGL_OBJ_CLEAR_STENCIL : u32 = 8 ; pub const VIRGL_OBJ_SHADER_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_SHADER_TYPE : u32 = 2 ; pub const VIRGL_OBJ_SHADER_OFFSET : u32 = 3 ; pub const VIRGL_OBJ_SHADER_OFFSET_CONT : u32 = 2147483648 ; pub const VIRGL_OBJ_SHADER_NUM_TOKENS : u32 = 4 ; pub const VIRGL_OBJ_SHADER_SO_NUM_OUTPUTS : u32 = 5 ; pub const VIRGL_SET_VIEWPORT_START_SLOT : u32 = 1 ; pub const VIRGL_SET_FRAMEBUFFER_STATE_NR_CBUFS : u32 = 1 ; pub const VIRGL_SET_FRAMEBUFFER_STATE_NR_ZSURF_HANDLE : u32 = 2 ; pub const VIRGL_OBJ_VERTEX_ELEMENTS_HANDLE : u32 = 1 ; pub const VIRGL_SET_INDEX_BUFFER_HANDLE : u32 = 1 ; pub const VIRGL_SET_INDEX_BUFFER_INDEX_SIZE : u32 = 2 ; pub const VIRGL_SET_INDEX_BUFFER_OFFSET : u32 = 3 ; pub const VIRGL_SET_CONSTANT_BUFFER_SHADER_TYPE : u32 = 1 ; pub const VIRGL_SET_CONSTANT_BUFFER_INDEX : u32 = 2 ; pub const VIRGL_SET_CONSTANT_BUFFER_DATA_START : u32 = 3 ; pub const VIRGL_SET_UNIFORM_BUFFER_SIZE : u32 = 5 ; pub const VIRGL_SET_UNIFORM_BUFFER_SHADER_TYPE : u32 = 1 ; pub const VIRGL_SET_UNIFORM_BUFFER_INDEX : u32 = 2 ; pub const VIRGL_SET_UNIFORM_BUFFER_OFFSET : u32 = 3 ; pub const VIRGL_SET_UNIFORM_BUFFER_LENGTH : u32 = 4 ; pub const VIRGL_SET_UNIFORM_BUFFER_RES_HANDLE : u32 = 5 ; pub const VIRGL_DRAW_VBO_SIZE : u32 = 12 ; pub const VIRGL_DRAW_VBO_SIZE_TESS : u32 = 14 ; pub const VIRGL_DRAW_VBO_SIZE_INDIRECT : u32 = 20 ; pub const VIRGL_DRAW_VBO_START : u32 = 1 ; pub const VIRGL_DRAW_VBO_COUNT : u32 = 2 ; pub const VIRGL_DRAW_VBO_MODE : u32 = 3 ; pub const VIRGL_DRAW_VBO_INDEXED : u32 = 4 ; pub const VIRGL_DRAW_VBO_INSTANCE_COUNT : u32 = 5 ; pub const VIRGL_DRAW_VBO_INDEX_BIAS : u32 = 6 ; pub const VIRGL_DRAW_VBO_START_INSTANCE : u32 = 7 ; pub const VIRGL_DRAW_VBO_PRIMITIVE_RESTART : u32 = 8 ; pub const VIRGL_DRAW_VBO_RESTART_INDEX : u32 = 9 ; pub const VIRGL_DRAW_VBO_MIN_INDEX : u32 = 10 ; pub const VIRGL_DRAW_VBO_MAX_INDEX : u32 = 11 ; pub const VIRGL_DRAW_VBO_COUNT_FROM_SO : u32 = 12 ; pub const VIRGL_DRAW_VBO_VERTICES_PER_PATCH : u32 = 13 ; pub const VIRGL_DRAW_VBO_DRAWID : u32 = 14 ; pub const VIRGL_DRAW_VBO_INDIRECT_HANDLE : u32 = 15 ; pub const VIRGL_DRAW_VBO_INDIRECT_OFFSET : u32 = 16 ; pub const VIRGL_DRAW_VBO_INDIRECT_STRIDE : u32 = 17 ; pub const VIRGL_DRAW_VBO_INDIRECT_DRAW_COUNT : u32 = 18 ; pub const VIRGL_DRAW_VBO_INDIRECT_DRAW_COUNT_OFFSET : u32 = 19 ; pub const VIRGL_DRAW_VBO_INDIRECT_DRAW_COUNT_HANDLE : u32 = 20 ; pub const VIRGL_OBJ_SURFACE_SIZE : u32 = 5 ; pub const VIRGL_OBJ_SURFACE_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_SURFACE_RES_HANDLE : u32 = 2 ; pub const VIRGL_OBJ_SURFACE_FORMAT : u32 = 3 ; pub const VIRGL_OBJ_SURFACE_BUFFER_FIRST_ELEMENT : u32 = 4 ; pub const VIRGL_OBJ_SURFACE_BUFFER_LAST_ELEMENT : u32 = 5 ; pub const VIRGL_OBJ_SURFACE_TEXTURE_LEVEL : u32 = 4 ; pub const VIRGL_OBJ_SURFACE_TEXTURE_LAYERS : u32 = 5 ; pub const VIRGL_OBJ_STREAMOUT_SIZE : u32 = 4 ; pub const VIRGL_OBJ_STREAMOUT_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_STREAMOUT_RES_HANDLE : u32 = 2 ; pub const VIRGL_OBJ_STREAMOUT_BUFFER_OFFSET : u32 = 3 ; pub const VIRGL_OBJ_STREAMOUT_BUFFER_SIZE : u32 = 4 ; pub const VIRGL_OBJ_SAMPLER_STATE_SIZE : u32 = 9 ; pub const VIRGL_OBJ_SAMPLER_STATE_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_SAMPLER_STATE_S0 : u32 = 2 ; pub const VIRGL_OBJ_SAMPLER_STATE_LOD_BIAS : u32 = 3 ; pub const VIRGL_OBJ_SAMPLER_STATE_MIN_LOD : u32 = 4 ; pub const VIRGL_OBJ_SAMPLER_STATE_MAX_LOD : u32 = 5 ; pub const VIRGL_OBJ_SAMPLER_VIEW_SIZE : u32 = 6 ; pub const VIRGL_OBJ_SAMPLER_VIEW_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_SAMPLER_VIEW_RES_HANDLE : u32 = 2 ; pub const VIRGL_OBJ_SAMPLER_VIEW_FORMAT : u32 = 3 ; pub const VIRGL_OBJ_SAMPLER_VIEW_BUFFER_FIRST_ELEMENT : u32 = 4 ; pub const VIRGL_OBJ_SAMPLER_VIEW_BUFFER_LAST_ELEMENT : u32 = 5 ; pub const VIRGL_OBJ_SAMPLER_VIEW_TEXTURE_LAYER : u32 = 4 ; pub const VIRGL_OBJ_SAMPLER_VIEW_TEXTURE_LEVEL : u32 = 5 ; pub const VIRGL_OBJ_SAMPLER_VIEW_SWIZZLE : u32 = 6 ; pub const VIRGL_SET_SAMPLER_VIEWS_SHADER_TYPE : u32 = 1 ; pub const VIRGL_SET_SAMPLER_VIEWS_START_SLOT : u32 = 2 ; pub const VIRGL_SET_SAMPLER_VIEWS_V0_HANDLE : u32 = 3 ; pub const VIRGL_BIND_SAMPLER_STATES_SHADER_TYPE : u32 = 1 ; pub const VIRGL_BIND_SAMPLER_STATES_START_SLOT : u32 = 2 ; pub const VIRGL_BIND_SAMPLER_STATES_S0_HANDLE : u32 = 3 ; pub const VIRGL_SET_STENCIL_REF_SIZE : u32 = 1 ; pub const VIRGL_SET_STENCIL_REF : u32 = 1 ; pub const VIRGL_SET_BLEND_COLOR_SIZE : u32 = 4 ; pub const VIRGL_SET_SCISSOR_START_SLOT : u32 = 1 ; pub const VIRGL_CMD_RESOURCE_COPY_REGION_SIZE : u32 = 13 ; pub const VIRGL_CMD_RCR_DST_RES_HANDLE : u32 = 1 ; pub const VIRGL_CMD_RCR_DST_LEVEL : u32 = 2 ; pub const VIRGL_CMD_RCR_DST_X : u32 = 3 ; pub const VIRGL_CMD_RCR_DST_Y : u32 = 4 ; pub const VIRGL_CMD_RCR_DST_Z : u32 = 5 ; pub const VIRGL_CMD_RCR_SRC_RES_HANDLE : u32 = 6 ; pub const VIRGL_CMD_RCR_SRC_LEVEL : u32 = 7 ; pub const VIRGL_CMD_RCR_SRC_X : u32 = 8 ; pub const VIRGL_CMD_RCR_SRC_Y : u32 = 9 ; pub const VIRGL_CMD_RCR_SRC_Z : u32 = 10 ; pub const VIRGL_CMD_RCR_SRC_W : u32 = 11 ; pub const VIRGL_CMD_RCR_SRC_H : u32 = 12 ; pub const VIRGL_CMD_RCR_SRC_D : u32 = 13 ; pub const VIRGL_CMD_BLIT_SIZE : u32 = 21 ; pub const VIRGL_CMD_BLIT_S0 : u32 = 1 ; pub const VIRGL_CMD_BLIT_SCISSOR_MINX_MINY : u32 = 2 ; pub const VIRGL_CMD_BLIT_SCISSOR_MAXX_MAXY : u32 = 3 ; pub const VIRGL_CMD_BLIT_DST_RES_HANDLE : u32 = 4 ; pub const VIRGL_CMD_BLIT_DST_LEVEL : u32 = 5 ; pub const VIRGL_CMD_BLIT_DST_FORMAT : u32 = 6 ; pub const VIRGL_CMD_BLIT_DST_X : u32 = 7 ; pub const VIRGL_CMD_BLIT_DST_Y : u32 = 8 ; pub const VIRGL_CMD_BLIT_DST_Z : u32 = 9 ; pub const VIRGL_CMD_BLIT_DST_W : u32 = 10 ; pub const VIRGL_CMD_BLIT_DST_H : u32 = 11 ; pub const VIRGL_CMD_BLIT_DST_D : u32 = 12 ; pub const VIRGL_CMD_BLIT_SRC_RES_HANDLE : u32 = 13 ; pub const VIRGL_CMD_BLIT_SRC_LEVEL : u32 = 14 ; pub const VIRGL_CMD_BLIT_SRC_FORMAT : u32 = 15 ; pub const VIRGL_CMD_BLIT_SRC_X : u32 = 16 ; pub const VIRGL_CMD_BLIT_SRC_Y : u32 = 17 ; pub const VIRGL_CMD_BLIT_SRC_Z : u32 = 18 ; pub const VIRGL_CMD_BLIT_SRC_W : u32 = 19 ; pub const VIRGL_CMD_BLIT_SRC_H : u32 = 20 ; pub const VIRGL_CMD_BLIT_SRC_D : u32 = 21 ; pub const VIRGL_OBJ_QUERY_SIZE : u32 = 4 ; pub const VIRGL_OBJ_QUERY_HANDLE : u32 = 1 ; pub const VIRGL_OBJ_QUERY_TYPE_INDEX : u32 = 2 ; pub const VIRGL_OBJ_QUERY_OFFSET : u32 = 3 ; pub const VIRGL_OBJ_QUERY_RES_HANDLE : u32 = 4 ; pub const VIRGL_QUERY_BEGIN_HANDLE : u32 = 1 ; pub const VIRGL_QUERY_END_HANDLE : u32 = 1 ; pub const VIRGL_QUERY_RESULT_HANDLE : u32 = 1 ; pub const VIRGL_QUERY_RESULT_WAIT : u32 = 2 ; pub const VIRGL_RENDER_CONDITION_SIZE : u32 = 3 ; pub const VIRGL_RENDER_CONDITION_HANDLE : u32 = 1 ; pub const VIRGL_RENDER_CONDITION_CONDITION : u32 = 2 ; pub const VIRGL_RENDER_CONDITION_MODE : u32 = 3 ; pub const VIRGL_RESOURCE_IW_RES_HANDLE : u32 = 1 ; pub const VIRGL_RESOURCE_IW_LEVEL : u32 = 2 ; pub const VIRGL_RESOURCE_IW_USAGE : u32 = 3 ; pub const VIRGL_RESOURCE_IW_STRIDE : u32 = 4 ; pub const VIRGL_RESOURCE_IW_LAYER_STRIDE : u32 = 5 ; pub const VIRGL_RESOURCE_IW_X : u32 = 6 ; pub const VIRGL_RESOURCE_IW_Y : u32 = 7 ; pub const VIRGL_RESOURCE_IW_Z : u32 = 8 ; pub const VIRGL_RESOURCE_IW_W : u32 = 9 ; pub const VIRGL_RESOURCE_IW_H : u32 = 10 ; pub const VIRGL_RESOURCE_IW_D : u32 = 11 ; pub const VIRGL_RESOURCE_IW_DATA_START : u32 = 12 ; pub const VIRGL_SET_STREAMOUT_TARGETS_APPEND_BITMASK : u32 = 1 ; pub const VIRGL_SET_STREAMOUT_TARGETS_H0 : u32 = 2 ; pub const VIRGL_SET_SAMPLE_MASK_SIZE : u32 = 1 ; pub const VIRGL_SET_SAMPLE_MASK_MASK : u32 = 1 ; pub const VIRGL_SET_CLIP_STATE_SIZE : u32 = 32 ; pub const VIRGL_SET_CLIP_STATE_C0 : u32 = 1 ; pub const VIRGL_POLYGON_STIPPLE_SIZE : u32 = 32 ; pub const VIRGL_POLYGON_STIPPLE_P0 : u32 = 1 ; pub const VIRGL_BIND_SHADER_SIZE : u32 = 2 ; pub const VIRGL_BIND_SHADER_HANDLE : u32 = 1 ; pub const VIRGL_BIND_SHADER_TYPE : u32 = 2 ; pub const VIRGL_TESS_STATE_SIZE : u32 = 6 ; pub const VIRGL_SET_MIN_SAMPLES_SIZE : u32 = 1 ; pub const VIRGL_SET_MIN_SAMPLES_MASK : u32 = 1 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct virgl_host_query_state { pub query_state : u32 , pub result_size : u32 , pub result : u64 , } pub const VIRGL_OBJECT_NULL : virgl_object_type = 0 ; pub const VIRGL_OBJECT_BLEND : virgl_object_type = 1 ; pub const VIRGL_OBJECT_RASTERIZER : virgl_object_type = 2 ; pub const VIRGL_OBJECT_DSA : virgl_object_type = 3 ; pub const VIRGL_OBJECT_SHADER : virgl_object_type = 4 ; pub const VIRGL_OBJECT_VERTEX_ELEMENTS : virgl_object_type = 5 ; pub const VIRGL_OBJECT_SAMPLER_VIEW : virgl_object_type = 6 ; pub const VIRGL_OBJECT_SAMPLER_STATE : virgl_object_type = 7 ; pub const VIRGL_OBJECT_SURFACE : virgl_object_type = 8 ; pub const VIRGL_OBJECT_QUERY : virgl_object_type = 9 ; pub const VIRGL_OBJECT_STREAMOUT_TARGET : virgl_object_type = 10 ; pub const VIRGL_MAX_OBJECTS : virgl_object_type = 11 ; pub type virgl_object_type = u32 ; pub const VIRGL_CCMD_NOP : virgl_context_cmd = 0 ; pub const VIRGL_CCMD_CREATE_OBJECT : virgl_context_cmd = 1 ; pub const VIRGL_CCMD_BIND_OBJECT : virgl_context_cmd = 2 ; pub const VIRGL_CCMD_DESTROY_OBJECT : virgl_context_cmd = 3 ; pub const VIRGL_CCMD_SET_VIEWPORT_STATE : virgl_context_cmd = 4 ; pub const VIRGL_CCMD_SET_FRAMEBUFFER_STATE : virgl_context_cmd = 5 ; pub const VIRGL_CCMD_SET_VERTEX_BUFFERS : virgl_context_cmd = 6 ; pub const VIRGL_CCMD_CLEAR : virgl_context_cmd = 7 ; pub const VIRGL_CCMD_DRAW_VBO : virgl_context_cmd = 8 ; pub const VIRGL_CCMD_RESOURCE_INLINE_WRITE : virgl_context_cmd = 9 ; pub const VIRGL_CCMD_SET_SAMPLER_VIEWS : virgl_context_cmd = 10 ; pub const VIRGL_CCMD_SET_INDEX_BUFFER : virgl_context_cmd = 11 ; pub const VIRGL_CCMD_SET_CONSTANT_BUFFER : virgl_context_cmd = 12 ; pub const VIRGL_CCMD_SET_STENCIL_REF : virgl_context_cmd = 13 ; pub const VIRGL_CCMD_SET_BLEND_COLOR : virgl_context_cmd = 14 ; pub const VIRGL_CCMD_SET_SCISSOR_STATE : virgl_context_cmd = 15 ; pub const VIRGL_CCMD_BLIT : virgl_context_cmd = 16 ; pub const VIRGL_CCMD_RESOURCE_COPY_REGION : virgl_context_cmd = 17 ; pub const VIRGL_CCMD_BIND_SAMPLER_STATES : virgl_context_cmd = 18 ; pub const VIRGL_CCMD_BEGIN_QUERY : virgl_context_cmd = 19 ; pub const VIRGL_CCMD_END_QUERY : virgl_context_cmd = 20 ; pub const VIRGL_CCMD_GET_QUERY_RESULT : virgl_context_cmd = 21 ; pub const VIRGL_CCMD_SET_POLYGON_STIPPLE : virgl_context_cmd = 22 ; pub const VIRGL_CCMD_SET_CLIP_STATE : virgl_context_cmd = 23 ; pub const VIRGL_CCMD_SET_SAMPLE_MASK : virgl_context_cmd = 24 ; pub const VIRGL_CCMD_SET_STREAMOUT_TARGETS : virgl_context_cmd = 25 ; pub const VIRGL_CCMD_SET_RENDER_CONDITION : virgl_context_cmd = 26 ; pub const VIRGL_CCMD_SET_UNIFORM_BUFFER : virgl_context_cmd = 27 ; pub const VIRGL_CCMD_SET_SUB_CTX : virgl_context_cmd = 28 ; pub const VIRGL_CCMD_CREATE_SUB_CTX : virgl_context_cmd = 29 ; pub const VIRGL_CCMD_DESTROY_SUB_CTX : virgl_context_cmd = 30 ; pub const VIRGL_CCMD_BIND_SHADER : virgl_context_cmd = 31 ; pub const VIRGL_CCMD_SET_TESS_STATE : virgl_context_cmd = 32 ; pub const VIRGL_CCMD_SET_MIN_SAMPLES : virgl_context_cmd = 33 ; pub type virgl_context_cmd = u32 ; \ No newline at end of file +pub const VIRGL_QUERY_STATE_NEW: u32 = 0; +pub const VIRGL_QUERY_STATE_DONE: u32 = 1; +pub const VIRGL_QUERY_STATE_WAIT_HOST: u32 = 2; +pub const VIRGL_MAX_COLOR_BUFS: u32 = 8; +pub const VIRGL_MAX_CLIP_PLANES: u32 = 8; +pub const VIRGL_OBJ_CREATE_HEADER: u32 = 0; +pub const VIRGL_OBJ_CREATE_HANDLE: u32 = 1; +pub const VIRGL_OBJ_BIND_HEADER: u32 = 0; +pub const VIRGL_OBJ_BIND_HANDLE: u32 = 1; +pub const VIRGL_OBJ_DESTROY_HANDLE: u32 = 1; +pub const VIRGL_OBJ_BLEND_SIZE: u32 = 11; +pub const VIRGL_OBJ_BLEND_HANDLE: u32 = 1; +pub const VIRGL_OBJ_BLEND_S0: u32 = 2; +pub const VIRGL_OBJ_BLEND_S1: u32 = 3; +pub const VIRGL_OBJ_DSA_SIZE: u32 = 5; +pub const VIRGL_OBJ_DSA_HANDLE: u32 = 1; +pub const VIRGL_OBJ_DSA_S0: u32 = 2; +pub const VIRGL_OBJ_DSA_S1: u32 = 3; +pub const VIRGL_OBJ_DSA_S2: u32 = 4; +pub const VIRGL_OBJ_DSA_ALPHA_REF: u32 = 5; +pub const VIRGL_OBJ_RS_SIZE: u32 = 9; +pub const VIRGL_OBJ_RS_HANDLE: u32 = 1; +pub const VIRGL_OBJ_RS_S0: u32 = 2; +pub const VIRGL_OBJ_RS_POINT_SIZE: u32 = 3; +pub const VIRGL_OBJ_RS_SPRITE_COORD_ENABLE: u32 = 4; +pub const VIRGL_OBJ_RS_S3: u32 = 5; +pub const VIRGL_OBJ_RS_LINE_WIDTH: u32 = 6; +pub const VIRGL_OBJ_RS_OFFSET_UNITS: u32 = 7; +pub const VIRGL_OBJ_RS_OFFSET_SCALE: u32 = 8; +pub const VIRGL_OBJ_RS_OFFSET_CLAMP: u32 = 9; +pub const VIRGL_OBJ_CLEAR_SIZE: u32 = 8; +pub const VIRGL_OBJ_CLEAR_BUFFERS: u32 = 1; +pub const VIRGL_OBJ_CLEAR_COLOR_0: u32 = 2; +pub const VIRGL_OBJ_CLEAR_COLOR_1: u32 = 3; +pub const VIRGL_OBJ_CLEAR_COLOR_2: u32 = 4; +pub const VIRGL_OBJ_CLEAR_COLOR_3: u32 = 5; +pub const VIRGL_OBJ_CLEAR_DEPTH_0: u32 = 6; +pub const VIRGL_OBJ_CLEAR_DEPTH_1: u32 = 7; +pub const VIRGL_OBJ_CLEAR_STENCIL: u32 = 8; +pub const VIRGL_OBJ_SHADER_HANDLE: u32 = 1; +pub const VIRGL_OBJ_SHADER_TYPE: u32 = 2; +pub const VIRGL_OBJ_SHADER_OFFSET: u32 = 3; +pub const VIRGL_OBJ_SHADER_OFFSET_CONT: u32 = 2147483648; +pub const VIRGL_OBJ_SHADER_NUM_TOKENS: u32 = 4; +pub const VIRGL_OBJ_SHADER_SO_NUM_OUTPUTS: u32 = 5; +pub const VIRGL_SET_VIEWPORT_START_SLOT: u32 = 1; +pub const VIRGL_SET_FRAMEBUFFER_STATE_NR_CBUFS: u32 = 1; +pub const VIRGL_SET_FRAMEBUFFER_STATE_NR_ZSURF_HANDLE: u32 = 2; +pub const VIRGL_OBJ_VERTEX_ELEMENTS_HANDLE: u32 = 1; +pub const VIRGL_SET_INDEX_BUFFER_HANDLE: u32 = 1; +pub const VIRGL_SET_INDEX_BUFFER_INDEX_SIZE: u32 = 2; +pub const VIRGL_SET_INDEX_BUFFER_OFFSET: u32 = 3; +pub const VIRGL_SET_CONSTANT_BUFFER_SHADER_TYPE: u32 = 1; +pub const VIRGL_SET_CONSTANT_BUFFER_INDEX: u32 = 2; +pub const VIRGL_SET_CONSTANT_BUFFER_DATA_START: u32 = 3; +pub const VIRGL_SET_UNIFORM_BUFFER_SIZE: u32 = 5; +pub const VIRGL_SET_UNIFORM_BUFFER_SHADER_TYPE: u32 = 1; +pub const VIRGL_SET_UNIFORM_BUFFER_INDEX: u32 = 2; +pub const VIRGL_SET_UNIFORM_BUFFER_OFFSET: u32 = 3; +pub const VIRGL_SET_UNIFORM_BUFFER_LENGTH: u32 = 4; +pub const VIRGL_SET_UNIFORM_BUFFER_RES_HANDLE: u32 = 5; +pub const VIRGL_DRAW_VBO_SIZE: u32 = 12; +pub const VIRGL_DRAW_VBO_SIZE_TESS: u32 = 14; +pub const VIRGL_DRAW_VBO_SIZE_INDIRECT: u32 = 20; +pub const VIRGL_DRAW_VBO_START: u32 = 1; +pub const VIRGL_DRAW_VBO_COUNT: u32 = 2; +pub const VIRGL_DRAW_VBO_MODE: u32 = 3; +pub const VIRGL_DRAW_VBO_INDEXED: u32 = 4; +pub const VIRGL_DRAW_VBO_INSTANCE_COUNT: u32 = 5; +pub const VIRGL_DRAW_VBO_INDEX_BIAS: u32 = 6; +pub const VIRGL_DRAW_VBO_START_INSTANCE: u32 = 7; +pub const VIRGL_DRAW_VBO_PRIMITIVE_RESTART: u32 = 8; +pub const VIRGL_DRAW_VBO_RESTART_INDEX: u32 = 9; +pub const VIRGL_DRAW_VBO_MIN_INDEX: u32 = 10; +pub const VIRGL_DRAW_VBO_MAX_INDEX: u32 = 11; +pub const VIRGL_DRAW_VBO_COUNT_FROM_SO: u32 = 12; +pub const VIRGL_DRAW_VBO_VERTICES_PER_PATCH: u32 = 13; +pub const VIRGL_DRAW_VBO_DRAWID: u32 = 14; +pub const VIRGL_DRAW_VBO_INDIRECT_HANDLE: u32 = 15; +pub const VIRGL_DRAW_VBO_INDIRECT_OFFSET: u32 = 16; +pub const VIRGL_DRAW_VBO_INDIRECT_STRIDE: u32 = 17; +pub const VIRGL_DRAW_VBO_INDIRECT_DRAW_COUNT: u32 = 18; +pub const VIRGL_DRAW_VBO_INDIRECT_DRAW_COUNT_OFFSET: u32 = 19; +pub const VIRGL_DRAW_VBO_INDIRECT_DRAW_COUNT_HANDLE: u32 = 20; +pub const VIRGL_OBJ_SURFACE_SIZE: u32 = 5; +pub const VIRGL_OBJ_SURFACE_HANDLE: u32 = 1; +pub const VIRGL_OBJ_SURFACE_RES_HANDLE: u32 = 2; +pub const VIRGL_OBJ_SURFACE_FORMAT: u32 = 3; +pub const VIRGL_OBJ_SURFACE_BUFFER_FIRST_ELEMENT: u32 = 4; +pub const VIRGL_OBJ_SURFACE_BUFFER_LAST_ELEMENT: u32 = 5; +pub const VIRGL_OBJ_SURFACE_TEXTURE_LEVEL: u32 = 4; +pub const VIRGL_OBJ_SURFACE_TEXTURE_LAYERS: u32 = 5; +pub const VIRGL_OBJ_STREAMOUT_SIZE: u32 = 4; +pub const VIRGL_OBJ_STREAMOUT_HANDLE: u32 = 1; +pub const VIRGL_OBJ_STREAMOUT_RES_HANDLE: u32 = 2; +pub const VIRGL_OBJ_STREAMOUT_BUFFER_OFFSET: u32 = 3; +pub const VIRGL_OBJ_STREAMOUT_BUFFER_SIZE: u32 = 4; +pub const VIRGL_OBJ_SAMPLER_STATE_SIZE: u32 = 9; +pub const VIRGL_OBJ_SAMPLER_STATE_HANDLE: u32 = 1; +pub const VIRGL_OBJ_SAMPLER_STATE_S0: u32 = 2; +pub const VIRGL_OBJ_SAMPLER_STATE_LOD_BIAS: u32 = 3; +pub const VIRGL_OBJ_SAMPLER_STATE_MIN_LOD: u32 = 4; +pub const VIRGL_OBJ_SAMPLER_STATE_MAX_LOD: u32 = 5; +pub const VIRGL_OBJ_SAMPLER_VIEW_SIZE: u32 = 6; +pub const VIRGL_OBJ_SAMPLER_VIEW_HANDLE: u32 = 1; +pub const VIRGL_OBJ_SAMPLER_VIEW_RES_HANDLE: u32 = 2; +pub const VIRGL_OBJ_SAMPLER_VIEW_FORMAT: u32 = 3; +pub const VIRGL_OBJ_SAMPLER_VIEW_BUFFER_FIRST_ELEMENT: u32 = 4; +pub const VIRGL_OBJ_SAMPLER_VIEW_BUFFER_LAST_ELEMENT: u32 = 5; +pub const VIRGL_OBJ_SAMPLER_VIEW_TEXTURE_LAYER: u32 = 4; +pub const VIRGL_OBJ_SAMPLER_VIEW_TEXTURE_LEVEL: u32 = 5; +pub const VIRGL_OBJ_SAMPLER_VIEW_SWIZZLE: u32 = 6; +pub const VIRGL_SET_SAMPLER_VIEWS_SHADER_TYPE: u32 = 1; +pub const VIRGL_SET_SAMPLER_VIEWS_START_SLOT: u32 = 2; +pub const VIRGL_SET_SAMPLER_VIEWS_V0_HANDLE: u32 = 3; +pub const VIRGL_BIND_SAMPLER_STATES_SHADER_TYPE: u32 = 1; +pub const VIRGL_BIND_SAMPLER_STATES_START_SLOT: u32 = 2; +pub const VIRGL_BIND_SAMPLER_STATES_S0_HANDLE: u32 = 3; +pub const VIRGL_SET_STENCIL_REF_SIZE: u32 = 1; +pub const VIRGL_SET_STENCIL_REF: u32 = 1; +pub const VIRGL_SET_BLEND_COLOR_SIZE: u32 = 4; +pub const VIRGL_SET_SCISSOR_START_SLOT: u32 = 1; +pub const VIRGL_CMD_RESOURCE_COPY_REGION_SIZE: u32 = 13; +pub const VIRGL_CMD_RCR_DST_RES_HANDLE: u32 = 1; +pub const VIRGL_CMD_RCR_DST_LEVEL: u32 = 2; +pub const VIRGL_CMD_RCR_DST_X: u32 = 3; +pub const VIRGL_CMD_RCR_DST_Y: u32 = 4; +pub const VIRGL_CMD_RCR_DST_Z: u32 = 5; +pub const VIRGL_CMD_RCR_SRC_RES_HANDLE: u32 = 6; +pub const VIRGL_CMD_RCR_SRC_LEVEL: u32 = 7; +pub const VIRGL_CMD_RCR_SRC_X: u32 = 8; +pub const VIRGL_CMD_RCR_SRC_Y: u32 = 9; +pub const VIRGL_CMD_RCR_SRC_Z: u32 = 10; +pub const VIRGL_CMD_RCR_SRC_W: u32 = 11; +pub const VIRGL_CMD_RCR_SRC_H: u32 = 12; +pub const VIRGL_CMD_RCR_SRC_D: u32 = 13; +pub const VIRGL_CMD_BLIT_SIZE: u32 = 21; +pub const VIRGL_CMD_BLIT_S0: u32 = 1; +pub const VIRGL_CMD_BLIT_SCISSOR_MINX_MINY: u32 = 2; +pub const VIRGL_CMD_BLIT_SCISSOR_MAXX_MAXY: u32 = 3; +pub const VIRGL_CMD_BLIT_DST_RES_HANDLE: u32 = 4; +pub const VIRGL_CMD_BLIT_DST_LEVEL: u32 = 5; +pub const VIRGL_CMD_BLIT_DST_FORMAT: u32 = 6; +pub const VIRGL_CMD_BLIT_DST_X: u32 = 7; +pub const VIRGL_CMD_BLIT_DST_Y: u32 = 8; +pub const VIRGL_CMD_BLIT_DST_Z: u32 = 9; +pub const VIRGL_CMD_BLIT_DST_W: u32 = 10; +pub const VIRGL_CMD_BLIT_DST_H: u32 = 11; +pub const VIRGL_CMD_BLIT_DST_D: u32 = 12; +pub const VIRGL_CMD_BLIT_SRC_RES_HANDLE: u32 = 13; +pub const VIRGL_CMD_BLIT_SRC_LEVEL: u32 = 14; +pub const VIRGL_CMD_BLIT_SRC_FORMAT: u32 = 15; +pub const VIRGL_CMD_BLIT_SRC_X: u32 = 16; +pub const VIRGL_CMD_BLIT_SRC_Y: u32 = 17; +pub const VIRGL_CMD_BLIT_SRC_Z: u32 = 18; +pub const VIRGL_CMD_BLIT_SRC_W: u32 = 19; +pub const VIRGL_CMD_BLIT_SRC_H: u32 = 20; +pub const VIRGL_CMD_BLIT_SRC_D: u32 = 21; +pub const VIRGL_OBJ_QUERY_SIZE: u32 = 4; +pub const VIRGL_OBJ_QUERY_HANDLE: u32 = 1; +pub const VIRGL_OBJ_QUERY_TYPE_INDEX: u32 = 2; +pub const VIRGL_OBJ_QUERY_OFFSET: u32 = 3; +pub const VIRGL_OBJ_QUERY_RES_HANDLE: u32 = 4; +pub const VIRGL_QUERY_BEGIN_HANDLE: u32 = 1; +pub const VIRGL_QUERY_END_HANDLE: u32 = 1; +pub const VIRGL_QUERY_RESULT_HANDLE: u32 = 1; +pub const VIRGL_QUERY_RESULT_WAIT: u32 = 2; +pub const VIRGL_RENDER_CONDITION_SIZE: u32 = 3; +pub const VIRGL_RENDER_CONDITION_HANDLE: u32 = 1; +pub const VIRGL_RENDER_CONDITION_CONDITION: u32 = 2; +pub const VIRGL_RENDER_CONDITION_MODE: u32 = 3; +pub const VIRGL_RESOURCE_IW_RES_HANDLE: u32 = 1; +pub const VIRGL_RESOURCE_IW_LEVEL: u32 = 2; +pub const VIRGL_RESOURCE_IW_USAGE: u32 = 3; +pub const VIRGL_RESOURCE_IW_STRIDE: u32 = 4; +pub const VIRGL_RESOURCE_IW_LAYER_STRIDE: u32 = 5; +pub const VIRGL_RESOURCE_IW_X: u32 = 6; +pub const VIRGL_RESOURCE_IW_Y: u32 = 7; +pub const VIRGL_RESOURCE_IW_Z: u32 = 8; +pub const VIRGL_RESOURCE_IW_W: u32 = 9; +pub const VIRGL_RESOURCE_IW_H: u32 = 10; +pub const VIRGL_RESOURCE_IW_D: u32 = 11; +pub const VIRGL_RESOURCE_IW_DATA_START: u32 = 12; +pub const VIRGL_SET_STREAMOUT_TARGETS_APPEND_BITMASK: u32 = 1; +pub const VIRGL_SET_STREAMOUT_TARGETS_H0: u32 = 2; +pub const VIRGL_SET_SAMPLE_MASK_SIZE: u32 = 1; +pub const VIRGL_SET_SAMPLE_MASK_MASK: u32 = 1; +pub const VIRGL_SET_CLIP_STATE_SIZE: u32 = 32; +pub const VIRGL_SET_CLIP_STATE_C0: u32 = 1; +pub const VIRGL_POLYGON_STIPPLE_SIZE: u32 = 32; +pub const VIRGL_POLYGON_STIPPLE_P0: u32 = 1; +pub const VIRGL_BIND_SHADER_SIZE: u32 = 2; +pub const VIRGL_BIND_SHADER_HANDLE: u32 = 1; +pub const VIRGL_BIND_SHADER_TYPE: u32 = 2; +pub const VIRGL_TESS_STATE_SIZE: u32 = 6; +pub const VIRGL_SET_MIN_SAMPLES_SIZE: u32 = 1; +pub const VIRGL_SET_MIN_SAMPLES_MASK: u32 = 1; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct virgl_host_query_state { + pub query_state: u32, + pub result_size: u32, + pub result: u64, +} +pub const VIRGL_OBJECT_NULL: virgl_object_type = 0; +pub const VIRGL_OBJECT_BLEND: virgl_object_type = 1; +pub const VIRGL_OBJECT_RASTERIZER: virgl_object_type = 2; +pub const VIRGL_OBJECT_DSA: virgl_object_type = 3; +pub const VIRGL_OBJECT_SHADER: virgl_object_type = 4; +pub const VIRGL_OBJECT_VERTEX_ELEMENTS: virgl_object_type = 5; +pub const VIRGL_OBJECT_SAMPLER_VIEW: virgl_object_type = 6; +pub const VIRGL_OBJECT_SAMPLER_STATE: virgl_object_type = 7; +pub const VIRGL_OBJECT_SURFACE: virgl_object_type = 8; +pub const VIRGL_OBJECT_QUERY: virgl_object_type = 9; +pub const VIRGL_OBJECT_STREAMOUT_TARGET: virgl_object_type = 10; +pub const VIRGL_MAX_OBJECTS: virgl_object_type = 11; +pub type virgl_object_type = u32; +pub const VIRGL_CCMD_NOP: virgl_context_cmd = 0; +pub const VIRGL_CCMD_CREATE_OBJECT: virgl_context_cmd = 1; +pub const VIRGL_CCMD_BIND_OBJECT: virgl_context_cmd = 2; +pub const VIRGL_CCMD_DESTROY_OBJECT: virgl_context_cmd = 3; +pub const VIRGL_CCMD_SET_VIEWPORT_STATE: virgl_context_cmd = 4; +pub const VIRGL_CCMD_SET_FRAMEBUFFER_STATE: virgl_context_cmd = 5; +pub const VIRGL_CCMD_SET_VERTEX_BUFFERS: virgl_context_cmd = 6; +pub const VIRGL_CCMD_CLEAR: virgl_context_cmd = 7; +pub const VIRGL_CCMD_DRAW_VBO: virgl_context_cmd = 8; +pub const VIRGL_CCMD_RESOURCE_INLINE_WRITE: virgl_context_cmd = 9; +pub const VIRGL_CCMD_SET_SAMPLER_VIEWS: virgl_context_cmd = 10; +pub const VIRGL_CCMD_SET_INDEX_BUFFER: virgl_context_cmd = 11; +pub const VIRGL_CCMD_SET_CONSTANT_BUFFER: virgl_context_cmd = 12; +pub const VIRGL_CCMD_SET_STENCIL_REF: virgl_context_cmd = 13; +pub const VIRGL_CCMD_SET_BLEND_COLOR: virgl_context_cmd = 14; +pub const VIRGL_CCMD_SET_SCISSOR_STATE: virgl_context_cmd = 15; +pub const VIRGL_CCMD_BLIT: virgl_context_cmd = 16; +pub const VIRGL_CCMD_RESOURCE_COPY_REGION: virgl_context_cmd = 17; +pub const VIRGL_CCMD_BIND_SAMPLER_STATES: virgl_context_cmd = 18; +pub const VIRGL_CCMD_BEGIN_QUERY: virgl_context_cmd = 19; +pub const VIRGL_CCMD_END_QUERY: virgl_context_cmd = 20; +pub const VIRGL_CCMD_GET_QUERY_RESULT: virgl_context_cmd = 21; +pub const VIRGL_CCMD_SET_POLYGON_STIPPLE: virgl_context_cmd = 22; +pub const VIRGL_CCMD_SET_CLIP_STATE: virgl_context_cmd = 23; +pub const VIRGL_CCMD_SET_SAMPLE_MASK: virgl_context_cmd = 24; +pub const VIRGL_CCMD_SET_STREAMOUT_TARGETS: virgl_context_cmd = 25; +pub const VIRGL_CCMD_SET_RENDER_CONDITION: virgl_context_cmd = 26; +pub const VIRGL_CCMD_SET_UNIFORM_BUFFER: virgl_context_cmd = 27; +pub const VIRGL_CCMD_SET_SUB_CTX: virgl_context_cmd = 28; +pub const VIRGL_CCMD_CREATE_SUB_CTX: virgl_context_cmd = 29; +pub const VIRGL_CCMD_DESTROY_SUB_CTX: virgl_context_cmd = 30; +pub const VIRGL_CCMD_BIND_SHADER: virgl_context_cmd = 31; +pub const VIRGL_CCMD_SET_TESS_STATE: virgl_context_cmd = 32; +pub const VIRGL_CCMD_SET_MIN_SAMPLES: virgl_context_cmd = 33; +pub type virgl_context_cmd = u32; diff --git a/gpu_renderer/src/generated/virglrenderer.rs b/gpu_renderer/src/generated/virglrenderer.rs index 542c413..df45c1e 100644 --- a/gpu_renderer/src/generated/virglrenderer.rs +++ b/gpu_renderer/src/generated/virglrenderer.rs @@ -1,5 +1,238 @@ /* automatically generated by rust-bindgen */ -#[link(name = "virglrenderer")] extern {} +#[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 > , pub get_drm_fd : :: std :: option :: Option < unsafe extern "C" fn ( cookie : * mut :: std :: os :: raw :: c_void ) -> :: 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 ; } extern "C" { pub fn virgl_renderer_get_fd_for_texture2 ( tex_id : u32 , fd : * mut :: std :: os :: raw :: c_int , stride : * mut :: std :: os :: raw :: c_int , offset : * 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_import_eglimage ( args : * mut virgl_renderer_resource_create_args , image : * mut :: std :: os :: raw :: c_void ) -> :: 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 ; } \ No newline at end of file +#[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, + >, + pub get_drm_fd: ::std::option::Option< + unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void) -> ::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; +} +extern "C" { + pub fn virgl_renderer_get_fd_for_texture2( + tex_id: u32, + fd: *mut ::std::os::raw::c_int, + stride: *mut ::std::os::raw::c_int, + offset: *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_import_eglimage( + args: *mut virgl_renderer_resource_create_args, + image: *mut ::std::os::raw::c_void, + ) -> ::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; +} diff --git a/gpu_renderer/src/lib.rs b/gpu_renderer/src/lib.rs index 09d5949..6864fe9 100644 --- a/gpu_renderer/src/lib.rs +++ b/gpu_renderer/src/lib.rs @@ -8,9 +8,9 @@ extern crate data_model; extern crate libc; extern crate sys_util; +mod command_buffer; mod generated; mod pipe_format_fourcc; -mod command_buffer; use std::cell::RefCell; use std::ffi::CStr; @@ -19,7 +19,7 @@ use std::fs::File; use std::marker::PhantomData; use std::mem::{size_of, transmute, uninitialized}; use std::ops::Deref; -use std::os::raw::{c_void, c_int, c_uint, c_char}; +use std::os::raw::{c_char, c_int, c_uint, c_void}; use std::os::unix::io::{FromRawFd, RawFd}; use std::ptr::{null, null_mut}; use std::rc::Rc; @@ -29,20 +29,21 @@ use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT}; use data_model::{VolatileMemory, VolatileSlice}; use sys_util::{GuestAddress, GuestMemory}; -use generated::virglrenderer::*; -pub use generated::virglrenderer::{virgl_renderer_resource_create_args, - virgl_renderer_resource_info}; -use generated::epoxy_egl::{EGL_CONTEXT_CLIENT_VERSION, EGL_SURFACE_TYPE, EGL_OPENGL_ES_API, - EGL_NONE, EGL_GL_TEXTURE_2D_KHR, EGL_WIDTH, EGL_HEIGHT, - EGL_LINUX_DRM_FOURCC_EXT, EGL_DMA_BUF_PLANE0_FD_EXT, - EGL_DMA_BUF_PLANE0_OFFSET_EXT, EGL_DMA_BUF_PLANE0_PITCH_EXT, - EGL_LINUX_DMA_BUF_EXT, EGLDEBUGPROCKHR, EGLAttrib, - EGLuint64KHR, EGLNativeDisplayType, EGLConfig, EGLContext, EGLDisplay, - EGLSurface, EGLClientBuffer, EGLBoolean, EGLint, EGLenum, EGLImageKHR}; -use generated::p_defines::{PIPE_TEXTURE_1D, PIPE_TEXTURE_2D, PIPE_BIND_SAMPLER_VIEW}; +pub use command_buffer::CommandBufferBuilder; +use generated::epoxy_egl::{ + EGLAttrib, EGLBoolean, EGLClientBuffer, EGLConfig, EGLContext, EGLDisplay, EGLImageKHR, + EGLNativeDisplayType, EGLSurface, EGLenum, EGLint, EGLuint64KHR, EGLDEBUGPROCKHR, + EGL_CONTEXT_CLIENT_VERSION, EGL_DMA_BUF_PLANE0_FD_EXT, EGL_DMA_BUF_PLANE0_OFFSET_EXT, + EGL_DMA_BUF_PLANE0_PITCH_EXT, EGL_GL_TEXTURE_2D_KHR, EGL_HEIGHT, EGL_LINUX_DMA_BUF_EXT, + EGL_LINUX_DRM_FOURCC_EXT, EGL_NONE, EGL_OPENGL_ES_API, EGL_SURFACE_TYPE, EGL_WIDTH, +}; +use generated::p_defines::{PIPE_BIND_SAMPLER_VIEW, PIPE_TEXTURE_1D, PIPE_TEXTURE_2D}; use generated::p_format::PIPE_FORMAT_B8G8R8X8_UNORM; +use generated::virglrenderer::*; +pub use generated::virglrenderer::{ + virgl_renderer_resource_create_args, virgl_renderer_resource_info, +}; pub use pipe_format_fourcc::pipe_format_fourcc as format_fourcc; -pub use command_buffer::CommandBufferBuilder; /// Arguments used in `Renderer::create_resource`.. pub type ResourceCreateArgs = virgl_renderer_resource_create_args; @@ -163,8 +164,7 @@ struct VirglCookie { fence_state: Rc<RefCell<FenceState>>, } -extern "C" fn write_fence(cookie: *mut c_void, - fence: u32) { +extern "C" fn write_fence(cookie: *mut c_void, fence: u32) { assert!(!cookie.is_null()); let cookie = unsafe { &*(cookie as *mut VirglCookie) }; @@ -173,10 +173,11 @@ extern "C" fn write_fence(cookie: *mut c_void, fence_state.write(fence); } -unsafe extern "C" fn create_gl_context(cookie: *mut c_void, - scanout_idx: c_int, - param: *mut virgl_renderer_gl_ctx_param) - -> virgl_renderer_gl_context { +unsafe extern "C" fn create_gl_context( + cookie: *mut c_void, + scanout_idx: c_int, + param: *mut virgl_renderer_gl_ctx_param, +) -> virgl_renderer_gl_context { let _ = scanout_idx; let cookie = &*(cookie as *mut VirglCookie); @@ -186,16 +187,19 @@ unsafe extern "C" fn create_gl_context(cookie: *mut c_void, null_mut() }; let context_attribs = [EGL_CONTEXT_CLIENT_VERSION as i32, 3, EGL_NONE as i32]; - (cookie.egl_funcs.CreateContext)(cookie.display, - cookie.egl_config, - shared, - context_attribs.as_ptr()) + (cookie.egl_funcs.CreateContext)( + cookie.display, + cookie.egl_config, + shared, + context_attribs.as_ptr(), + ) } -unsafe extern "C" fn make_current(cookie: *mut c_void, - scanout_idx: c_int, - ctx: virgl_renderer_gl_context) - -> c_int { +unsafe extern "C" fn make_current( + cookie: *mut c_void, + scanout_idx: c_int, + ctx: virgl_renderer_gl_context, +) -> c_int { let _ = scanout_idx; let cookie = &*(cookie as *mut VirglCookie); @@ -207,22 +211,23 @@ unsafe extern "C" fn destroy_gl_context(cookie: *mut c_void, ctx: virgl_renderer (cookie.egl_funcs.DestroyContext)(cookie.display, ctx); } -const VIRGL_RENDERER_CALLBACKS: &virgl_renderer_callbacks = - &virgl_renderer_callbacks { - version: 1, - write_fence: Some(write_fence), - create_gl_context: Some(create_gl_context), - destroy_gl_context: Some(destroy_gl_context), - make_current: Some(make_current), - get_drm_fd: None, - }; - -unsafe extern "C" fn error_callback(error: c_uint, - command: *const c_char, - _: c_int, - _: *mut c_void, - _: *mut c_void, - message: *const c_char) { +const VIRGL_RENDERER_CALLBACKS: &virgl_renderer_callbacks = &virgl_renderer_callbacks { + version: 1, + write_fence: Some(write_fence), + create_gl_context: Some(create_gl_context), + destroy_gl_context: Some(destroy_gl_context), + make_current: Some(make_current), + get_drm_fd: None, +}; + +unsafe extern "C" fn error_callback( + error: c_uint, + command: *const c_char, + _: c_int, + _: *mut c_void, + _: *mut c_void, + message: *const c_char, +) { eprint!("EGL ERROR {}: {:?}", error, CStr::from_ptr(command)); if !message.is_null() { eprint!(": {:?}", CStr::from_ptr(message)); @@ -233,49 +238,52 @@ unsafe extern "C" fn error_callback(error: c_uint, #[allow(non_snake_case)] struct EGLFunctionsInner { BindAPI: unsafe extern "C" fn(api: EGLenum) -> EGLBoolean, - ChooseConfig: unsafe extern "C" fn(dpy: EGLDisplay, - attrib_list: *const EGLint, - configs: *mut EGLConfig, - config_size: EGLint, - num_config: *mut EGLint) - -> EGLBoolean, - CreateContext: unsafe extern "C" fn(dpy: EGLDisplay, - config: EGLConfig, - share_context: EGLContext, - attrib_list: *const EGLint) - -> EGLContext, - CreateImageKHR: unsafe extern "C" fn(dpy: EGLDisplay, - ctx: EGLContext, - target: EGLenum, - buffer: EGLClientBuffer, - attrib_list: *const EGLint) - -> EGLImageKHR, + ChooseConfig: unsafe extern "C" fn( + dpy: EGLDisplay, + attrib_list: *const EGLint, + configs: *mut EGLConfig, + config_size: EGLint, + num_config: *mut EGLint, + ) -> EGLBoolean, + CreateContext: unsafe extern "C" fn( + dpy: EGLDisplay, + config: EGLConfig, + share_context: EGLContext, + attrib_list: *const EGLint, + ) -> EGLContext, + CreateImageKHR: unsafe extern "C" fn( + dpy: EGLDisplay, + ctx: EGLContext, + target: EGLenum, + buffer: EGLClientBuffer, + attrib_list: *const EGLint, + ) -> EGLImageKHR, DebugMessageControlKHR: unsafe extern "C" fn(callback: EGLDEBUGPROCKHR, attrib_list: *const EGLAttrib) -> EGLint, DestroyContext: unsafe extern "C" fn(dpy: EGLDisplay, ctx: EGLContext) -> EGLBoolean, DestroyImageKHR: unsafe extern "C" fn(dpy: EGLDisplay, image: EGLImageKHR) -> EGLBoolean, - ExportDRMImageMESA: unsafe extern "C" fn(dpy: EGLDisplay, - image: EGLImageKHR, - fds: *mut ::std::os::raw::c_int, - strides: *mut EGLint, - offsets: *mut EGLint) - -> EGLBoolean, - ExportDMABUFImageQueryMESA: unsafe extern "C" fn(dpy: EGLDisplay, - image: EGLImageKHR, - fourcc: *mut ::std::os::raw::c_int, - num_planes: *mut ::std::os::raw::c_int, - modifiers: *mut EGLuint64KHR) - -> EGLBoolean, + ExportDRMImageMESA: unsafe extern "C" fn( + dpy: EGLDisplay, + image: EGLImageKHR, + fds: *mut ::std::os::raw::c_int, + strides: *mut EGLint, + offsets: *mut EGLint, + ) -> EGLBoolean, + ExportDMABUFImageQueryMESA: unsafe extern "C" fn( + dpy: EGLDisplay, + image: EGLImageKHR, + fourcc: *mut ::std::os::raw::c_int, + num_planes: *mut ::std::os::raw::c_int, + modifiers: *mut EGLuint64KHR, + ) -> EGLBoolean, GetCurrentContext: unsafe extern "C" fn() -> EGLContext, GetCurrentDisplay: unsafe extern "C" fn() -> EGLDisplay, GetDisplay: unsafe extern "C" fn(display_id: EGLNativeDisplayType) -> EGLDisplay, Initialize: unsafe extern "C" fn(dpy: EGLDisplay, major: *mut EGLint, minor: *mut EGLint) -> EGLBoolean, - MakeCurrent: unsafe extern "C" fn(dpy: EGLDisplay, - draw: EGLSurface, - read: EGLSurface, - ctx: EGLContext) - -> EGLBoolean, + MakeCurrent: + unsafe extern "C" fn(dpy: EGLDisplay, draw: EGLSurface, read: EGLSurface, ctx: EGLContext) + -> EGLBoolean, no_sync_send: PhantomData<*mut ()>, } @@ -284,32 +292,45 @@ struct EGLFunctions(Rc<EGLFunctionsInner>); impl EGLFunctions { fn new() -> Result<EGLFunctions> { - use generated::epoxy_egl::{epoxy_eglBindAPI, epoxy_eglChooseConfig, - epoxy_eglCreateContext, epoxy_eglCreateImageKHR, - epoxy_eglDebugMessageControlKHR, epoxy_eglDestroyContext, - epoxy_eglDestroyImageKHR, epoxy_eglExportDRMImageMESA, - epoxy_eglExportDMABUFImageQueryMESA, - epoxy_eglGetCurrentContext, epoxy_eglGetCurrentDisplay, - epoxy_eglGetDisplay, epoxy_eglInitialize, epoxy_eglMakeCurrent}; + use generated::epoxy_egl::{ + epoxy_eglBindAPI, epoxy_eglChooseConfig, epoxy_eglCreateContext, + epoxy_eglCreateImageKHR, epoxy_eglDebugMessageControlKHR, epoxy_eglDestroyContext, + epoxy_eglDestroyImageKHR, epoxy_eglExportDMABUFImageQueryMESA, + epoxy_eglExportDRMImageMESA, epoxy_eglGetCurrentContext, epoxy_eglGetCurrentDisplay, + epoxy_eglGetDisplay, epoxy_eglInitialize, epoxy_eglMakeCurrent, + }; // This is unsafe because it is reading mutable static variables exported by epoxy. These // variables are initialized during the binary's init and never modified again, so it should // be safe to read them now. unsafe { Ok(EGLFunctions(Rc::new(EGLFunctionsInner { BindAPI: epoxy_eglBindAPI.ok_or(Error::MissingEGLFunction("eglBindAPI"))?, - ChooseConfig: epoxy_eglChooseConfig.ok_or(Error::MissingEGLFunction("eglChooseConfig"))?, - CreateContext: epoxy_eglCreateContext.ok_or(Error::MissingEGLFunction("eglCreateContext"))?, - CreateImageKHR: epoxy_eglCreateImageKHR.ok_or(Error::MissingEGLFunction("eglCreateImageKHR"))?, - DebugMessageControlKHR: epoxy_eglDebugMessageControlKHR.ok_or(Error::MissingEGLFunction("eglDebugMessageControlKHR"))?, - DestroyContext: epoxy_eglDestroyContext.ok_or(Error::MissingEGLFunction("eglDestroyContext"))?, - DestroyImageKHR: epoxy_eglDestroyImageKHR.ok_or(Error::MissingEGLFunction("eglDestroyImageKHR"))?, - ExportDRMImageMESA: epoxy_eglExportDRMImageMESA.ok_or(Error::MissingEGLFunction("eglExportDRMImageMESA"))?, - ExportDMABUFImageQueryMESA: epoxy_eglExportDMABUFImageQueryMESA.ok_or(Error::MissingEGLFunction("eglExportDMABUFImageQueryMESA"))?, - GetCurrentContext: epoxy_eglGetCurrentContext.ok_or(Error::MissingEGLFunction("eglGetCurrentContext"))?, - GetCurrentDisplay: epoxy_eglGetCurrentDisplay.ok_or(Error::MissingEGLFunction("eglGetCurrentDisplay"))?, - GetDisplay: epoxy_eglGetDisplay.ok_or(Error::MissingEGLFunction("eglGetDisplay"))?, - Initialize: epoxy_eglInitialize.ok_or(Error::MissingEGLFunction("eglInitialize"))?, - MakeCurrent: epoxy_eglMakeCurrent.ok_or(Error::MissingEGLFunction("eglMakeCurrent"))?, + ChooseConfig: epoxy_eglChooseConfig + .ok_or(Error::MissingEGLFunction("eglChooseConfig"))?, + CreateContext: epoxy_eglCreateContext + .ok_or(Error::MissingEGLFunction("eglCreateContext"))?, + CreateImageKHR: epoxy_eglCreateImageKHR + .ok_or(Error::MissingEGLFunction("eglCreateImageKHR"))?, + DebugMessageControlKHR: epoxy_eglDebugMessageControlKHR + .ok_or(Error::MissingEGLFunction("eglDebugMessageControlKHR"))?, + DestroyContext: epoxy_eglDestroyContext + .ok_or(Error::MissingEGLFunction("eglDestroyContext"))?, + DestroyImageKHR: epoxy_eglDestroyImageKHR + .ok_or(Error::MissingEGLFunction("eglDestroyImageKHR"))?, + ExportDRMImageMESA: epoxy_eglExportDRMImageMESA + .ok_or(Error::MissingEGLFunction("eglExportDRMImageMESA"))?, + ExportDMABUFImageQueryMESA: epoxy_eglExportDMABUFImageQueryMESA + .ok_or(Error::MissingEGLFunction("eglExportDMABUFImageQueryMESA"))?, + GetCurrentContext: epoxy_eglGetCurrentContext + .ok_or(Error::MissingEGLFunction("eglGetCurrentContext"))?, + GetCurrentDisplay: epoxy_eglGetCurrentDisplay + .ok_or(Error::MissingEGLFunction("eglGetCurrentDisplay"))?, + GetDisplay: epoxy_eglGetDisplay + .ok_or(Error::MissingEGLFunction("eglGetDisplay"))?, + Initialize: epoxy_eglInitialize + .ok_or(Error::MissingEGLFunction("eglInitialize"))?, + MakeCurrent: epoxy_eglMakeCurrent + .ok_or(Error::MissingEGLFunction("eglMakeCurrent"))?, no_sync_send: PhantomData, }))) } @@ -371,11 +392,13 @@ impl Renderer { // Safe because only a valid, initialized display is used, along with validly sized // pointers to stack variables. let ret = unsafe { - (egl_funcs.ChooseConfig)(display, - config_attribs.as_ptr(), - &mut egl_config, - 1, - &mut num_configs /* unused but can't be null */) + (egl_funcs.ChooseConfig)( + display, + config_attribs.as_ptr(), + &mut egl_config, + 1, + &mut num_configs, /* unused but can't be null */ + ) }; if ret == 0 { return Err(Error::EGLChooseConfig); @@ -389,11 +412,11 @@ impl Renderer { let fence_state = Rc::new(RefCell::new(FenceState { latest_fence: 0 })); let cookie: *mut VirglCookie = Box::into_raw(Box::new(VirglCookie { - display, - egl_config, - egl_funcs: egl_funcs.clone(), - fence_state: Rc::clone(&fence_state), - })); + display, + egl_config, + egl_funcs: egl_funcs.clone(), + fence_state: Rc::clone(&fence_state), + })); // Safe because EGL was properly initialized before here.. let ret = unsafe { (egl_funcs.BindAPI)(EGL_OPENGL_ES_API) }; @@ -420,18 +443,20 @@ impl Renderer { // Safe because a valid cookie and set of callbacks is used and the result is checked for // error. let ret = unsafe { - virgl_renderer_init(cookie as *mut c_void, - 0, - transmute(VIRGL_RENDERER_CALLBACKS)) + virgl_renderer_init( + cookie as *mut c_void, + 0, + transmute(VIRGL_RENDERER_CALLBACKS), + ) }; ret_to_res(ret)?; Ok(Renderer { - no_sync_send: PhantomData, - egl_funcs, - display, - fence_state - }) + no_sync_send: PhantomData, + egl_funcs, + display, + fence_state, + }) } /// Gets the version and size for the given capability set ID. @@ -464,112 +489,122 @@ impl Renderer { // Safe because virglrenderer is initialized by now and the context name is statically // allocated. The return value is checked before returning a new context. let ret = unsafe { - virgl_renderer_context_create(id, - CONTEXT_NAME.len() as u32, - CONTEXT_NAME.as_ptr() as *const c_char) + virgl_renderer_context_create( + id, + CONTEXT_NAME.len() as u32, + CONTEXT_NAME.as_ptr() as *const c_char, + ) }; ret_to_res(ret)?; Ok(Context { - id, - no_sync_send: PhantomData, - }) + id, + no_sync_send: PhantomData, + }) } /// Creates a resource with the given arguments. - pub fn create_resource(&self, - mut args: virgl_renderer_resource_create_args) - -> Result<Resource> { + pub fn create_resource( + &self, + mut args: virgl_renderer_resource_create_args, + ) -> Result<Resource> { // Safe because virglrenderer is initialized by now, and the return value is checked before // returning a new resource. The backing buffers are not supplied with this call. let ret = unsafe { virgl_renderer_resource_create(&mut args, null_mut(), 0) }; ret_to_res(ret)?; Ok(Resource { - id: args.handle, - backing_iovecs: Vec::new(), - backing_mem: None, - egl_funcs: self.egl_funcs.clone(), - no_sync_send: PhantomData, - }) + id: args.handle, + backing_iovecs: Vec::new(), + backing_mem: None, + egl_funcs: self.egl_funcs.clone(), + no_sync_send: PhantomData, + }) } /// Imports a resource from an EGLImage. - pub fn import_resource(&self, - mut args: virgl_renderer_resource_create_args, - image: &Image) - -> Result<Resource> { + pub fn import_resource( + &self, + mut args: virgl_renderer_resource_create_args, + image: &Image, + ) -> Result<Resource> { let ret = unsafe { virgl_renderer_resource_import_eglimage(&mut args, image.image) }; ret_to_res(ret)?; Ok(Resource { - id: args.handle, - backing_iovecs: Vec::new(), - backing_mem: None, - egl_funcs: self.egl_funcs.clone(), - no_sync_send: PhantomData, - }) + id: args.handle, + backing_iovecs: Vec::new(), + backing_mem: None, + egl_funcs: self.egl_funcs.clone(), + no_sync_send: PhantomData, + }) } /// Helper that creates a simple 1 dimensional resource with basic metadata. pub fn create_tex_1d(&self, id: u32, width: u32) -> Result<Resource> { self.create_resource(virgl_renderer_resource_create_args { - handle: id, - target: PIPE_TEXTURE_1D, - format: PIPE_FORMAT_B8G8R8X8_UNORM, - width, - height: 1, - depth: 1, - array_size: 1, - last_level: 0, - nr_samples: 0, - bind: PIPE_BIND_SAMPLER_VIEW, - flags: 0, - }) + handle: id, + target: PIPE_TEXTURE_1D, + format: PIPE_FORMAT_B8G8R8X8_UNORM, + width, + height: 1, + depth: 1, + array_size: 1, + last_level: 0, + nr_samples: 0, + bind: PIPE_BIND_SAMPLER_VIEW, + flags: 0, + }) } /// Helper that creates a simple 2 dimensional resource with basic metadata. pub fn create_tex_2d(&self, id: u32, width: u32, height: u32) -> Result<Resource> { self.create_resource(virgl_renderer_resource_create_args { - handle: id, - target: PIPE_TEXTURE_2D, - format: PIPE_FORMAT_B8G8R8X8_UNORM, - width, - height, - depth: 1, - array_size: 1, - last_level: 0, - nr_samples: 0, - bind: PIPE_BIND_SAMPLER_VIEW, - flags: 0, - }) + handle: id, + target: PIPE_TEXTURE_2D, + format: PIPE_FORMAT_B8G8R8X8_UNORM, + width, + height, + depth: 1, + array_size: 1, + last_level: 0, + nr_samples: 0, + bind: PIPE_BIND_SAMPLER_VIEW, + flags: 0, + }) } /// Creates an EGLImage from a DMA buffer. - pub fn image_from_dmabuf(&self, - fourcc: u32, - width: u32, - height: u32, - fd: RawFd, - offset: u32, - stride: u32) -> Result<Image> { - let mut attrs = [EGL_WIDTH as EGLint, - width as EGLint, - EGL_HEIGHT as EGLint, - height as EGLint, - EGL_LINUX_DRM_FOURCC_EXT as EGLint, - fourcc as EGLint, - EGL_DMA_BUF_PLANE0_FD_EXT as EGLint, - fd as EGLint, - EGL_DMA_BUF_PLANE0_OFFSET_EXT as EGLint, - offset as EGLint, - EGL_DMA_BUF_PLANE0_PITCH_EXT as EGLint, - stride as EGLint, - EGL_NONE as EGLint]; + pub fn image_from_dmabuf( + &self, + fourcc: u32, + width: u32, + height: u32, + fd: RawFd, + offset: u32, + stride: u32, + ) -> Result<Image> { + let mut attrs = [ + EGL_WIDTH as EGLint, + width as EGLint, + EGL_HEIGHT as EGLint, + height as EGLint, + EGL_LINUX_DRM_FOURCC_EXT as EGLint, + fourcc as EGLint, + EGL_DMA_BUF_PLANE0_FD_EXT as EGLint, + fd as EGLint, + EGL_DMA_BUF_PLANE0_OFFSET_EXT as EGLint, + offset as EGLint, + EGL_DMA_BUF_PLANE0_PITCH_EXT as EGLint, + stride as EGLint, + EGL_NONE as EGLint, + ]; let image = unsafe { - (self.egl_funcs.CreateImageKHR)(self.display, - 0 as EGLContext, - EGL_LINUX_DMA_BUF_EXT, - null_mut() as EGLClientBuffer, - attrs.as_mut_ptr()) + (self.egl_funcs.CreateImageKHR)( + self.display, + 0 as EGLContext, + EGL_LINUX_DMA_BUF_EXT, + null_mut() as EGLClientBuffer, + attrs.as_mut_ptr(), + ) }; if image.is_null() { @@ -579,7 +614,7 @@ impl Renderer { Ok(Image { egl_funcs: self.egl_funcs.clone(), egl_dpy: self.display, - image + image, }) } @@ -589,9 +624,7 @@ impl Renderer { } pub fn create_fence(&mut self, fence_id: u32, ctx_id: u32) -> Result<()> { - let ret = unsafe { - virgl_renderer_create_fence(fence_id as i32, ctx_id) - }; + let ret = unsafe { virgl_renderer_create_fence(fence_id as i32, ctx_id) }; ret_to_res(ret) } @@ -734,11 +767,13 @@ impl Resource { // Safe because a valid display, context, and texture ID are given. The attribute list is // not needed. The result is checked to ensure the returned image is valid. let image = unsafe { - (self.egl_funcs.CreateImageKHR)(egl_dpy, - egl_ctx, - EGL_GL_TEXTURE_2D_KHR, - res_info.tex_id as EGLClientBuffer, - null()) + (self.egl_funcs.CreateImageKHR)( + egl_dpy, + egl_ctx, + EGL_GL_TEXTURE_2D_KHR, + res_info.tex_id as EGLClientBuffer, + null(), + ) }; if image.is_null() { @@ -748,16 +783,20 @@ impl Resource { // Safe because the display and image are valid and each function call is checked for // success. The returned image parameters are stored in stack variables of the correct type. let export_success = unsafe { - (self.egl_funcs.ExportDMABUFImageQueryMESA)(egl_dpy, - image, - &mut fourcc, - null_mut(), - &mut modifiers) != 0 && - (self.egl_funcs.ExportDRMImageMESA)(egl_dpy, - image, - &mut fd, - &mut stride, - &mut offset) != 0 + (self.egl_funcs.ExportDMABUFImageQueryMESA)( + egl_dpy, + image, + &mut fourcc, + null_mut(), + &mut modifiers, + ) != 0 + && (self.egl_funcs.ExportDRMImageMESA)( + egl_dpy, + image, + &mut fd, + &mut stride, + &mut offset, + ) != 0 }; // Safe because we checked that the image was valid and nobody else owns it. The image does @@ -774,24 +813,26 @@ impl Resource { // owned by us. let dmabuf = unsafe { File::from_raw_fd(fd) }; Ok(ExportedResource { - dmabuf, - width: res_info.width, - height: res_info.height, - fourcc: fourcc as u32, - modifiers: modifiers, - stride: stride as u32, - offset: offset as u32, - }) + dmabuf, + width: res_info.width, + height: res_info.height, + fourcc: fourcc as u32, + modifiers, + stride: stride as u32, + offset: offset as u32, + }) } /// Attaches a scatter-gather mapping of guest memory to this resource which used for transfers. - pub fn attach_backing(&mut self, - iovecs: &[(GuestAddress, usize)], - mem: &GuestMemory) - -> Result<()> { + pub fn attach_backing( + &mut self, + iovecs: &[(GuestAddress, usize)], + mem: &GuestMemory, + ) -> Result<()> { if iovecs - .iter() - .any(|&(addr, len)| mem.get_slice(addr.offset(), len as u64).is_err()) { + .iter() + .any(|&(addr, len)| mem.get_slice(addr.offset(), len as u64).is_err()) + { return Err(Error::InvalidIovec); } self.detach_backing(); @@ -799,17 +840,18 @@ impl Resource { for &(addr, len) in iovecs.iter() { // Unwrap will not panic because we already checked the slices. let slice = mem.get_slice(addr.offset(), len as u64).unwrap(); - self.backing_iovecs - .push(VirglVec { - base: slice.as_ptr() as *mut c_void, - len, - }); + self.backing_iovecs.push(VirglVec { + base: slice.as_ptr() as *mut c_void, + len, + }); } // Safe because the backing is into guest memory that we store a reference count for. let ret = unsafe { - virgl_renderer_resource_attach_iov(self.id as i32, - self.backing_iovecs.as_mut_ptr() as *mut iovec, - self.backing_iovecs.len() as i32) + virgl_renderer_resource_attach_iov( + self.id as i32, + self.backing_iovecs.as_mut_ptr() as *mut iovec, + self.backing_iovecs.len() as i32, + ) }; let res = ret_to_res(ret); if res.is_err() { @@ -833,63 +875,70 @@ impl Resource { } /// Performs a transfer to the given resource from its backing in guest memory. - pub fn transfer_write(&self, - ctx: Option<&Context>, - level: u32, - stride: u32, - layer_stride: u32, - mut transfer_box: Box3, - offset: u64) - -> Result<()> { + pub fn transfer_write( + &self, + ctx: Option<&Context>, + level: u32, + stride: u32, + layer_stride: u32, + mut transfer_box: Box3, + offset: u64, + ) -> Result<()> { // Safe because only stack variables of the appropriate type are used. let ret = unsafe { - virgl_renderer_transfer_write_iov(self.id, - ctx.map(Context::id).unwrap_or(0), - level as i32, - stride, - layer_stride, - &mut transfer_box as *mut Box3 as *mut virgl_box, - offset, - null_mut(), - 0) + virgl_renderer_transfer_write_iov( + self.id, + ctx.map(Context::id).unwrap_or(0), + level as i32, + stride, + layer_stride, + &mut transfer_box as *mut Box3 as *mut virgl_box, + offset, + null_mut(), + 0, + ) }; ret_to_res(ret) } /// Performs a transfer from the given resource to its backing in guest memory. - pub fn transfer_read(&self, - ctx: Option<&Context>, - level: u32, - stride: u32, - layer_stride: u32, - mut transfer_box: Box3, - offset: u64) - -> Result<()> { + pub fn transfer_read( + &self, + ctx: Option<&Context>, + level: u32, + stride: u32, + layer_stride: u32, + mut transfer_box: Box3, + offset: u64, + ) -> Result<()> { // Safe because only stack variables of the appropriate type are used. let ret = unsafe { - virgl_renderer_transfer_read_iov(self.id, - ctx.map(Context::id).unwrap_or(0), - level, - stride, - layer_stride, - &mut transfer_box as *mut Box3 as *mut virgl_box, - offset, - null_mut(), - 0) + virgl_renderer_transfer_read_iov( + self.id, + ctx.map(Context::id).unwrap_or(0), + level, + stride, + layer_stride, + &mut transfer_box as *mut Box3 as *mut virgl_box, + offset, + null_mut(), + 0, + ) }; ret_to_res(ret) } /// Performs a transfer from the given resource to the provided `buf` - pub fn transfer_read_buf(&self, - ctx: Option<&Context>, - level: u32, - stride: u32, - layer_stride: u32, - mut transfer_box: Box3, - offset: u64, - buf: &mut [u8]) - -> Result<()> { + pub fn transfer_read_buf( + &self, + ctx: Option<&Context>, + level: u32, + stride: u32, + layer_stride: u32, + mut transfer_box: Box3, + offset: u64, + buf: &mut [u8], + ) -> Result<()> { let mut iov = VirglVec { base: buf.as_mut_ptr() as *mut c_void, len: buf.len(), @@ -897,29 +946,32 @@ impl Resource { // Safe because only stack variables of the appropriate type are used, along with a properly // sized buffer. let ret = unsafe { - virgl_renderer_transfer_read_iov(self.id, - ctx.map(Context::id).unwrap_or(0), - level, - stride, - layer_stride, - &mut transfer_box as *mut Box3 as *mut virgl_box, - offset, - &mut iov as *mut VirglVec as *mut iovec, - 1) + virgl_renderer_transfer_read_iov( + self.id, + ctx.map(Context::id).unwrap_or(0), + level, + stride, + layer_stride, + &mut transfer_box as *mut Box3 as *mut virgl_box, + offset, + &mut iov as *mut VirglVec as *mut iovec, + 1, + ) }; ret_to_res(ret) } /// Reads from this resource to a volatile slice of memory. - pub fn read_to_volatile(&self, - ctx: Option<&Context>, - level: u32, - stride: u32, - layer_stride: u32, - mut transfer_box: Box3, - offset: u64, - buf: VolatileSlice) - -> Result<()> { + pub fn read_to_volatile( + &self, + ctx: Option<&Context>, + level: u32, + stride: u32, + layer_stride: u32, + mut transfer_box: Box3, + offset: u64, + buf: VolatileSlice, + ) -> Result<()> { let mut iov = VirglVec { base: buf.as_ptr() as *mut c_void, len: buf.size() as usize, @@ -927,15 +979,17 @@ impl Resource { // Safe because only stack variables of the appropriate type are used, along with a properly // sized buffer. let ret = unsafe { - virgl_renderer_transfer_read_iov(self.id, - ctx.map(Context::id).unwrap_or(0), - level, - stride, - layer_stride, - &mut transfer_box as *mut Box3 as *mut virgl_box, - offset, - &mut iov as *mut VirglVec as *mut iovec, - 1) + virgl_renderer_transfer_read_iov( + self.id, + ctx.map(Context::id).unwrap_or(0), + level, + stride, + layer_stride, + &mut transfer_box as *mut Box3 as *mut virgl_box, + offset, + &mut iov as *mut VirglVec as *mut iovec, + 1, + ) }; ret_to_res(ret) } @@ -961,9 +1015,7 @@ mod tests { // Make sure a simple buffer clear works by using a command stream. fn simple_clear() { let render = Renderer::init().expect("failed to initialize virglrenderer"); - let mut ctx = render - .create_context(1) - .expect("failed to create context"); + let mut ctx = render.create_context(1).expect("failed to create context"); // Create a 50x50 texture with id=2. let resource = render @@ -983,14 +1035,15 @@ mod tests { // Read the result of the rendering into a buffer. let mut pix_buf = [0; 50 * 50 * 4]; resource - .transfer_read_buf(Some(&ctx), - 0, - 50, - 0, - Box3::new_2d(0, 5, 0, 1), - 0, - &mut pix_buf[..]) - .expect("failed to read back resource data"); + .transfer_read_buf( + Some(&ctx), + 0, + 50, + 0, + Box3::new_2d(0, 5, 0, 1), + 0, + &mut pix_buf[..], + ).expect("failed to read back resource data"); // Check that the pixels are the color we cleared to. The red and blue channels are switched // because the surface was created with the BGR format, but the colors are RGB order in the diff --git a/gpu_renderer/src/pipe_format_fourcc.rs b/gpu_renderer/src/pipe_format_fourcc.rs index 7693973..828f372 100644 --- a/gpu_renderer/src/pipe_format_fourcc.rs +++ b/gpu_renderer/src/pipe_format_fourcc.rs @@ -5,9 +5,9 @@ use generated::p_format; macro_rules! fourcc { - ($a:expr, $b:expr, $c:expr, $d:expr) => ( + ($a:expr, $b:expr, $c:expr, $d:expr) => { Some($a as u32 | ($b as u32) << 8 | ($c as u32) << 16 | ($d as u32) << 24) - ) + }; } /// Gets the fourcc that corresponds to the given pipe format, or `None` if the format is |