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 はどこへやら、です。
というわけで、最終的にはいつもの負け戦で終わってしまいました。