summary refs log tree commit diff
path: root/gpu_renderer
diff options
context:
space:
mode:
authorGurchetan Singh <gurchetansingh@chromium.org>2019-07-25 15:28:44 -0700
committerCommit Bot <commit-bot@chromium.org>2019-08-15 18:20:10 +0000
commit35a9d838dbb92b89e8baef380a550b8d8a4b15ad (patch)
tree1b477f6e2e9ebf8832dc67278b2b0dce2d4e07c8 /gpu_renderer
parenteff26bbeb347c9cfa0d310fddbd804bd4af9824a (diff)
downloadcrosvm-35a9d838dbb92b89e8baef380a550b8d8a4b15ad.tar
crosvm-35a9d838dbb92b89e8baef380a550b8d8a4b15ad.tar.gz
crosvm-35a9d838dbb92b89e8baef380a550b8d8a4b15ad.tar.bz2
crosvm-35a9d838dbb92b89e8baef380a550b8d8a4b15ad.tar.lz
crosvm-35a9d838dbb92b89e8baef380a550b8d8a4b15ad.tar.xz
crosvm-35a9d838dbb92b89e8baef380a550b8d8a4b15ad.tar.zst
crosvm-35a9d838dbb92b89e8baef380a550b8d8a4b15ad.zip
gpu_renderer: update bindings
BUG=chromium:906811
TEST=compile

Change-Id: Ie4ee8df9e944a4b6bf148dfa04ab7946992a0351
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1725449
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Auto-Submit: Gurchetan Singh <gurchetansingh@chromium.org>
Diffstat (limited to 'gpu_renderer')
-rw-r--r--gpu_renderer/src/generated/p_defines.rs344
-rw-r--r--gpu_renderer/src/generated/p_format.rs16
-rw-r--r--gpu_renderer/src/generated/virgl_protocol.rs6
-rw-r--r--gpu_renderer/src/generated/virglrenderer.rs38
4 files changed, 217 insertions, 187 deletions
diff --git a/gpu_renderer/src/generated/p_defines.rs b/gpu_renderer/src/generated/p_defines.rs
index 03b9fdb..4f412cb 100644
--- a/gpu_renderer/src/generated/p_defines.rs
+++ b/gpu_renderer/src/generated/p_defines.rs
@@ -199,16 +199,16 @@ pub const PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600: u32 = 2;
 pub type __uint64_t = ::std::os::raw::c_ulong;
 pub type boolean = ::std::os::raw::c_uchar;
 pub const PIPE_OK: pipe_error = 0;
-/// < Generic error
+#[doc = "< 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.
+#[doc = " Gallium error codes."]
+#[doc = ""]
+#[doc = " - A zero value always means success."]
+#[doc = " - A negative value always means failure."]
+#[doc = " - The meaning of a positive value is function dependent."]
 pub type pipe_error = i32;
 pub const PIPE_LOGICOP_CLEAR: pipe_logicop = 0;
 pub const PIPE_LOGICOP_NOR: pipe_logicop = 1;
@@ -237,87 +237,87 @@ 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
+#[doc = " Texture types."]
+#[doc = " 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.
+#[doc = " Resource contents read back (or accessed directly) at transfer"]
+#[doc = " 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).
+#[doc = " Resource contents will be written back at transfer_unmap"]
+#[doc = " time (or modified as a result of being accessed directly)."]
 pub const PIPE_TRANSFER_WRITE: pipe_transfer_usage = 2;
