资讯动态

附录 A:Virglrenderer API 速查

发布时间:2026/10/1 2:47:02 来源:尧图企业网站定制
以src/virglrenderer.h为准的核心导出 API 分组速查。签名以头文件为准UNSTABLE标注的需在VIRGL_RENDERER_UNSTABLE_APIS下使用。详细语义见各章。初始化与生命周期intvirgl_renderer_init(void*cookie,intflags,structvirgl_renderer_callbacks*cb);voidvirgl_renderer_cleanup(void*cookie);voidvirgl_renderer_reset(void);/* 销毁所有上下文与资源 */intvirgl_renderer_get_poll_fd(void);voidvirgl_renderer_poll(void);/* 强制推进 fence */相关章节第14章 VMM 集成与回调上下文Context#defineVIRGL_RENDERER_CONTEXT_FLAG_CAPSET_ID_MASK0xffintvirgl_renderer_context_create_with_flags(uint32_tctx_id,uint32_tctx_flags,uint32_tnlen,constchar*name);voidvirgl_renderer_context_destroy(uint32_tctx_id);voidvirgl_renderer_ctx_attach_resource(intctx_id,intres_handle);voidvirgl_renderer_ctx_detach_resource(intctx_id,intres_handle);相关章节第3章 Context 抽象层命令提交intvirgl_renderer_submit_cmd(void*buffer,intctx_id,intndw);/* 4字节对齐 */intvirgl_renderer_submit_cmd2(void*buffer,intctx_id,intndw,/* UNSTABLE带 in-fence */uint64_t*in_fence_ids,uint32_tnum_in_fences);intvirgl_renderer_execute(void*execute_args,uint32_texecute_size);相关章节第8章 命令流与编解码资源传统intvirgl_renderer_resource_create(structvirgl_renderer_resource_create_args*args,structiovec*iov,uint32_tnum_iovs);intvirgl_renderer_resource_attach_iov(intres_handle,structiovec*iov,intnum_iovs);voidvirgl_renderer_resource_detach_iov(intres_handle,structiovec**iov,int*num_iovs);intvirgl_renderer_resource_get_info(intres_handle,structvirgl_renderer_resource_info*info);intvirgl_renderer_resource_get_info_ext(intres_handle,structvirgl_renderer_resource_info_ext*info);相关章节第4章 Resource 抽象层资源Blob / 零拷贝intvirgl_renderer_resource_create_blob(conststructvirgl_renderer_resource_create_blob_args*args);intvirgl_renderer_resource_map(uint32_tres_handle,void**map,uint64_t*out_size);intvirgl_renderer_resource_unmap(uint32_tres_handle);intvirgl_renderer_resource_map_fixed(uint32_tres_handle,void*addr);intvirgl_renderer_resource_get_map_info(uint32_tres_handle,uint32_t*map_info);intvirgl_renderer_resource_export_blob(uint32_tres_id,uint32_t*fd_type,int*fd);intvirgl_renderer_resource_import_blob(conststructvirgl_renderer_resource_import_blob_args*args);相关章节第7章 内存与零拷贝同步Fenceintvirgl_renderer_create_fence(intclient_fence_id,uint32_tctx_id);/* ctx0 全局 */intvirgl_renderer_context_create_fence(uint32_tctx_id,uint32_tflags,uint32_tring_idx,uint64_tfence_id);voidvirgl_renderer_context_poll(uint32_tctx_id);intvirgl_renderer_context_get_poll_fd(uint32_tctx_id);/* UNSTABLE / 显式同步 */intvirgl_renderer_export_fence(uint64_tclient_fence_id,int*fd);intvirgl_renderer_export_signalled_fence(void);intvirgl_renderer_attach_fence(intctx_id,intfence_fd);intvirgl_renderer_get_fence_fd(uint64_tfence_id);相关章节第6章 同步与 Fence 机制能力集Capset与日志voidvirgl_renderer_get_cap_set(uint32_tset,uint32_t*max_ver,uint32_t*max_size);voidvirgl_renderer_fill_caps(uint32_tset,uint32_tversion,void*caps);voidvirgl_set_log_callback(virgl_log_callback_type cb,void*user_data,virgl_free_data_callback_type free_user_data_cb);相关章节第5章 Capset 机制回调表VMM 实现structvirgl_renderer_callbacks{intversion;void(*write_fence)(void*cookie,uint32_tfence);/* v1 */virgl_renderer_gl_context(*create_gl_context)(...);/* v1 */void(*destroy_gl_context)(...);/* v1 */int(*make_current)(...);/* v1 */int(*get_drm_fd)(void*cookie);/* v2 */void(*write_context_fence)(void*cookie,uint32_tctx_id,uint32_tring_idx,uint64_tfence_id);/* v3 */int(*get_server_fd)(void*cookie,uint32_tversion);/* v3 */void*(*get_egl_display)(void*cookie);/* v4 */};相关章节第14章 VMM 集成与回调

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