Mesa 24.1 から Zink がデフォルトになる?という噂を聞きつけ、Zink で OpenGL 処理を動かしてみることにしました。
アプリケーションは従来どおりに OpenGL API を発行するものの、それを受け取るドライバー側で Vulkan API にすり替えるというのが Zink です。パッと見はネイティブな OpenGL 処理よりもオーバーヘッドがあって遅そうなんですが、Zink ドライバーがデフォルトで有効化されるということはだいぶパフォーマンスが向上してきた、ということなんでしょうか。
とりあえずやってみた
$ MESA_LOADER_DRIVER_OVERRIDE=zink glxinfo -B name of display: :0 DRI3 not available failed to load driver: zink DRI3 not available failed to load driver: zink DRI3 not available failed to load driver: zink DRI3 not available failed to load driver: zink DRI3 not available failed to load driver: zink DRI3 not available failed to load driver: zink DRI3 not available failed to load driver: zink Error: couldn't find RGB GLX visual or fbconfig DRI3 not available failed to load driver: zink DRI3 not available failed to load driver: zink
はい、失敗です。
ん〜、なんでですかね?
エラーメッセージを元に対応方法を調べてみると、どうやら xserver-xorg-video-amdgpu というパッケージを削除するといいらしいです。
ホントかしら?
再びやってみた
片足を突っ込んでいるので突き進んでみました。
$ MESA_LOADER_DRIVER_OVERRIDE=zink glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Mesa (0x1002)
Device: zink Vulkan 1.3(AMD Radeon Graphics (RADV RENOIR) (MESA_RADV)) (0x1638)
Version: 23.3.5
Accelerated: yes
Video memory: 13431MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
VBO free memory - total: 13362 MB, largest block: 13362 MB
VBO free aux. memory - total: 6713 MB, largest block: 6713 MB
Texture free memory - total: 13362 MB, largest block: 13362 MB
Texture free aux. memory - total: 6713 MB, largest block: 6713 MB
Renderbuffer free memory - total: 13362 MB, largest block: 13362 MB
Renderbuffer free aux. memory - total: 6713 MB, largest block: 6713 MB
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 13431 MB
Total available memory: 20147 MB
Currently available dedicated video memory: 13362 MB
OpenGL vendor string: Mesa
OpenGL renderer string: zink Vulkan 1.3(AMD Radeon Graphics (RADV RENOIR) (MESA_RADV))
OpenGL core profile version string: 4.6 (Core Profile) Mesa 23.3.5-1
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6 (Compatibility Profile) Mesa 23.3.5-1
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 23.3.5-1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
おお、成功しましたよ。Zink で動いてますね。
いよいよ本丸
ここまでくれば勝ったも同然です。実アプリケーションでも試すということで Firefox を Zink で動かしてみます。
![]() |
| WebRender が Software に・・・ |
Zink で動いたものの WebRender が Software モードになってしまい、GPU を使ってくれません。CPU ががんばっています。Vulkan はどこへやら、です。
というわけで、最終的にはいつもの負け戦で終わってしまいました。
