说明:最全专利文库
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202211021379.5 (22)申请日 2022.08.24 (71)申请人 深圳中微电科技有限公司 地址 518000 广东省深圳市南 山区粤海街 道高新区社区高新南六道8号航盛科 技大厦14层 (72)发明人 陈杰坪 黎杰豪  (74)专利代理 机构 深圳市添源创鑫知识产权代 理有限公司 4 4855 专利代理师 周椿 (51)Int.Cl. G06F 9/451(2018.01) (54)发明名称 一种基于Linux系统的GPU 3D送显方法 (57)摘要 本发明涉及图像显示技术领域, 特别涉及一 种基于Linux系统的GPU  3D送显方法。 其方法包 括以下步骤: S1.KMS驱动初始化预先申请一个独 立硬件图层, 作为3D送显专用图层; S2.在3D复制 送显前, 获取送显像素图信息, 并直接把信息通 过自定义ioctl传递给KMS驱动; S3.KMS驱动通过 信息找到GEM对应的包括显存地址、 格式的信息, 并通过独立硬件图层显示出来, 完成送显。 本发 明不依赖窗口管理器的翻页 功能, 触发机制条件 简单; 不存在内存拷贝, 进 一步提供送显效率, 节 省GPU、 CPU资源; 更方便研发调试3D  case结果, 当前对应内存存放内容纯case结果, 没有混杂其 他内容。 权利要求书1页 说明书3页 附图1页 CN 115357328 A 2022.11.18 CN 115357328 A 1.一种基于L inux系统的GPU  3D送显方法, 其特 征在于, 包括以下步骤: S1.KMS驱动初始化预 先申请一个 独立硬件图层, 作为3D送显专用图层; S2.在3D复制送显前, 获取送显像素图信息, 并直接把信息通过自定义ioctl传递给KMS 驱动; S3.KMS驱动通过信息找到GEM对应的包括显存地址、 格式的信息, 并通过独立硬件图层 显示出来, 完成送显 。 2.根据权利要求1所述基于Linux系统的GPU  3D送显方法, 其特征在于, 所述步骤S2包 括: S21.3D case创建bo时, 初始化bo和pixmap信息, 并缓存bo信息用于匹配; S22.等待3D case渲染完成, 自动触发送显; S23.判断送显bo和pixmap  是否为当前3D  case内容, 同时判断KMS驱动是否支持独立 送显; 如果该bo是3d  case生成的, 并且KMS驱动支持独立送显, 则执行步骤S24; 如果该bo不 是3d case生成的, 或者KMS驱动不支持独立送显, 则跳 到默认送显方式; S24.获取当前bo信息, 包括gem  handle、 宽度、 长度、 格式、 对齐方式; S25.把信息整合成具体结构体, 通过自定义 ioctl给KMS发送信息 。 3.根据权利要求1所述基于Linux系统的GPU  3D送显方法, 其特征在于, 所述步骤S3包 括: S31.KMS收到信息进行处理, 包括通过gem  handle获取显存地址、 判断是否要重新裁 剪、 判断宽高是否正常; S32.根据送显信息设置专用图层D P硬件寄存器, 进行3D图像显示, 完成送显 工作。 4.根据权利要求3所述基于Linux系统的GPU  3D送显方法, 其特征在于, 执行所述步骤 S3后, 还包括步骤: S4.若步骤S31至S32正常执行动作, 则KMS判断送显成功, 把bo信息返回给Xserver   DDX。 5.根据权利要求 4所述基于L inux系统的GPU  3D送显方法, 其特 征在于, 还 包括步骤: S5. Xserver DDX判断KMS返回信息是否成功, 如果成功, 直接返回, 送显完成; 如果失 败, 回退到默认方式送显 。 6.根据权利 要求2或5所述基于Linux系统的GPU  3D送显方法, 其特征在于, 送显的默认 方式包括以下步骤: 复制区域信息到scanout; 把所有需要合成图层遍历进行合成; 通过DRM进行跟KMS产生 送显请求, KMS设置通用图层D P硬件寄存器进行显示, 送显 完成。 7.根据权利要求6所述基于Linux系统的GPU  3D送显方法, 其特征在于, 默认方式送显 完成后, 返回步骤S2循环执 行下一周期。 8.根据权利要求3所述基于Linux系统的GPU  3D送显方法, 其特征在于, 所述步骤S32中 完成送显 工作后, 返回步骤S2循环执 行下一周期。权 利 要 求 书 1/1 页 2 CN 115357328 A 2一种基于Lin ux系统的GPU  3D送显方 法 技术领域 [0001]本发明涉及图像显示 技术领域, 特别涉及一种基于L inux系统的GPU  3D送显方法。 背景技术 [0002]目前linux  GPU主要基于Xorg框架实现。 3D送显部分发展到现象依赖Xorg的DRI (Direct_Renderin g_Infrastructure) 拓展实现, 目前已经发展到DRI3。 DRI、 DRI2、 DRI3都 是为了渲染送显各种问题而生, 特别是DRI2、 DRI3在窗口管理器实现了离屏像素图 (offscreen  pixmaps)支持, 主要通过窗口管理器进行触发翻页(pageflip)解决图像撕裂 (tearing)问题, 其中会涉及到窗口合成、 像素图复制等过程。 [0003]其实目前Xorg  3D送显机制已经非常完善, 特别 DRI3技术的应用。 但有个问题 是前 提: 需要窗口管理器支持和配合, 而且翻页对象是整个屏幕像素图(scanout), 不能对单个 3D case窗口进行翻页。 而且对3D送显时会复制合成当前3D像素图到主屏幕像素图, 通过 Xorg和KMS一系列操作后, 最后把屏幕像素图进行统一送显 。 发明内容 [0004]本发明提供一种基于L inux系统的GPU  3D送显方法, 旨在提高GPU  3D送显效率。 [0005]本发明提供一种基于L inux系统的GPU  3D送显方法, 包括以下步骤: S1.KMS驱动初始化预 先申请一个 独立硬件图层, 作为3D送显专用图层; S2.在3D复制送显前, 获取送显像素图信息, 并直接把信息通过自定义ioctl传递 给KMS驱动; i octl为设备驱动程序中对设备的I/O通道进行 管理的函数; S3.KMS驱动通过信息找到 GEM (Graphic s Execution Manager) 对应的包括显存地 址、 格式的信息, 并通过独立硬件图层显示出来, 完成送显 。 [0006]作为本发明的进一 步改进, 所述 步骤S2包括: S21.3D case创建bo时, 初始化bo和pixmap信息, 并缓存bo信息用于匹配; S22.等待3D case渲染完成, 自动触发送显; S23.判断送显bo和pixmap  是否为当前3D  case内容, 并且判断KMS驱动是否支持 独立送显; 如果该bo是3d  case生成的, 并且 KMS驱动支持独立送显, 则执行步骤S24; 如果该 bo不是3d case生成的, 或者KMS驱动不支持独立送显, 则跳 到默认送显方式; S24.获取当前bo信息, 包括gem  handle、 宽度、 长度、 格式、 对齐方式; S25.把信息整合成具体结构体, 通过自定义 ioctl给KMS发送信息; 3d case为3d  运行例子; 3d  bo为3d buffer obj, 用以存放3d渲染完成后的图片 的内存对象, 为3d  case 运行结果。 [0007]作为本发明的进一 步改进, 所述 步骤S3包括: S31.KMS收到信息进行处理, 包括通过gem  handle获取显存地址、 判断是否要重新 裁剪、 判断宽高是否正常; S32.根据送显信息设置专用图层D P硬件寄存器, 进行3D图像显示, 完成送显 工作。说 明 书 1/3 页 3 CN 115357328 A 3

.PDF文档 专利 一种基于Linux系统的GPU 3D送显方法

文档预览
中文文档 6 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共6页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种基于Linux系统的GPU 3D送显方法 第 1 页 专利 一种基于Linux系统的GPU 3D送显方法 第 2 页 专利 一种基于Linux系统的GPU 3D送显方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 17:06:30上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。