linux drm 内存管理,Linux RK3399 DRM 框架及代码流程 · Younix’s Studio
8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
RK3399
OS: Android 6.0
Kernel: 4.4
Version: v2017.04
DRM 简介
定义
DRM: Direct Rendering Manager 它用于处理显卡(graphic cards embedding GPUs)
KMS: Kernel Mode Setting 它是 DRM API 的一个子集
由 渲染 及 模式设置 方式的差别有两种不同的 API (/dev/dri/renderX 和 /dev/dri/controlDX)
KMS 提供了一种配置显卡的方式
对比
Linux 中显示方式还有其他方式,比如 FBDEV 和 V4L2
DRM 的优势在于:
更新很活跃
被广泛用于用户空间图形栈
有一些高级的特性(overlays、hw cursor …)
架构
1)DRM 组件:Framebuffer
显示信息存储在如下地方:指向被用来存储显示内容的内存区域
一部分内存用于存储帧的格式
活跃的内存区域中的内容将被显示呈现
DRM 帧缓存是一个虚拟的对象(依赖于某一个具体的实现)
帧缓存具体的实现取决于:
正在使用的内存管理器(GEM或TTM)
显示控制器功能:支持 DMA、IOMMU
GEM对象的默认实现可以使用CMA(连续内存分配器):drivers/gpu/drm/drm_fb_cma_helper.c
其他的实现常常取决于显示控制器
Scatter Gather 的例子:drivers/gpu/drm/tegra
IOMMU 的例子:drivers/gpu/drm/exynos
pixel_format 描述内存缓存组织
FOURCC 格式的编码
支持的格式在如下头文件定义:
include/drm/drm_fourcc.h
这些 FOURCC 格式 不是标准化的,因此它们仅在 DRM/KMS 子系统中有效。
DRM/KMS 子系统中用到了三种类型的格式:
RGB:每个像素以 RGB 元编码。
YUV:每个像素以 YUV 元编码
C8 :使用转换表将值映射到RGB元
其中 YUV 支持不同的模式:
封装:一部分内存区域存储所有组件(Y,U和V)
semi-planar:一部分内存区域用来存储 Y 一部分用来存储 UV
plane:用来存所有组件的内存区域
每一个用来存放帧元的内存区域被称作 plane
2)Planes
3)CRTC
4)Encoder
5)Connector
linux drm 内存管理,Linux RK3399 DRM 框架及代码流程 · Younix’s Studio相关推荐
- linux drm 内存管理,linux DRM GEM 笔记
在GPU上的各种操做中涉及到多种.多个buffer的使用. 一般咱们GPU是经过图像API来调用的,例如OPENGL.vulkan等,因此GPU上buffer的使用,实际上就是在这些图像API中被使用 ...
- linux vma,内存管理 – Linux内核API find_vma
find_vma函数功能描述:find_vma( )函数根据一个属于某个进程的虚拟地址,找到其所属的进程虚拟区间,并返回相应的vma_area_struct结构体指针. find_vma文件包含 #i ...
- 全网独一无二值得收藏的,Linux的内存管理
Linux的内存管理 Linux的内存管理是一个非常复杂的过程,主要分成两个大的部分:内核的内存管理和进程虚拟内存.内核的内存管理是Linux内存管理的核心,所以我们先对内核的内存管理进行简介. 一. ...
- linux kernel内存管理之/proc/meminfo下参数介绍
一.前言 /proc/meminfo是了解Linux系统内存状态的主要接口,里面统计了当前系统各类内存的使用状况,需要注意的是:这是从内核的角度来统计.我们常用的free,vmstat等指令都是通过/ ...
- Linux内核内存管理:地址转换和MMU
地址转换和MMU 虚拟内存是一个概念,是给进程的一种错觉,因此它认为自己拥有巨大的.几乎无限的内存,有时甚至比系统实际拥有的内存还要多.每次访问内存位置时,由CPU将虚拟地址转换为物理地址.这种机制称 ...
- Linux堆内存管理深入分析(上)
Linux堆内存管理深入分析 (上半部) 作者:走位@阿里聚安全 0 前言 近年来,漏洞挖掘越来越火,各种漏洞挖掘.利用的分析文章层出不穷.从大方向来看,主要有基于栈溢出的漏洞利用和基于堆溢出的漏 ...
- 转:浅谈Linux的内存管理机制
一 物理内存和虚拟内存 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概 ...
- 浅谈Linux的内存管理机制
一 物理内存和虚拟内存 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概 ...
- Linux系统内存管理之伙伴系统分析 - 旭东的博客 - 博客园
Linux系统内存管理之伙伴系统分析 - 旭东的博客 - 博客园 Linux系统内存管理之伙伴系统分析 今天去面试,一位面试官提到了内存管理的伙伴系统,当时就懵了,因为根本就没有听说过.晚上回来在实验 ...
最新文章
- 我知道的一些 ”运行“ 窗体下的命令,个人使用
- 【跃迁之路】【658天】程序员高效学习方法论探索系列(实验阶段415-2018.12.02)...
- Object Hook 简单介绍
- 2020年python工资一般多少钱-2020年Python的就业薪资有多少?前景如何?
- python中keyboardinterrupt_如何防止代码块在Python中被KeyboardInterrupt中断?
- 这几本书在豆瓣 8 分以上,今天中秋节包邮送!
- vue项目如何放到服务器上,Vue项目怎么上传到云服务器
- 在windows命令行中查询MySQL乱码
- 推荐这5款Windows软件,一款比一款惊喜
- 技术干货合集【失效分析、PFMEA DFMEA关系、文件结果化、风险分析技术】
- 未能找到路径中的某个部分_C# 未能找到 的一部分
- C++如何打开一个exe文件
- iPhone无法充电小技巧
- 去香港读研——申请全过程
- 蓝牙信标有哪些附加功能?蓝牙信标的工业用途知多少?
- 用流对象的成员函数控制输出格式
- 七星连珠 (天文景观)
- MSIL(0):简介
- 效率神器!!!遥感影像和普通图片样本半自动标注
- 三星q90r音效_入手三星Q90R全景声回音壁,开箱