Coelacanth's Dream

Mesa3Dドライバーの DriConf について

DriConf は OpenGL に実装された、性能向上や描画品質の変更を目的としたオプションであり、ドライバー/スクリーン/アプリ―ケーションごとに設定できる。
OpenGL API を用いるゲーム/アプリケーションで何らかの問題があった場合、その回避策がオプションとして実装、そのアプリケーションに対してはデフォルトで有効とすることがある。性能が明らかに向上する場合でもデフォルトで有効とされることも。

デフォルトの設定がどうなっているかは、以下のファイルから確認できる。

可変リフレッシュレート (Adaptive Sync) 有効無効の設定もドライバー/スクリーン/アプリケーションごとに設定が可能。

以前はオプションの切り替えに使うツールとして DriConf が標準だったが、今は adriconf がそのポジションにいる。

AMD GPU向けに実装されているオプションには以下のようなものがある。
また、特に性能に影響するものとしてディスパッチをマルチスレッド化する mesa_glthread オプションがある。
これらを試しに有効化し、性能をチューニングすることはユーザーとして 1つの楽しみとも言える。

   #define DRI_CONF_ALLOW_DRAW_OUT_OF_ORDER(def) \
      DRI_CONF_OPT_B(allow_draw_out_of_order, def, \
                     "Allow out-of-order draw optimizations. Set when Z fighting doesn't have to be accurate.")
   /**
    * \brief radeonsi specific configuration options
    */
   
   #define DRI_CONF_RADEONSI_ASSUME_NO_Z_FIGHTS(def) \
      DRI_CONF_OPT_B(radeonsi_assume_no_z_fights, def, \
                     "Assume no Z fights (enables aggressive out-of-order rasterization to improve performance; may cause rendering errors)")
   
   #define DRI_CONF_RADEONSI_COMMUTATIVE_BLEND_ADD(def) \
      DRI_CONF_OPT_B(radeonsi_commutative_blend_add, def, \
                     "Commutative additive blending optimizations (may cause rendering errors)")
   
   #define DRI_CONF_RADEONSI_ZERO_ALL_VRAM_ALLOCS(def) \
      DRI_CONF_OPT_B(radeonsi_zerovram, def, \
                     "Zero all vram allocations")