Overview

EGLImage的存在是为了更方便地在EGL client API之间共享2D Image Data. 那什么是EGL client API呢?OpenGL, OpenGL ES, OpenVG都是EGL client API. EGLImage与下面3个EGL Extensions有关:

  • EGL_KHR_image
  • EGL_KHR_image_base
  • EGL_KHR_image_pixmap
Read more »

FourCC

FourCC format code是Linux内核DRM子系统用来描述framebuffer像素格式。它们被定义在内核源码include/uapi/drm/drm_fourcc.h. 基本上FourCC format code足以描述framebuffer中像素的内容了,但是随着GPU的更新,原来线性排列的buffers,为了获取更好的性能,可能会采取vendor specific的布局方式。另外,这些buffer也可能保存的是各种不同的压缩数据,这样一来,原来的FourCC format code就无法携带新的buffer
layout或compression format的信息,DRM format modifier就是用来解决这些问题的。

Read more »

Introduction

glamor是一个开源的2D加速驱动,它作为Xorg的一个模块被实现。相比传统的DDX 2D加速驱动,glamor主要有以下2个好处:

  • 使用非常通用的EGL/OpenGL API去操作GPU硬件,省去了手动为每个不同的GPU编写2D加速驱动的麻烦
  • 有了glamor,不再需要传统的2D DDX驱动
Read more »

Motivation

Given that a difficulty to add a custom X11 device driver or module or extension for Xserver, I try to find out how an Xserver is built and its dependent drivers and modules and extensions are orgnized together by building it from source.

Read more »

XYPixmap

The data for a XYPixmap is organized as a set of bitmaps representing individual bit planes, with the planes appearing from MSB to LSB in bit order just as demonstrated below. Every pixel value is 0x55 (b’01010101) in this example.

Read more »

Overview

OpenGL 有很多 Draw 命令, 大体分为 4 类:

  • DrawArrays
  • DrawElements (Indexed)
  • DrawInstanced
  • DrawIndirect
Read more »

X窗口系统

X窗口系统诞生于1984年MIT的研究,后来成为Unix, 类UNIX等操作系统所一致适用的标准化软件工具包及显示架构的运作协议。目前使用最普遍最受欢迎的一个实现是X.Org,它所用的协议版本是X11, 所以Xorg也经常被叫做X11。

Read more »

Overview(#158)

复杂的OpenGL应用和对高分辨率的追求使纹理的大小巨增,但是可供一个GPU使用的物理内存是有限的,一旦内存使用殆尽,内存换页就可能发生,性能严重下降,或者更糟,应用直接挂了。但另一方面GPU可访问的地址空间目前已经可以达到GB,甚至TB.

Read more »

smart pointer是C11引入的,被包含在C标准库中。smart pointer是为了管理对象的所属(object ownership)而设计的,smart pointer对象负责自动地销毁所关联对象。常见的smart pointer有:

Read more »
0%