logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

最简单的DRM应用程序 (single-buffer)

在学习DRM驱动之前,应该首先了解如何使用DRM驱动。以下使用伪代码的方式,简单介绍如何编写一个最简单的DRM应用程序。伪代码:int main(int argc, char **argv){/* open the drm device */open("/dev/dri/card0");/* get

Render Hell —— 史上最通俗易懂的GPU入门教程(三)

Render Hell – Book III欢迎来到第三篇!这里我们将检查一些在渲染过程中可能出现的问题。但首先,我们来点小练习:知道一个问题是有好处的,而真正去感受一个问题则更有助于理解。所以让我们试着感觉自己像个 CPU / GPU 吧。

#机器学习#深度学习
最简单的DRM应用程序 (double-buffer)

在上一篇 最简单的DRM应用程序 (single-buffer)中,我们学习了如何去编写一个最基本的DRM应用程序。而本篇文章,将在 modeset-single-buffer 的基础上,对其进行扩展,使用双buffer机制的案例,来加深大家对drmModeSetCrtc()函数的印象。使用上一节中的modeset-single-buffer程序,如果用户想要修改画面内容,就只能对mmap()后.

最简单的DRM应用程序 (page-flip)

在上一篇 最简单的DRM应用程序 (double-buffer)中,我们了解了DRM更新图像的一个重要接口drmModeSetCrtc()。在本篇文章中,我们将一起来学习DRM另一个重要的刷图接口:drmModePageFlip()。drmModePageFlip()的功能也是用于更新显示内容的,但是它和drmModeSetCrtc()最大的区别在于,drmModePageFlip()只会等到V.

最简单的DRM应用程序 (plane-test)

在上一篇 最简单的DRM应用程序 (page-flip)中,我们学习了drmModePageFlip()的用法。而在更早的两篇文章中,我们还学习了drmModeSetCrtc()的使用方法。但是这两个接口都只能全屏显示framebuffer的内容,如何才能在屏幕上只显示framebuffer的一部分内容呢?本篇我们将一起来学习DRM另一个重要的刷图接口:drmModeSetPlane()。在学习.

DRM (Direct Rendering Manager) 的发展历史

https://en.wikipedia.org/wiki/Direct_Rendering_Manager#History

DRM 驱动 mmap 详解:(二)CMA Helper

CMA 是 Contiguous Memory Allocator 的缩写,它本身指代的是一种内存分配器(或内存分配策略),专用于分配物理连续的大块内存,以满足大内存需求的设备(如 Display、Camera)。CMA 除了具有内存分配的功能外,还具有内存迁移的功能,使得同一块 CMA 区域既可以被系统使用也可以被专用的 DMA 设备占用,从而大大提高了内存的使用率。要想使用 CMA 内存,需要

#linux
Render Hell —— 史上最通俗易懂的GPU入门教程(二)

Render Hell – Book IIPipeline 详解关于本篇文章,我收到的大多数积极反馈是:非常漂亮的演示说明,但是你的 Pipeline 已经是6年前的了!最初我一直不明白这句话是什么意思,直到 Christoph Kubisch 加入到我的 Render Hell 创作中来,我才明白这句话的含义。他是一名就职于 NVIDIA 的技术开发工程师,无论我有什么样的问题,他都会为我一一解

#机器学习#深度学习
dma-buf 由浅入深(七) —— alloc page 版本

在前面的 dma-buf 系列文章中,exporter 所分配的内存都是通过 kzalloc() 来分配的。本篇我们换个方式,使用 alloc_page() 来分配内存。

#linux
Render Hell —— 史上最通俗易懂的GPU入门教程(一)

Render Hell – Book I如今对美术师的要求越来越高,因为在计算机眼里,他们提供的资源(asset)不过是一堆 **顶点** 和 **纹理** 数据的集合而已。而将这些数据转换为最终的图像,则主要是通过计算机中的 CPU 和 GPU 来完成的。

#机器学习#深度学习
    共 30 条
  • 1
  • 2
  • 3
  • 请选择