Mesa GLX 实现
GLX
GLX 是 Mesa 中实现的三大支持平台(EGL, GLX, GBM)之一, 原来 GLX 在 Mesa 中有 xlib, gallium-xlib 和 dri 三种实现,自从 Delete Mesa Classic 后就只剩下 xlib,dri 两种实现,其中 dri 使用得比较多一些。
Blog using Hexo
lspci 学习笔记
与 PCI 设备相关的一些 IDs
- Device ID: 4 位十六进制数字
- Vendor ID: 4 位十六进制数字
- Domain ID: 4 位十六进制数字
1 | 3772:00:00.0 0100: 1af4:1049 (rev 01) |
lspci -Dn
的输出格式是:
1 | <domain>:<bus>:<slot>.<func> |
这里的 slot
其实就是 device
, 而且只包含 2 位十六进制数字。我们可以从 lspci
的源码看到
1 | static void |
lspci 之所以只使用 2 位十六进制数字分别表示 bus
, slot
(dev
), 是因为它们被定义成 8 位位宽
1 | struct pci_dev { |
Xorg config 之 Device
Section
1 | Section "Device" |
Device
Section 中 BusID
的格式是
1 | PCI:bus:device:func |
Xorg log 中的 PCI 信息格式
1 | xf86Msg(X_PROBED, "PCI:%s(%u@%u:%u:%u) %04x:%04x:%04x:%04x ", prim, |
日志中的 PCI BusID 格式是
1 | bus@domain:device:func |
CMake 不是一个构建系统
最近看了一些关于Modern CMake(since 3.0.0)的教程,这里记录一下.
Kylin V10 窗口透明问题
最近在看X11 Server的代码,顺手做下笔记。X11 Server的代码很古老了,有的是1993年写的,目前的X Server实现X.org是从最早的一个X Server实现XFree86 4.4 RC2版本(2004年)派生出来的。
update-alternatives
EGLImage & Direct Texture
DRM format modifier
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就是用来解决这些问题的。