
dispaly
文章平均质量分 81
maze.ma
向wuxiaowen学习!!!
向何小龙学习!!!
展开
-
display: mesa: eglapi接口:createWindowSurface
详细跟踪eglCreateWindowSurface 相关函数mesa内部具体实现原创 2021-12-09 20:40:10 · 3819 阅读 · 0 评论 -
display: mesa: eglapi接口:bind/query api
详细跟踪eglcreatecontest相关具体实现原创 2021-11-16 21:28:52 · 4070 阅读 · 2 评论 -
display: mesa: eglapi接口:getdisplay&initialize
详细跟踪eglinitliaze/eglgetdisplay相关函数具体实现原创 2021-10-26 23:20:44 · 1752 阅读 · 4 评论 -
Linux GPU系列-05-MESA架构 [转载]
代码分析本应该自下而上的,但是GPU的主要驱动主要在用户态,所以这次从用户态先开始。而且Frame怎么画出来的,也是由用户设置state和调用draw call产生的。下图是从DirectX Spec官网来的:MESAMESA源码里面有2套架构,现在驱动主要基于Gallium架构。Gallium架构MESA其实实现了很多API接口,不只是上图的OpenGL、GLX、还有OpenGL ES、OpenVG、OpenCL、VDPAU和OpenMAX等。当前MESA驱动实现状..转载 2021-10-19 13:52:37 · 3735 阅读 · 0 评论 -
display: drm: virtio-gpu-drm
static struct virtio_driver virtio_gpu_driver = { .feature_table = features, .feature_table_size = ARRAY_SIZE(features),… .id_table = id_table, .probe = virtio_gpu_probe, .remove = virtio_gpu_remove, .config_changed = virtio_gpu_...原创 2021-08-17 20:57:21 · 1844 阅读 · 0 评论 -
Where is the implementation of pixman_region32_init()?
https://stackoverflow.com/questions/48434760/where-is-the-implementation-of-pixman-region32-initIt's inpixman-region32.c. You don't see it because those functions are generated by thePREFIXmacro and then the code inpixman-region.cis used. See here:...转载 2021-08-06 11:25:59 · 533 阅读 · 0 评论 -
display: mesa: eglapi接口:eglswapbuffers
某一帧eglswapbuffer事件的时间格外长,达到300ms以上的情况基于这个问题。因为是wayland/weston的体系。所以面对的eglswapbuffer其实有两个部分:1.client端的eglswapbuffer,这部分是有相关的wayland协议支持的。platform_waylan2.weston内部gl-renderer模块的eglswapbuffer。platform_drm.c原创 2021-08-01 22:34:11 · 2282 阅读 · 2 评论 -
[机翻]An eagle eye view into the Mesa source tree[翻译]
回顾我的上一篇文章介绍了 Mesa 的加载器作为负责为我们的硬件自动选择正确驱动程序的模块。如果加载程序找不到合适的硬件驱动程序,它将回退到软件驱动程序,但我们也可以自己强制这种情况,这在某些情况下可能会派上用场。我们还快速浏览了glxinfo工具,我们可以使用该工具查询所选驱动程序公开的功能和特性。今天的主题重点是提供 Mesa 源代码树的快速概述,这将帮助我们根据驱动程序和/或我们打算使用的功能识别与我们的兴趣相关的代码部分。浏览源代码...翻译 2021-06-12 23:21:44 · 322 阅读 · 0 评论 -
[机翻]Diving into Mesa[翻译]
回顾在我的上一篇文章中,我简要介绍了 Linux 图形堆栈。在那里我解释了我们在 Linux 中所谓的图形驱动程序实际上是三个不同驱动程序的组合: 处理 2D 图形的用户空间 X 服务器 DDX 驱动程序。 用户空间 3D OpenGL 驱动程序,可以由 Mesa 提供。 内核空间 DRM 驱动程序。 现在我们知道了 Mesa 适合的位置,让我们更详细地研究一下。 DRI 驱动程序和非 DRI 驱动程序 如前所述,Mesa 通过提供 OpenGL API 的实现来处理 3D 图形。 Mesa OpenG翻译 2021-06-09 22:56:29 · 642 阅读 · 0 评论 -
[机翻]Linux图形堆栈简介[翻译]
2014 年 7 月 29 日这篇文章试图对 Linux 图形堆栈做一个简短的介绍,因此,它具有介绍性。我将专注于提供足够的背景信息,以了解 Mesa 和 3D 驱动程序通常在堆栈中扮演的角色,并将其留给后续帖子,以更深入地了解 Mesa 的总体内容和英特尔 DRI 驱动程序的具体内容。一点历史为了了解当前图形堆栈的一些特殊性,了解它多年来如何适应新挑战非常重要。你看,现在的事情比以前复杂得多,但在早期,只有一个软件可以直接访问图形硬件:X 服务器。这种方法使图形堆栈更简单,因为它不...翻译 2021-06-09 18:38:22 · 998 阅读 · 0 评论 -
[转载]Cairo 图形指南[转载]
欢迎阅读 Cairo 绘图指南,这份指南会向你讲述 Cairo 二维矢量绘图库的基本知识以及一些高级问题。指南中的示例采用 C 语言实现,其中大部分使用了 GTK+ 库。二维矢量图形计算机图形可分为两类,矢量图形与光栅图形。光栅图形是将图像表示为像素点集。矢量图形则是使用一些几何图元(点、直线、曲线、多边形等)表示图像,这些图元是使用数学公式生成的。这两类计算机图形表达方式各有所长短。相较于光栅图形,矢量图形存在以下优越性:图形文件更小 可任意缩放 平移、缩放、填充或旋转等图形变换...转载 2021-06-08 15:54:25 · 3149 阅读 · 1 评论 -
display:weston结构体笔记
一下例子均基于desktop-shellweston_headweston_outputweston_surface:客户端调用wl_compositor_create_surfaceserver端调用 static voidcompositor_create_surface(struct wl_client *client, struct wl_resource *resource, uint32_t id){ struct weston_compositor *.原创 2021-05-31 13:59:00 · 1666 阅读 · 6 评论 -
display:kernel送显流程:commit
drmModeAtomicCommit先是libdrm中的drmModeAtomicCommitdrmModeAtomicCommit ret = DRM_IOCTL(fd, DRM_IOCTL_MODE_ATOMIC, &atomic);随后进入kernel DRM_IOCTL_DEF(DRM_IOCTL_MODE_ATOMIC, drm_mode_atomic_ioctl, DRM_MASTER), drm_mode_atomic_ioctl //实际的ioctl函数原创 2021-05-31 13:51:06 · 2121 阅读 · 0 评论 -
display:agl-compositor
https://docs.automotivelinux.org/en/master/#5_Component_Documentation/1_agl-compositor/这个agl-compositor有点ivi-shell的味道。原创 2021-04-23 14:21:55 · 1107 阅读 · 1 评论 -
wayland protocal and programming
Written in 2012 before wayland 1.0 released, most of them are outdated as in May 2017.wayland是异步的面向对象的协议,所有请求都是在某个对象上的方法调用。每个对象实现一个接口,描述一系列操作。请求包含对象id,唯一标识服务器上的一个对象,还包括opcode,指出在对象上调用的方法。server向clie...转载 2019-07-24 15:54:52 · 4529 阅读 · 1 评论 -
display:从Weston到DP
本文旨在总结最进工作经验以及汇总之前博文wayland/weston介绍文章:display:Wayland Architecture https://blog.youkuaiyun.com/u012839187/article/details/94599565 简单介绍x-server与weston的区别与联系。原创 2021-04-11 21:56:14 · 2534 阅读 · 2 评论 -
display:Weston:怎么让某个surface永远置于顶层
问题如标题:假设我有一个app。想一直置于顶层,那么我可以怎么做?1.想办法拿掉weston或者说drm关于master权限的处理,然后自己基于libdrm画一个即可。2.可以想办法分出一个硬件的pipleline用来专门给这个显示用,同时枚举出另一个/dev/dri/cardX,然后自己写一个基于此card的绘图client即可。这个方法的问题就是,本质上和cma有点像,这个单独分出来的硬件,永远不会被weston看到。 如果能做到pipeline的动态分配到节点(打个比方crtc0可以在不原创 2021-03-18 11:16:47 · 2294 阅读 · 1 评论 -
Dynamic DMA mapping Guide
作者:linuxer发布于:2017-7-20 19:23 分类:内存管理一、前言这是一篇指导驱动工程师如何使用DMA API的文档,为了方便理解,文档中给出了伪代码的例程。另外一篇文档dma-api.txt给出了相关API的简明描述,有兴趣也可以看看那一篇,这两份文档在DMA API的描述方面是一致的。二、从CPU角度看到的地址和从DMA控制器看到的地址有什么不同?在DMA API中涉及好几个地址的概念(物理地址、虚拟地址和总线地址),正确的理解这些地址是非常重要的。内核通常使..转载 2021-03-09 19:47:11 · 1363 阅读 · 2 评论 -
display:Driver porting: DMA changes-2003
直接内存访问(DMA)支持层在2.6中已进行了广泛更改,但是在许多情况下,设备驱动程序应保持不变。对于使用新驱动程序的开发人员,或希望使用最新API保持其代码最新的开发人员,有很多更改需要注意。最明显的变化是创建了新的通用DMA层。大多数驱动程序程序员都知道pci_* DMA支持函数;。SPARC程序员可能也遇到过类似的sbus_*函数集。从2.5.53开始,添加了一组新的通用DMA函数,目的是提供一个DMA支持API,而不是特定于任何特定总线。新的功能看起来很像旧的功能;从一个API切换到另一个...翻译 2021-03-08 14:54:09 · 268 阅读 · 2 评论 -
memory:DMA-BUF cache handling: Off the DMA API map (part 1/2)
最近,DMA-BUF堆接口已添加到5.6内核。此API接口类似于ION,Android供应商已使用ION多年。但是,在尝试供应商转移使用DMA-BUF堆的过程中,我们已经开始了解DMA API模型如何不适合现代移动设备。此外,由于缺乏关于如何有效处理缓存操作的明确指导,导致供应商使用定制的特定于设备的优化,而这些优化对于上游解决方案而言不够通用。本文将描述问题的性质。接下来的第二期将探讨解决方案。内核的DMA api都是为CPU和设备之间的内存共享而提供的。近年来,传统的DMA API加入了ION、DM翻译 2021-02-25 14:21:42 · 711 阅读 · 2 评论 -
display:Destaging ION-2019
多年来,Android系统已经为DMA缓冲区提供了几个分配器;首先是PMEM,然后是其替代ION。ION分配器在2012年左右就开始使用了,但是它仍然停留在内核的staging树中。将ION加入主线的工作始于2013年;在那个时候,分配程序有多个问题,这使得mianline包含ION仍然不可能。最近,John Stultz发布了一个补丁集,引入了DMA-BUF堆,这是ION的一个进化,它的设计就是要做到这一点——将Android的dma缓冲区分配程序合入到主流Linux内核中。翻译 2021-02-23 20:25:35 · 957 阅读 · 5 评论 -
display: Scheduling for the Android display pipeline-2020
显示由Android显示管道管理,Android显示管道是一个复杂的系统,其中不同的任务和硬件加速器在应用程序的执行以及通过屏幕呈现给用户的图形内容的更新方面进行协作。显示管道负责生成显示输出,因此其性能表现直接影响用户与设备之间最重要的交互渠道之一。除了不断增长的移动游戏行业所要求的低延迟要求外,在显示管线中优先考虑的是提供稳定的帧速率(不跳过任何帧)。此外,Android在移动设备中处于领先地位,其中有限的电量消耗和散热代表了系统必须满足的其他严格要求;这些可以概括为使功耗最小化。所有这些需求是相互翻译 2021-02-22 11:17:33 · 713 阅读 · 0 评论 -
display:Integrating the ION memory allocator-2013
作为2013 Linux Plumbers Conference大会上Android + Graphics会议的一部分,我们将讨论ION内存分配器及其功能如何上传到主流内核。由于时间有限,我想创建一些背景文档,以提供我们将在会议上讨论并试图解决的问题的背景。ION overviewAndroid ION子系统的主要目标是允许在硬件设备和用户空间之间分配和共享缓冲区,以便在设备之间实现零拷贝内存共享。这听起来很简单,但实际上是一个困难的问题。在片上系统(SoC)硬件上,通常有许多不同的设备具有直接内存翻译 2021-02-18 10:05:51 · 550 阅读 · 1 评论 -
display: XDC2012: Graphics stack security
在XDC2012的第一天,Martin Peres和TimothéeRavier的会议探讨了图形堆栈中的安全性。他们考虑了用户对图形用户界面(GUI)中安全性的期望,并针对X11和Weston(Wayland的参考合成窗口管理器)中的实现回顾了这些期望,并涵盖了其他一些方面。 Martin在开始演讲时指出,他们已经对该主题进行了大量研究,尽管他们是Linux安全工程师而不是X开发人员,但他希望他们仍然可以向听众提供有用的信息。User security expectations and the X se翻译 2021-02-16 20:49:29 · 517 阅读 · 1 评论 -
display:3.3中的DMA缓冲区共享-2012
早在2011年8月,LWN就研究了Marek Szyprowski发布的DMA缓冲区共享补丁集。从那以后,Sumit Semwal拾起了该补丁,他对大量开发人员的评论做出了很大的修改。合并为3.3的此修补程序的版本与以前的版本有很大不同,因此值得在此进行其他介绍。但是,核心思想仍然是相同的:这种机制允许DMA缓冲区在可能不知道彼此的驱动程序之间共享。最初的目标用途是在视频流的生产者和消费者之间共享缓冲区;例如,摄像头设备可以将帧流捕获到与图形适配器共享的一系列缓冲区中,从而无需在内核中进行复制就可以捕获翻译 2021-02-03 19:12:15 · 647 阅读 · 2 评论 -
display:Android ION内存分配器-2012
早在2011年12月,LWN审查了linux-next登台目录中的Android内核补丁列表。这些驱动程序的合并(其中之一是称为PMEM的内存分配器)可以保证主线内核发行版有一天可以引导Android用户空间。从那时起,很明显PMEM被视为过时的,并将由ION内存管理器替换。ION是Google在Android 4.0 ICS(冰淇淋三明治)版本中引入的一种通用内存管理器,旨在解决跨不同Android设备的内存管理碎片化问题。至少有三个(可能更多)类似PMEM的接口。在使用NVIDIA Tegra的An..翻译 2021-02-03 17:31:24 · 1360 阅读 · 2 评论 -
display:libdrm/libgbm/ion/gem/dma_buf
#include "xf86drm.h"#include "xf86drmMode.h"#include <stdio.h>#include <stdint.h>#include <unistd.h>#include <string.h>#include <fcntl.h>#include <sys/mman.h>struct buffer_object { uint32_t width; uint3.原创 2021-02-02 15:05:47 · 3968 阅读 · 5 评论 -
display:weston:weston-simple-egl: server端
接上篇:https://blog.youkuaiyun.com/u012839187/article/details/112415876原创 2021-01-25 10:33:16 · 1726 阅读 · 1 评论 -
display:weston:weston-simple-egl
写在前面:客户端渲染在Wayland架构中,客户端UI的所有呈现均由客户端代码执行,通常由客户端使用的图形工具包执行。图形工具箱可以使用其希望呈现UI元素的任何方法:在CPU上进行软件呈现,使用GLES进行硬件呈现。 Wayland所需要做的就是将客户端渲染的每一帧和窗口的结果像素发送到合成器。 像素数据可能以几种方式传输,具体取决于渲染方式以及客户端和合成器相互支持的内容: 包含实际像素数据的共享内存缓冲区。 如果没有其他机制,则支持这些备用机制。 GPU缓冲区共享(DRM原创 2021-01-09 23:44:09 · 4579 阅读 · 1 评论 -
display:weston:man weston 相关
man westonWESTON(1) General Commands Manual WESTON(1)NAME weston - the reference Wayland ...翻译 2020-12-31 22:12:24 · 2416 阅读 · 0 评论 -
display:dp/dsi:构建虚拟5kdp/dsi
想要测试mdp的性能,购买屏幕成本很高,如何构建虚拟dp?1.kernel打通覆盖dpcd以及edid的节点2.正确的dpcd以及edid输入对于1,需要修改源码,简单的思路是创建一个sys节点,暴露dpcp以及edid的节点,顺便需要暴露hot-plug的节点。这样就可以先改好dpcd以及edid,然后模拟hot-plug,保证在hot-plug执行的时候读取预先写入edid以及dpcd。对于2,正确的dpcd,一般我们修改最多的就是lane的数量以及lane的最大传输速.原创 2020-09-09 17:08:45 · 1698 阅读 · 0 评论 -
display:dp:edid/e-edid/displayid
名词EDID Extended Display Identification Data (Legacy VESA structure, superseded by the DisplayID structure).E-EDID Enhanced Extended Display Identification Data (Legacy VESA structure, superseded by the DisplayID structure).DisplayID Display Identific原创 2020-08-31 10:13:29 · 8702 阅读 · 3 评论 -
display:weston:查询clinet api对应server的具体实现
对应的具体实现在wayland/src/wayland-shm.c;查询client api具体实现;以wl_shm_pool_create_buffer举例client端,simple-shm使用wl_shm_pool_create_buffer 在wayland/protocol/ 或者 wayland-protocol 或者weston里面搜索:$ grep -rn "wl_shm_pool_create_buffer" 找到对应的协议wayland-client-protocol.h原创 2020-08-07 14:18:24 · 888 阅读 · 0 评论 -
转载:linux drm原理及应用
参考链接dma:https://blog.youkuaiyun.com/abc3240660/article/details/81942190#t6Linux DRM KMS 驱动简介:https://blog.youkuaiyun.com/zhuyong006/article/details/80942777DRM(Direct Rendering Manager)学习简介:https://blog.youkuaiyun.com/hexiaolong2009/article/details/83720940 应用场景linux.转载 2020-07-27 16:25:20 · 4089 阅读 · 6 评论 -
display:wesotn:clienst:simple-dmabuf-drm & simple-dmabuf-egl
simple-dmabuf-drm在19年的mainline里面被废弃,原因如下ommit 0a4f6e7d6d63585d287e4f4e2edbc39228d6eed1Author: Simon Ser <contact@emersion.fr>Date: Tue Jul 16 15:18:25 2019 +0300 clients: drop simple-dmabuf-drm This client contains driver-specifi原创 2020-07-23 19:49:36 · 2614 阅读 · 0 评论 -
display:The Wayland Book 节选Input
source code:https://git.sr.ht/~sircmpwn/wayland-book本文内容均节选自 《The Wayland Book》Seats: Handling inputFrom the client's perspective, it's reasonably straightforward. If you bind to the wl_seat globalThis interface is relatively straightforward. The s转载 2020-07-18 15:53:41 · 511 阅读 · 0 评论 -
display:The Wayland Book 节选dmabuf&XDG
source code:https://git.sr.ht/~sircmpwn/wayland-book本文内容均节选自 《The Wayland Book》Linux dmabufMost Wayland compositors do their rendering on the GPU, and many Wayland clients do their rendering on the GPU as well. With the shared memory approach, sendin转载 2020-07-17 11:20:18 · 1671 阅读 · 2 评论 -
display:The Wayland Book 节选
source code:https://git.sr.ht/~sircmpwn/wayland-book本文内容均节选自 《The Wayland Book》High-level design Your computer has input and output devices, which respectively are responsible for receiving information from you and displaying information to you. Thes转载 2020-07-14 15:09:21 · 1930 阅读 · 0 评论 -
tools:在ubuntu 20.04上搭建weston环境
参考:https://wayland.freedesktop.org/building.htmlhttps://github.com/wayland-project/wayland-build-tools1.git clonehttps://github.com/wayland-project/wayland-build-toolsStep 1: Install git, and clone the wayland-build-tools repository apt-.原创 2020-07-06 17:43:58 · 6207 阅读 · 5 评论 -
display:weston渲染流程:commit
接上一篇display:weston渲染流程:buffer+attach+damage+framehttps://blog.youkuaiyun.com/u012839187/article/details/100580627下面讲commit5.commithttps://happyseeker.github.io/graphic/2016/11/10/wayland-commit-relative-flow.htmlSurface state (input, opaqueand damag.原创 2020-06-01 11:25:52 · 7359 阅读 · 7 评论