-/// Read/modify/write
+#[doc = " 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.
+#[doc = " The transfer should map the texture storage directly. The driver may"]
+#[doc = " return NULL if that isn't possible, and the state tracker needs to cope"]
+#[doc = " with that and use an alternative path without this flag."]
+#[doc = ""]
+#[doc = " E.g. the state tracker could have a simpler path which maps textures and"]
+#[doc = " does read/modify/write cycles on them directly, and a more complicated"]
+#[doc = " 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.
+#[doc = " Discards the memory within the mapped region."]
+#[doc = ""]
+#[doc = " It should not be used with PIPE_TRANSFER_READ."]
+#[doc = ""]
+#[doc = " See also:"]
+#[doc = " - 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.
+#[doc = " Fail if the resource cannot be mapped immediately."]
+#[doc = ""]
+#[doc = " See also:"]
+#[doc = " - Direct3D's D3DLOCK_DONOTWAIT flag."]
+#[doc = " - Mesa3D's MESA_MAP_NOWAIT_BIT flag."]
+#[doc = " - 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.
+#[doc = " Do not attempt to synchronize pending operations on the resource when mapping."]
+#[doc = ""]
+#[doc = " It should not be used with PIPE_TRANSFER_READ."]
+#[doc = ""]
+#[doc = " See also:"]
+#[doc = " - OpenGL's ARB_map_buffer_range extension, MAP_UNSYNCHRONIZED_BIT flag."]
+#[doc = " - Direct3D's D3DLOCK_NOOVERWRITE flag."]
+#[doc = " - 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.
+#[doc = " Written ranges will be notified later with"]
+#[doc = " pipe_context::transfer_flush_region."]
+#[doc = ""]
+#[doc = " It should not be used with PIPE_TRANSFER_READ."]
+#[doc = ""]
+#[doc = " See also:"]
+#[doc = " - pipe_context::transfer_flush_region"]
+#[doc = " - 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.
-///
-/// This is equivalent to:
-/// - OpenGL's ARB_map_buffer_range extension, MAP_INVALIDATE_BUFFER_BIT
-/// - BufferData(NULL) on a GL buffer
-/// - 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.
+#[doc = " Discards all memory backing the resource."]
+#[doc = ""]
+#[doc = " It should not be used with PIPE_TRANSFER_READ."]
+#[doc = ""]
+#[doc = " This is equivalent to:"]
+#[doc = " - OpenGL's ARB_map_buffer_range extension, MAP_INVALIDATE_BUFFER_BIT"]
+#[doc = " - BufferData(NULL) on a GL buffer"]
+#[doc = " - Direct3D's D3DLOCK_DISCARD flag."]
+#[doc = " - WDDM's D3DDDICB_LOCKFLAGS.Discard flag."]
+#[doc = " - D3D10 DDI's D3D10_DDI_MAP_WRITE_DISCARD flag"]
+#[doc = " - 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.
+#[doc = " Allows the resource to be used for rendering while mapped."]
+#[doc = ""]
+#[doc = " PIPE_RESOURCE_FLAG_MAP_PERSISTENT must be set when creating"]
+#[doc = " the resource."]
+#[doc = ""]
+#[doc = " If COHERENT is not set, memory_barrier(PIPE_BARRIER_MAPPED_BUFFER)"]
+#[doc = " 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.
+#[doc = " If PERSISTENT is set, this ensures any writes done by the device are"]
+#[doc = " immediately visible to the CPU and vice versa."]
+#[doc = ""]
+#[doc = " PIPE_RESOURCE_FLAG_MAP_COHERENT must be set when creating"]
+#[doc = " the resource."]
 pub const PIPE_TRANSFER_COHERENT: pipe_transfer_usage = 16384;
