
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
在学习DRM驱动之前,应该首先了解如何使用DRM驱动。以下使用伪代码的方式,简单介绍如何编写一个最简单的DRM应用程序。伪代码:int main(int argc, char **argv){/* open the drm device */open("/dev/dri/card0");/* get
Render Hell – Book III欢迎来到第三篇!这里我们将检查一些在渲染过程中可能出现的问题。但首先,我们来点小练习:知道一个问题是有好处的,而真正去感受一个问题则更有助于理解。所以让我们试着感觉自己像个 CPU / GPU 吧。
在上一篇 最简单的DRM应用程序 (single-buffer)中,我们学习了如何去编写一个最基本的DRM应用程序。而本篇文章,将在 modeset-single-buffer 的基础上,对其进行扩展,使用双buffer机制的案例,来加深大家对drmModeSetCrtc()函数的印象。使用上一节中的modeset-single-buffer程序,如果用户想要修改画面内容,就只能对mmap()后.
在上一篇 最简单的DRM应用程序 (double-buffer)中,我们了解了DRM更新图像的一个重要接口drmModeSetCrtc()。在本篇文章中,我们将一起来学习DRM另一个重要的刷图接口:drmModePageFlip()。drmModePageFlip()的功能也是用于更新显示内容的,但是它和drmModeSetCrtc()最大的区别在于,drmModePageFlip()只会等到V.
在上一篇 最简单的DRM应用程序 (page-flip)中,我们学习了drmModePageFlip()的用法。而在更早的两篇文章中,我们还学习了drmModeSetCrtc()的使用方法。但是这两个接口都只能全屏显示framebuffer的内容,如何才能在屏幕上只显示framebuffer的一部分内容呢?本篇我们将一起来学习DRM另一个重要的刷图接口:drmModeSetPlane()。在学习.
https://en.wikipedia.org/wiki/Direct_Rendering_Manager#History
CMA 是 Contiguous Memory Allocator 的缩写,它本身指代的是一种内存分配器(或内存分配策略),专用于分配物理连续的大块内存,以满足大内存需求的设备(如 Display、Camera)。CMA 除了具有内存分配的功能外,还具有内存迁移的功能,使得同一块 CMA 区域既可以被系统使用也可以被专用的 DMA 设备占用,从而大大提高了内存的使用率。要想使用 CMA 内存,需要
Render Hell – Book IIPipeline 详解关于本篇文章,我收到的大多数积极反馈是:非常漂亮的演示说明,但是你的 Pipeline 已经是6年前的了!最初我一直不明白这句话是什么意思,直到 Christoph Kubisch 加入到我的 Render Hell 创作中来,我才明白这句话的含义。他是一名就职于 NVIDIA 的技术开发工程师,无论我有什么样的问题,他都会为我一一解
在前面的 dma-buf 系列文章中,exporter 所分配的内存都是通过 kzalloc() 来分配的。本篇我们换个方式,使用 alloc_page() 来分配内存。
Render Hell – Book I如今对美术师的要求越来越高,因为在计算机眼里,他们提供的资源(asset)不过是一堆 **顶点** 和 **纹理** 数据的集合而已。而将这些数据转换为最终的图像,则主要是通过计算机中的 CPU 和 GPU 来完成的。