DRMPlaneType里有VIG, DMA,和RGB三种类型,这是不是说明DRMPlane就是代表DPU里的Pipeline

news/2025/3/5 21:56:07/

DRMPlane 代表了 DPU(Display Processing Unit) 里的 Pipeline(数据通路),不同的 DRMPlaneType 对应 DPU 内部的不同 渲染/合成管线


📌 DRMPlaneType 与 DPU Pipeline 的关系

高通(Qualcomm)DPU 里,每个 DRMPlane 其实就对应 DPU 硬件渲染/合成管线,不同类型的 Plane 适用于不同的图层(Layer)。

DRMPlaneTypeDPU Pipeline(数据通路)特点主要用途
VIG(VIG Pipe)VIG(Video Image Generator)专门用于 视频处理,支持 缩放(Scaling)、格式转换等适用于 视频播放、相机预览
DMA(DMA Pipe)DMA(Direct Memory Access)负责 普通图层(UI Layer) 传输,不支持缩放适用于 普通 UI、App 界面
RGB(RGB Pipe)RGB Layer一般用于 GPU 渲染后的 UI 图层,支持混合、透明度适用于 窗口合成、透明 UI

🔹 说明

  • DRMPlaneType 只是 软件层的概念,底层 实际映射到 DPU 硬件中的不同 Pipeline
  • VIG 管道更适合视频(支持缩放、格式转换等)。
  • DMA 管道更适合 UI 界面(支持基础显示,但不支持缩放)。
  • RGB 管道用于 GPU 渲染后的 UI(支持混合、透明度)。

📌 DPU Pipeline(数据通路) 详细结构

高通 DPU(Display Processing Unit) 里的 Pipeline(数据通路) 主要包括:

  1. Source Pipe(源管道)
    • VIG(视频图层管道)
    • DMA(普通 UI 图层管道)
    • RGB(GPU 渲染的 UI 图层)
  2. Mixer(混合器)
    • 负责将多个 Plane 进行 Blending(混合)
    • GPU、Camera ISP、视频解码器的数据最终都经过 Mixer 处理
  3. DSPP(Display Sub-System Processing)
    • 负责色彩调整、Gamma 校正、Dithering 等。
  4. DSI/eDP/HDMI 输出
    • 经过 DSPP 处理后的数据,最终输出到 LCD、OLED、HDMI 设备上。

🔍 代码示例

DRM 框架 里,DRMPlaneType 可能在 设备树(DTS)或驱动代码 里被定义:

enum drm_plane_type {DRM_PLANE_TYPE_PRIMARY = 0,  // 主屏幕的主图层DRM_PLANE_TYPE_OVERLAY = 1,  // 叠加层(视频、UI)DRM_PLANE_TYPE_CURSOR  = 2,  // 鼠标光标
};// 高通 DPU 的 Plane 定义(可能在 dpu_hw_catalog.c 里)
struct dpu_plane_data {.id = VIG,.type = DRM_PLANE_TYPE_OVERLAY,   // VIG 管道通常用于视频
};struct dpu_plane_data {.id = DMA,.type = DRM_PLANE_TYPE_PRIMARY,   // DMA 可能用于 UI 主界面
};struct dpu_plane_data {.id = RGB,.type = DRM_PLANE_TYPE_OVERLAY,   // RGB 可能用于 GPU 渲染的窗口
};

🔎 总结

DRMPlane 代表 DPU 硬件管线,不同的 Plane 类型对应 不同的 DPU Pipeline
VIG(Video Image Generator)用于视频处理,支持缩放、格式转换。
DMA 负责普通 UI 图层,不支持缩放。
RGB 适用于 GPU 渲染的 UI,支持混合、透明度。
最终 DRMPlane 经过 Mixer 进行合成,再通过 DSPP 处理后输出到屏幕。


http://www.ppmy.cn/news/1576908.html

相关文章

软考中级-数据库-3.4 数据结构-图

图的定义 一个图G(Graph)是由两个集合:V和E所组成的,V是有限的非空顶点(Vertex)集合,E是用顶点表示的边(Edge)集合,图G的顶点集和边集分别记为V(G)和E(G),而将图G记作G(V,E)。可以看出,一个顶点集合与连接这…

腾讯--后台开发实习生一面的算法真题整理(2025年3月4日)

面经小记: 资料来源于网络收集。 腾讯实习基地Java后端一面准备: 算法模式:ACM模式卡码网ACM模式练习 需要独立完成完整代码,包括方法类的创建、功能函数和主函数,大致给出模板如下: public class Mai…

利用 Python 爬虫进行跨境电商数据采集

1 引言2 代理IP的优势3 获取代理IP账号4 爬取实战案例---(某电商网站爬取)4.1 网站分析4.2 编写代码4.3 优化代码 5 总结 1 引言 在数字化时代,数据作为核心资源蕴含重要价值,网络爬虫成为企业洞察市场趋势、学术研究探索未知领域…

mybatis热点面试题第五弹

1. MyBatis与Hibernate的区别 答案: MyBatis: 不完全是一个ORM框架,需要手动编写SQL语句,灵活性高,适合对数据库操作有高性能要求的场景。缺点是无法做到数据库无关性,如果需要支持多种数据库&#xff0c…

C#async异步方法和task.Run异步方法的区别:

async 方法和 Task.Run 方法在 C# 中都与异步编程相关,但它们的用途和实现方式有很大区别。以下是对它们的详细对比: 1. 基本定义和用途 1.1 async 方法 定义:async 是一个修饰符,用于定义异步方法。它允许在方法内部使用 await 关键字。 用途:async 方法通常用于处理 I/…

Axure原型模板与元件库APP交互设计素材(附资料)

为了高效地进行APP和小程序的设计与开发,原型设计工具Axure凭借其强大的功能和灵活性,成为了众多产品经理和设计师的首选。本文将详细介绍Axure原型模板APP常用界面组件元件库、交互设计素材,以及多套涵盖电商、社区服务、娱乐休闲、农业农村…

10.【线性代数】—— 四个基本子空间

十、 四个基本子空间 1. 列空间 C ( A ) C(A) C(A) in R m R^m Rm2. 零空间 N ( A ) N(A) N(A) in R n R^n Rn3. 行空间 C ( A T ) C(A^T) C(AT) in R n R^n Rn4. 左零空间 N ( A T ) N(A^T) N(AT) in R m R^m Rm综述5. 新的向量空间 讨论矩阵 A m ∗ n A_{m*n} Am∗n​…

城电科技 | 城市中的“太阳花” 光伏发电新选择

当艺术与科技相遇,会碰撞出怎样的火花?城电科技推出的光伏太阳花,以其独特的设计与智能化的功能,给出了答案。这款产品不仅具备太阳能发电的实用功能,更是一件充满科技属性的艺术型光伏发电产品,吸引了广泛…