新闻详情

新闻详情

首页 / 资讯中心 / 详情

附录 A:Virglrenderer API 速查

发布时间:2026/10/1 2:46:58来源:尧图网络
附录 A:Virglrenderer API 速查
以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 集成与回调
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

吃透力扣第2题:两数相加的链表遍历与进位处理全解析 2026/10/1 3:35:40

吃透力扣第2题:两数相加的链表遍历与进位处理全解析

这两个月在后台收到不少读者留言,问“链表题到底怎么入门”“刷了十几道还是没感觉”。我通常都会回一句:先把力扣第2题“两数相加”吃透再说。为什么这么讲?这道题表面上是“两个数字相加”,实际上它的核心考点从来不是加法本身&…

阅读更多 →
磁盘参数错误不用慌:四步操作法完整修复数据 2026/10/1 3:35:40

磁盘参数错误不用慌:四步操作法完整修复数据

插上移动硬盘,双击盘符,弹出的不是文件夹,而是一行冷冰冰的提示:“无法访问 X:\,参数错误。”那一瞬间,相信很多人跟我一样,心里咯噔一下。盘里几百G的照片、文档、聊天记录备份,好像…

阅读更多 →
Madeira 跨平台兼容层:在 iOS 上通过 Wine 与 FEX-Emu 运行 Windows 应用 2026/10/1 3:35:40

Madeira 跨平台兼容层:在 iOS 上通过 Wine 与 FEX-Emu 运行 Windows 应用

1. 从“Madeira”这个名字说起:一个被低估的跨平台兼容层项目第一次看到“Madeira”这个项目名,大多数人会联想到葡萄牙那座以葡萄酒闻名的岛屿,或者是一块口感扎实的蛋糕。但在跨平台兼容和系统仿真这个圈子里,Madeira 代表的是另…

阅读更多 →
Android系统属性SystemProperties全解:原理、权限与避坑指南 2026/10/1 3:35:40

Android系统属性SystemProperties全解:原理、权限与避坑指南

搞Android开发的人,对SystemProperties应该都不陌生。翻日志会看到getprop ro.product.model,写兼容性适配方案会碰到persist.sys.usb.config,自己做ROM定制或系统裁剪时更躲不开它。它是Android系统里一个地位很高但存在感又很低的模块&…

阅读更多 →
端云协同AI记忆与算力调度:长效人机协作系统架构设计 2026/10/1 3:35:40

端云协同AI记忆与算力调度:长效人机协作系统架构设计

1. 这套系统到底在解决什么问题第一次看到“面向长效人机协作的端云协同AI记忆与算力调度系统架构研究”这个标题,很多人第一反应是——字都认识,连起来不知道在说什么。我把它翻译成大白话:让AI在跟人长期配合干活的过程中,既能记…

阅读更多 →
Agent开发实战:Skill与Tool的本质差异及技能库自演进与动态加载 2026/10/1 3:35:33

Agent开发实战:Skill与Tool的本质差异及技能库自演进与动态加载

1. 从一次翻车说起:为什么我要把 Skill 和 Tool 拆开看去年冬天我接了个私活,帮一家做跨境电商的朋友搭一套自动处理售后邮件的 Agent。需求听起来不复杂:读邮件、判断意图、查订单、生成回复、必要时转人工。我当时的思路很直接——给 Agent…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