Wayland Architecture

为了理解wayland的架构和它与X的区别,最好是看看从一个输入事件到这个输入事件的结果呈现到屏幕上这个过程都发生了什么。

Read more »

Something you should know about glmark2

  1. glmark2 的命令行参数格式

示例:

1
glmark2 -b desktop:nframes=1000000:show-fps=true -b build:duration=100
Read more »

GLX

GLX (Initialism for “OpenGL Extension to the X Window System”) is an extension to the X Window System core protocol providing an interface between OpenGL and the X Window System as well as extensions to OpenGL itself. (From WiKi)

Mesa的 GLX 实现自从 Delete Mesa Classic 已经从原来的 3 种变成现在的 2 种:

  • dri
  • xlib
flowchart TD
    A[xlib or gallium-xlib]
    A --> x11
    A --> xext
    A --> xcb
    B[dri]
    B --> x11
    B --> xext
    B --> xfixes
    B --> xcb-glx
    B --> xcb-shm

如果是xlib, 它的源码位于

  • mesa/drivers/x11

如果是gallium-xlib, 它的源码位于

  • gallium/winsys/sw/xlib
  • gallium/frontends/glx/xlib
  • gallium/targets/libgl-xlib

xlib

dri

在 Linux 下 dri-based glx 实现我们只关注 3 个实现:

源文件 关键函数
dri2_glx.c dri2CreateScreen()
dri3_glx.c dri3_create_screen()
drisw_glx.c driswCreateScreenDriver()

dri2CreateScreen

dri2CreateScreen

driswCreateScreenDriver

driswCreateScreenDriver

dri3_create_screen

dri3_create_screen

git am

  • git am foo.patch
    • 应用补丁 foo.patch (注意与 git apply 的区别,git am 同时会将commit log 也应用上去)
Read more »

npm

hexo 依赖的很多 nodejs 包都过期了,但发现在Ubuntu 23.04 上很难更新(编译node-sass 要用的 python2 都需要自己源码编译安装),索性先搁置吧。

Read more »
0%