-/// Transfer object usage flags
+#[doc = " 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.
+#[doc = " 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;
@@ -337,162 +337,162 @@ 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
+#[doc = " blend enables and write masks per rendertarget"]
 pub const PIPE_CAP_INDEP_BLEND_ENABLE: pipe_cap = 33;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_INDEP_BLEND_FUNC: pipe_cap = 34;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: pipe_cap = 36;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT: pipe_cap = 37;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT: pipe_cap = 38;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER: pipe_cap = 39;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER: pipe_cap = 40;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_DEPTH_CLIP_DISABLE: pipe_cap = 41;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_SHADER_STENCIL_EXPORT: pipe_cap = 42;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TGSI_INSTANCEID: pipe_cap = 43;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR: pipe_cap = 44;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_FRAGMENT_COLOR_CLAMPED: pipe_cap = 45;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MIXED_COLORBUFFER_FORMATS: pipe_cap = 46;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_SEAMLESS_CUBE_MAP: pipe_cap = 47;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE: pipe_cap = 48;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MIN_TEXEL_OFFSET: pipe_cap = 50;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_TEXEL_OFFSET: pipe_cap = 51;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_CONDITIONAL_RENDER: pipe_cap = 52;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TEXTURE_BARRIER: pipe_cap = 53;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS: pipe_cap = 55;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS: pipe_cap = 56;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME: pipe_cap = 57;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS: pipe_cap = 59;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_VERTEX_COLOR_UNCLAMPED: pipe_cap = 60;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_VERTEX_COLOR_CLAMPED: pipe_cap = 61;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_GLSL_FEATURE_LEVEL: pipe_cap = 62;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: pipe_cap = 63;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_USER_VERTEX_BUFFERS: pipe_cap = 64;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY: pipe_cap = 65;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY: pipe_cap = 66;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY: pipe_cap = 67;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_COMPUTE: pipe_cap = 68;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_USER_INDEX_BUFFERS: pipe_cap = 69;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_USER_CONSTANT_BUFFERS: pipe_cap = 70;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT: pipe_cap = 71;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_START_INSTANCE: pipe_cap = 72;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_QUERY_TIMESTAMP: pipe_cap = 73;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TEXTURE_MULTISAMPLE: pipe_cap = 74;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT: pipe_cap = 75;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_CUBE_MAP_ARRAY: pipe_cap = 76;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TEXTURE_BUFFER_OBJECTS: pipe_cap = 77;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT: pipe_cap = 78;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TGSI_TEXCOORD: pipe_cap = 79;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER: pipe_cap = 80;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_QUERY_PIPELINE_STATISTICS: pipe_cap = 81;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK: pipe_cap = 82;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE: pipe_cap = 83;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_VIEWPORTS: pipe_cap = 84;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_ENDIANNESS: pipe_cap = 85;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MIXED_FRAMEBUFFER_SIZES: pipe_cap = 86;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TGSI_VS_LAYER_VIEWPORT: pipe_cap = 87;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_GEOMETRY_OUTPUT_VERTICES: pipe_cap = 88;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS: pipe_cap = 89;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS: pipe_cap = 90;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TEXTURE_GATHER_SM5: pipe_cap = 91;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT: pipe_cap = 92;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_FAKE_SW_MSAA: pipe_cap = 93;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TEXTURE_QUERY_LOD: pipe_cap = 94;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MIN_TEXTURE_GATHER_OFFSET: pipe_cap = 95;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_TEXTURE_GATHER_OFFSET: pipe_cap = 96;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_SAMPLE_SHADING: pipe_cap = 97;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TEXTURE_GATHER_OFFSETS: pipe_cap = 98;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION: pipe_cap = 99;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_VERTEX_STREAMS: pipe_cap = 100;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_DRAW_INDIRECT: pipe_cap = 101;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_TGSI_FS_FINE_DERIVATIVE: pipe_cap = 102;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_VENDOR_ID: pipe_cap = 103;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_DEVICE_ID: pipe_cap = 104;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_ACCELERATED: pipe_cap = 105;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_VIDEO_MEMORY: pipe_cap = 106;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_UMA: pipe_cap = 107;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_CONDITIONAL_RENDER_INVERTED: pipe_cap = 108;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_MAX_VERTEX_ATTRIB_STRIDE: pipe_cap = 109;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_SAMPLER_VIEW_TARGET: pipe_cap = 110;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_CLIP_HALFZ: pipe_cap = 111;
-/// different blend funcs per rendertarget
+#[doc = " different blend funcs per rendertarget"]
 pub const PIPE_CAP_VERTEXID_NOBASE: pipe_cap = 112;
-/// different blend funcs per rendertarget
+#[doc = " 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()
+#[doc = " Implementation capabilities/limits which are queried through"]
+#[doc = " 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;
@@ -508,8 +508,8 @@ 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()
+#[doc = " Implementation limits which are queried through"]
+#[doc = " 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;
@@ -538,7 +538,7 @@ 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.
+#[doc = " 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;
@@ -553,51 +553,51 @@ 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.
+#[doc = " Compute-specific implementation capability.  They can be queried"]
+#[doc = " using pipe_screen::get_compute_param."]
 pub type pipe_compute_cap = u32;
-/// Query result for PIPE_QUERY_SO_STATISTICS.
+#[doc = " 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.
+#[doc = " 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.
+#[doc = " 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.
+    #[doc = "< Num vertices read by the vertex fetcher."]
     pub ia_vertices: u64,
-    /// < Num primitives read by the vertex fetcher.
+    #[doc = "< Num primitives read by the vertex fetcher."]
     pub ia_primitives: u64,
-    /// < Num vertex shader invocations.
+    #[doc = "< Num vertex shader invocations."]
     pub vs_invocations: u64,
-    /// < Num geometry shader invocations.
+    #[doc = "< Num geometry shader invocations."]
     pub gs_invocations: u64,
-    /// < Num primitives output by a geometry shader.
+    #[doc = "< Num primitives output by a geometry shader."]
     pub gs_primitives: u64,
-    /// < Num primitives sent to the rasterizer.
+    #[doc = "< Num primitives sent to the rasterizer."]
     pub c_invocations: u64,
-    /// < Num primitives that were rendered.
+    #[doc = "< Num primitives that were rendered."]
     pub c_primitives: u64,
-    /// < Num pixel shader invocations.
+    #[doc = "< Num pixel shader invocations."]
     pub ps_invocations: u64,
-    /// < Num hull shader invocations.
+    #[doc = "< Num hull shader invocations."]
     pub hs_invocations: u64,
-    /// < Num domain shader invocations.
+    #[doc = "< Num domain shader invocations."]
     pub ds_invocations: u64,
-    /// < Num compute shader invocations.
+    #[doc = "< Num compute shader invocations."]
     pub cs_invocations: u64,
 }
-/// Query result (returned by pipe_context::get_query_result).
+#[doc = " Query result (returned by pipe_context::get_query_result)."]
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub union pipe_query_result {
diff --git a/gpu_renderer/src/generated/p_format.rs b/gpu_renderer/src/generated/p_format.rs
index b72ccaf..4c05807 100644
--- a/gpu_renderer/src/generated/p_format.rs
+++ b/gpu_renderer/src/generated/p_format.rs
@@ -9,15 +9,15 @@ 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
+#[doc = "< ubyte luminance"]
 pub const PIPE_FORMAT_L8_UNORM: pipe_format = 9;
-/// < ubyte alpha
+#[doc = "< ubyte alpha"]
 pub const PIPE_FORMAT_A8_UNORM: pipe_format = 10;
-/// < ubyte intensity
+#[doc = "< ubyte intensity"]
 pub const PIPE_FORMAT_I8_UNORM: pipe_format = 11;
-/// < ubyte alpha, luminance
+#[doc = "< ubyte alpha, luminance"]
 pub const PIPE_FORMAT_L8A8_UNORM: pipe_format = 12;
-/// < ushort luminance
+#[doc = "< 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;
@@ -28,7 +28,7 @@ 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
+#[doc = "< 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;
@@ -165,7 +165,7 @@ 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
+#[doc = "< 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;
@@ -315,5 +315,5 @@ pub const PIPE_FORMAT_X1B5G5R5_UNORM: pipe_format = 310;
 pub const PIPE_FORMAT_A4B4G4R4_UNORM: pipe_format = 311;
 pub const PIPE_FORMAT_R8_SRGB: pipe_format = 312;
 pub const PIPE_FORMAT_COUNT: pipe_format = 313;
-/// Formats for textures, surfaces and vertex data
+#[doc = " 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 d3c3de2..5959349 100644
--- a/gpu_renderer/src/generated/virgl_protocol.rs
+++ b/gpu_renderer/src/generated/virgl_protocol.rs
@@ -239,6 +239,9 @@ pub const VIRGL_COPY_TRANSFER3D_SIZE: u32 = 14;
 pub const VIRGL_COPY_TRANSFER3D_SRC_RES_HANDLE: u32 = 12;
 pub const VIRGL_COPY_TRANSFER3D_SRC_RES_OFFSET: u32 = 13;
 pub const VIRGL_COPY_TRANSFER3D_SYNCHRONIZED: u32 = 14;
+pub const VIRGL_SET_TWEAKS_SIZE: u32 = 2;
+pub const VIRGL_SET_TWEAKS_ID: u32 = 1;
+pub const VIRGL_SET_TWEAKS_VALUE: u32 = 2;
 pub type __uint32_t = ::std::os::raw::c_uint;
 pub type __uint64_t = ::std::os::raw::c_ulong;
 #[repr(C)]
@@ -307,5 +310,6 @@ pub const VIRGL_CCMD_GET_QUERY_RESULT_QBO: virgl_context_cmd = 42;
 pub const VIRGL_CCMD_TRANSFER3D: virgl_context_cmd = 43;
 pub const VIRGL_CCMD_END_TRANSFERS: virgl_context_cmd = 44;
 pub const VIRGL_CCMD_COPY_TRANSFER3D: virgl_context_cmd = 45;
-pub const VIRGL_MAX_COMMANDS: virgl_context_cmd = 46;
+pub const VIRGL_CCMD_SET_TWEAKS: virgl_context_cmd = 46;
+pub const VIRGL_MAX_COMMANDS: virgl_context_cmd = 47;
 pub type virgl_context_cmd = u32;
diff --git a/gpu_renderer/src/generated/virglrenderer.rs b/gpu_renderer/src/generated/virglrenderer.rs
index 88d8455..089d1b4 100644
--- a/gpu_renderer/src/generated/virglrenderer.rs
+++ b/gpu_renderer/src/generated/virglrenderer.rs
@@ -20,6 +20,7 @@ pub const VIRGL_RES_BIND_CURSOR: u32 = 65536;
 pub const VIRGL_RES_BIND_CUSTOM: u32 = 131072;
 pub const VIRGL_RES_BIND_SCANOUT: u32 = 262144;
 pub const VIRGL_RES_BIND_SHARED: u32 = 1048576;
+pub type __int32_t = ::std::os::raw::c_int;
 pub type __uint32_t = ::std::os::raw::c_uint;
 pub type __uint64_t = ::std::os::raw::c_ulong;
 pub type va_list = __builtin_va_list;
@@ -43,7 +44,7 @@ pub struct virgl_renderer_gl_ctx_param {
     pub minor_ver: ::std::os::raw::c_int,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct virgl_renderer_callbacks {
     pub version: ::std::os::raw::c_int,
     pub write_fence: ::std::option::Option<
@@ -70,11 +71,6 @@ pub struct virgl_renderer_callbacks {
         unsafe extern "C" fn(cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
     >,
 }
-impl Default for virgl_renderer_callbacks {
-    fn default() -> Self {
-        unsafe { ::std::mem::zeroed() }
-    }
-}
 extern "C" {
     pub fn virgl_renderer_init(
         cookie: *mut ::std::os::raw::c_void,
@@ -118,6 +114,9 @@ extern "C" {
         offset: *mut ::std::os::raw::c_int,
     ) -> ::std::os::raw::c_int;
 }
+pub const VIRGL_RENDERER_STRUCTURE_TYPE_NONE: virgl_renderer_structure_type_v0 = 0;
+pub const VIRGL_RENDERER_STRUCTURE_TYPE_EXPORT_QUERY: virgl_renderer_structure_type_v0 = 1;
+pub type virgl_renderer_structure_type_v0 = u32;
 #[repr(C)]
 #[derive(Debug, Default, Copy, Clone)]
 pub struct virgl_renderer_resource_create_args {
@@ -133,6 +132,27 @@ pub struct virgl_renderer_resource_create_args {
     pub nr_samples: u32,
     pub flags: u32,
 }
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct virgl_renderer_hdr {
+    pub stype: u32,
+    pub stype_version: u32,
+    pub size: u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct virgl_renderer_export_query {
+    pub hdr: virgl_renderer_hdr,
+    pub in_resource_id: u32,
+    pub out_num_fds: u32,
+    pub in_export_fds: u32,
+    pub out_fourcc: u32,
+    pub pad: u32,
+    pub out_fds: [i32; 4usize],
+    pub out_strides: [u32; 4usize],
+    pub out_offsets: [u32; 4usize],
+    pub out_modifier: u64,
+}
 pub type virgl_debug_callback_type = ::std::option::Option<
     unsafe extern "C" fn(fmt: *const ::std::os::raw::c_char, ap: *mut __va_list_tag),
 >;
@@ -273,6 +293,12 @@ extern "C" {
 extern "C" {
     pub fn virgl_renderer_get_poll_fd() -> ::std::os::raw::c_int;
 }
+extern "C" {
+    pub fn virgl_renderer_execute(
+        execute_args: *mut ::std::os::raw::c_void,
+        execute_size: u32,
+    ) -> ::std::os::raw::c_int;
+}
 pub type __builtin_va_list = [__va_list_tag; 1usize];
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]