「Intel graphics」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎トラブルシューティング: 英語版に差し替え)
(Kusanaginoturugi (トーク) による版 15089 を取り消し)
タグ: 取り消し
280行目: 280行目:
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
  +
=== Glxgears のパフォーマンスがでない ===
=== ティアリングの解消 ===
 
   
  +
{{Note|{{ic|glxgears}} は複数のシステム間でのパフォーマンスを比較するためのベンチマークではありません。}}
SNA アクセラレーションメソッドを使っている場合、ティアリングが発生することがあります。これを解消するには、ドライバーの {{ic|"TearFree"}} オプションを有効にしてください:
 
   
  +
グラフィックパフォーマンスを調べるために {{ic|glxgears}} を動かした時、結果が 60 FPS を前後することに気づいたかもしれません。例えば:
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
 
Section "Device"
 
Identifier "Intel Graphics"
 
Driver "intel"
 
Option "TearFree" "true"
 
EndSection}}
 
 
詳しくは [https://bugs.freedesktop.org/show_bug.cgi?id=37686 オリジナルのバグレポート] を見て下さい。
 
 
{{Note|
 
* {{ic|SwapbuffersWait}} が {{ic|false}} のときはこのオプションは機能しません。
 
* オプションを有効にするとメモリの消費量が増えてパフォーマンスが劣化する可能性があります [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c123]。
 
* このオプションを使うと vsync タイミングがピーキーなアプリケーション ([[Wikipedia:Super Meat Boy|Super Meat Boy]] など) で問題が発生します。
 
* このオプションは UXA アクセラレーションメソッドでは動作しません、SNA でしか使えません。
 
}}
 
   
  +
[...]
=== Disable Vertical Synchronization (VSYNC) ===
 
  +
311 frames in 5.0 seconds = 61.973 FPS
  +
311 frames in 5.0 seconds = 62.064 FPS
  +
311 frames in 5.0 seconds = 62.026 FPS
  +
[...]
   
  +
これはパフォーマンスの欠落によるものではありません。ディスプレイのリフレッシュレートにあわせて、[[Wikipedia:Analog television#Vertical synchronization|垂直同期]]を行なっているためです。
Useful when:
 
   
  +
環境変数 {{ic|1=vblank_mode=0}} を付けることで垂直同期を無効にして {{ic|glxgears}} を実行できます:
* Chomium/Chrome has lags and slow performance due to GPU and runs smoothly with --disable-gpu switch
 
* glxgears test does not show desired performance
 
   
  +
$ vblank_mode=0 glxgears
The intel-driver uses [http://www.intel.com/support/graphics/sb/CS-004527.htm Triple Buffering] for vertical synchronization, this allows for full performance and avoids tearing. To turn vertical synchronization off (e.g. for benchmarking) use this {{ic|.drirc}} in your home directory:
 
 
{{hc|~/.drirc|
 
<device screen&#61;"0" driver&#61;"dri2">
 
<application name&#61;"Default">
 
<option name&#61;"vblank_mode" value&#61;"0"/>
 
</application>
 
</device>
 
}}
 
 
{{Note|Do not use {{AUR|driconf}} to create this file. It is buggy and will set the wrong driver.}}
 
 
=== SNA issues ===
 
 
''SNA'' is the default acceleration method in {{Pkg|xf86-video-intel}}. If you experience issues with ''SNA'' (e.g. pixelated graphics, corrupt text, etc.), try using ''UXA'' instead, which can be done by adding the following line to your [[#Xorg configuration|configuration file]]:
 
 
Option "AccelMethod" "uxa"
 
 
See {{man|4|intel}} under {{ic|Option "AccelMethod"}}.
 
   
 
=== DRI3 の問題 ===
 
=== DRI3 の問題 ===
355行目: 326行目:
   
 
video=VGA-1:1280x800
 
video=VGA-1:1280x800
  +
  +
=== ティアリングの解消 ===
  +
  +
SNA アクセラレーションメソッドを使っている場合、ティアリングが発生することがあります。これを解消するには、ドライバーの {{ic|"TearFree"}} オプションを有効にしてください:
  +
  +
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
  +
Section "Device"
  +
Identifier "Intel Graphics"
  +
Driver "intel"
  +
Option "TearFree" "true"
  +
EndSection}}
  +
  +
詳しくは [https://bugs.freedesktop.org/show_bug.cgi?id=37686 オリジナルのバグレポート] を見て下さい。
  +
  +
{{Note|
  +
* {{ic|SwapbuffersWait}} が {{ic|false}} のときはこのオプションは機能しません。
  +
* オプションを有効にするとメモリの消費量が増えてパフォーマンスが劣化する可能性があります [https://bugs.freedesktop.org/show_bug.cgi?id&#61;37686#c123]。
  +
* このオプションを使うと vsync タイミングがピーキーなアプリケーション ([[Wikipedia:Super Meat Boy|Super Meat Boy]] など) で問題が発生します。
  +
* このオプションは UXA アクセラレーションメソッドでは動作しません、SNA でしか使えません。
  +
}}
   
 
=== Intel ドライバで X がフリーズ・クラッシュする ===
 
=== Intel ドライバで X がフリーズ・クラッシュする ===
388行目: 379行目:
 
intel_idle.max_cstate=1
 
intel_idle.max_cstate=1
   
  +
=== 認識されない解像度を追加する ===
=== Baytrail complete freeze ===
 
   
  +
この問題については [[Xrandr#検出されない解像度を追加する|Xrandr のページ]]を参照してください。
If you are using kernel > 3.16 on Baytrail architecture and randomly encounter total system freezes, the following kernel option is a workaround until [https://bugzilla.kernel.org/show_bug.cgi?id=109051 this bug] is fixed in the linux kernel.
 
   
  +
=== libGL 9 と Intel-DRI 9 にアップグレードすると遅くなる ===
intel_idle.max_cstate=1
 
   
  +
Intel-DRI 8 と libGL 8 に[[ダウングレード]]してください。
This is originally an Intel CPU bug that can be triggered by certain c-state transitions. It can also happen with Linux kernel 3.16 or Windows, though apparently much more rarely.
 
The kernel option will prevent the freeze by avoiding c-state transitions but will also increase power consumption.
 
   
  +
=== ビデオゲームでテクスチャが真っ黒 ===
=== 認識されない解像度を追加する ===
 
   
  +
ビデオゲームでテクスチャが黒くなる場合、S3TC テクスチャコンプレッションのサポートを有効にすることで解決できます。{{AUR|driconf}} を使って有効にするか、 {{AUR|libtxc_dxtn}} をインストールしてください。
この問題については [[Xrandr#検出されない解像度を追加する|Xrandr のページ]]を参照してください。
 
  +
  +
この"問題"は[https://www.phoronix.com/scan.php?page=news_item&px=MTIwOTg 新しいドライバ]で修正される予定です。
  +
  +
S3TC についての詳しい情報は:
  +
http://dri.freedesktop.org/wiki/S3TC
  +
http://ja.wikipedia.org/wiki/DXTC
  +
  +
この問題が起こるゲームのひとつは [https://www.phoronix.com/scan.php?page=article&item=unigine_oilrush_gold&num=2 Oil Rush] です。
  +
  +
=== 色が風化する (色空間の問題) ===
  +
  +
{{Note|この問題はカーネル 3.9 の変更に起因しています [https://lists.freedesktop.org/archives/dri-devel/2013-January/033576.html]。カーネル 4.1 でもこの問題は存在します。}}
  +
カーネル 3.9 には Intel ドライバーで簡単に RGB リミテッドレンジの設定ができる変更が含まれており、場合によってはこの変更によって色がおかしくなることがあります。"Broadcast RGB" プロパティの新しい "Automatic" モードに関係しています。
  +
  +
{{ic|xrandr --output <HDMI> --set "Broadcast RGB" "Full"}} ({{ic|<HDMI>}} は適切な出力デバイスに置き換えてください、{{ic|xrandr}} を実行することで確認できます) のようにしてモードを強制することが可能です。これを {{ic |.xprofile}} に追加して、グラフィカルモードが始まる前にコマンドが実行できるように実行可能属性を付けて下さい。
  +
  +
{{Note|TV によっては 16-255 の色しか表示できないため Full に設定すると 0-15 の領域の色が失われます。従って、カラースペースを TV に合わせて圧縮する必要があるかどうか自動的に検知する Automatic のままにしてください。}}
  +
  +
また、GPU のレジスタを編集することで修正できる他の関連する問題も存在します。詳しくは [https://lists.freedesktop.org/archives/intel-gfx/2012-April/016217.html] や [https://github.com/OpenELEC/OpenELEC.tv/commit/09109e9259eb051f34f771929b6a02635806404c] を見て下さい。
   
 
=== 復帰後、バックライトが一部調整できない、もしくは全く調整できない ===
 
=== 復帰後、バックライトが一部調整できない、もしくは全く調整できない ===
434行目: 443行目:
   
 
EndSection}}
 
EndSection}}
  +
  +
=== フレームバッファ圧縮の無効化 ===
  +
  +
Intel Corporation Mobile 4 シリーズのチップセットなど、Sandy Bridge 以前のカードでフレームバッファ圧縮を有効にするとエラーメッセージが延々と表示されます:
  +
  +
$ dmesg | tail
  +
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling
  +
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this
  +
  +
解決方法はフレームバッファ圧縮を無効化することで、これによって少しだけ電力消費が増えます。無効化するには {{ic|i915.enable_fbc&#61;0}} をカーネルラインパラメータに追加してください。圧縮の無効化による効果については [http://zinc.canonical.com/~cking/power-benchmarking/background-colour-and-framebuffer-compression/results.txt ここ] に詳しい情報が載っています。
   
 
=== Chromium や Firefox が壊れる、応答しない ===
 
=== Chromium や Firefox が壊れる、応答しない ===
   
 
Chromium や Firefox の表示がおかしくなったり、反応しなくなる場合は[[#アクセラレーションメソッドの選択|アクセラレーションメソッド]]を "uxa" に設定してみてください。
 
Chromium や Firefox の表示がおかしくなったり、反応しなくなる場合は[[#アクセラレーションメソッドの選択|アクセラレーションメソッド]]を "uxa" に設定してみてください。
  +
  +
=== TTY を切り替えた時に垂直同期がされなくなる ===
  +
  +
カーネル 3.19.3 以降にはリグレッションが存在し (古いカーネルにも存在する可能性あり)、Broadwell のマシンで TTY を切り替えると垂直同期が消失します [https://bugzilla.kernel.org/show_bug.cgi?id=95741]。修正するには、カーネルコマンドラインに {{ic|<nowiki>i915.enable_ips=0</nowiki>}} を追加するか、カーネル 4.1 を使っている場合、[https://cgit.freedesktop.org/drm-intel/commit/?id=184e4c49484501f3061ae9b267af818c6894fea9 こちら] のパッチを使ってカーネルを再ビルドします。メインラインカーネルには 4.2-rc1 で修正が入っています。
  +
  +
=== ビデオやウェブカメラの出力にピンクと緑のゴミが入る ===
  +
  +
Broadwell のマシンで ''xv''出力や Intel Textured Video を使用するアプリケーション (Skype や VLC) を使うと、ビデオストリームにピンクと緑の乱れが入ることがあります。これは Broadwell のビデオの問題で、上流では2015年4月16日に修正されています [https://bugs.freedesktop.org/show_bug.cgi?id=89807]。{{pkg|xf86-video-intel}} をアップデートすると修正されます。
   
 
=== Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする ===
 
=== Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする ===
467行目: 494行目:
 
この問題は execlist のサポート (カーネル 4.0 からデフォルトに変更されました) を無効化することで解決します。以下の[[カーネルパラメータ]]を追加してください:
 
この問題は execlist のサポート (カーネル 4.0 からデフォルトに変更されました) を無効化することで解決します。以下の[[カーネルパラメータ]]を追加してください:
 
i915.enable_execlists=0
 
i915.enable_execlists=0
  +
  +
===Skylake サポート===
  +
  +
i915 DRM ドライバーは様々な GPU のハングアップやクラッシュ、あるいはシステムの完全なフリーズを引き起こすことが知られています。問題を回避するにはハードウェアアクセラレーションを無効化する必要があるかもしれません。解決方法として以下の Xorg 設定を使う方法があります:
  +
  +
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|
  +
Section "Device"
  +
Identifier "Intel Graphics"
  +
Driver "intel"
  +
Option "DRI" "false"
  +
EndSection
  +
}}
  +
  +
もしくは、Chromium や Firefox ブラウザなどアプリケーションごとにハードウェアレンダリングを無効化するように直接設定することも可能です。
  +
  +
{{ic|1=i915.enable_rc6=0}} カーネルブートパラメータを追加することで問題が解決すると報告しているユーザーもいます。このパラメータを使用すると CPU/GPU のハイパワーモードが解除されなくなりますが、GPU のハングアップやシステムのフリーズが解消するようです。
  +
  +
{{Note|"Loading Initial Ramdisk" の後にシステムがフリーズする場合、BIOS で IGD aperture size が 4GB よりも小さくなっていることを確認してください。}}
   
 
=== Windows をゲストとした場合にラグが発生する ===
 
=== Windows をゲストとした場合にラグが発生する ===
479行目: 524行目:
   
 
*カーネルのバージョン 4.6 からパネルセルフリフレッシュ (PSR) はデフォルトで有効になります ({{Bug|49628}} {{Bug|49371}} {{Bug|50605}})。無効化するには {{ic|1=i915.enable_psr=0}} オプションを使ってください。
 
*カーネルのバージョン 4.6 からパネルセルフリフレッシュ (PSR) はデフォルトで有効になります ({{Bug|49628}} {{Bug|49371}} {{Bug|50605}})。無効化するには {{ic|1=i915.enable_psr=0}} オプションを使ってください。
 
=== OpenGL 2.1 with i915 driver ===
 
 
The update of {{Pkg|mesa}} from version 13.x to 17 may break support for OpenGL 2.1 on third gen Intel GPUs (GMA3100, see [[wikipedia:List_of_Intel_graphics_processing_units#Third_generation|here]]), as described in this [http://www.phoronix.com/scan.php?page=news_item&px=Mesa-i915-OpenGL-2-Drop article], reverting it back to OpenGL 1.4. However this could be restored manually by setting {{ic|/etc/drirc}} or {{ic|~/.drirc}} options like:
 
 
{{hc|/etc/drirc|output=
 
<driconf>
 
...
 
<device driver="i915">
 
<application name="Default">
 
<option name="'''stub_occlusion_query'''" value="'''true'''" />
 
<option name="'''fragment_shader'''" value="'''true'''" />
 
</application>
 
</device>
 
...
 
</driconf>
 
}}
 
 
{{Note|the reason of this step back was Chromium and other apps bad experience. If needed, you might edit the drirc file in a "app-specific" style, see [https://dri.freedesktop.org/wiki/ConfigurationInfrastructure/ here], to disable gl2.1 on executable chromium for instance.}}
 
 
=== KMS Issue: console is limited to small area ===
 
 
One of the low-resolution video ports may be enabled on boot which is causing the terminal to utilize a small area of the screen. To fix, explicitly disable the port with an i915 module setting with {{ic|1=video=SVIDEO-1:d}} in the kernel command line parameter in the bootloader. See [[Kernel parameters]] for more info.
 
 
If that does not work, try disabling TV1 or VGA1 instead of SVIDEO-1. Video port names can be listed with [[xrandr]].
 
 
=== Weathered colors (color range problems) ===
 
 
The "Broadcast RGB" property in the Intel driver defines the color range which can be used by the display - either "Limited 16:235" (which limits the color range for some displays that can't properly display all colors) and "Full". Since kernel 3.9, the new default property "Automatic" tries to determine whenever the display supports the full color range, and if it doesn't/detection fails, color range falls back to "Limited 16:235". This results in weathered colors and grey blacks. On some displays/connectors, despite the full color range being supported properly, automatic detection fails and falls back to the limited color range ([https://bugs.freedesktop.org/show_bug.cgi?id=108821 upstream bug report, kernels 4.18-4.20]).
 
 
You can forcefully set the desired color range by running {{ic|xrandr --output <OUT> --set "Broadcast RGB" "Full"}} (replace {{ic|<OUT>}} with the appropriate output device, listed by running {{ic|xrandr}}). There is no way to persist this setting in {{ic|xorg.conf}}.
 
   
 
== 参照 ==
 
== 参照 ==

2019年12月10日 (火) 23:19時点における版

関連記事

Intel はオープンソースドライバの提供とサポートを行なっているので、今日 Intel のグラフィックカードは原則的にプラグアンドプレイです。

Intel の GPU モデル と関連するチップセット・CPU の一覧は Wikipedia の比較を見て下さい。

ノート: PowerVR ベースのグラフィックカード (GMA 3600 シリーズ) はオープンソースドライバではサポートされていません。

目次

インストール

mesa パッケージをインストールしてください。3D アクセラレーションのための DRI ドライバーが含まれています。

  • 32ビットのサポートが必要な場合は multilib リポジトリから lib32-mesa パッケージもインストールしてください。
  • (Xorg で 2D アクセラレーションを得るための) DDX ドライバーが必要な場合は xf86-video-intel パッケージをインストールしてください (推奨されません、下のノートを見てください)。
  • Vulkan のサポートが必要な場合 (Ivy Bridge 以降)、vulkan-intel パッケージをインストールしてください。

ハードウェアビデオアクセラレーションも見てください。

ノート: 複数のディストリビューション (Debian & Ubuntu, Fedora, KDE) から xf86-video-intel ドライバーのインストールは非推奨とされており、第4世代以上の GPU では代わりに modesetting ドライバーを使うことが推奨されています。[1], [2], Xorg#インストール, modesetting(4) などを見てください。ただし、modesetting ドライバーは Chromium Issue 370022 などの問題を引き起こす可能性があります。また、modesetting ドライバーでは Intel GuC/HuC/DMC ファームウェアの恩恵を受けられません。

設定

Xorg を走らせるのに特別な設定は必要ありません。

ノート: 最新世代の内蔵 GPU (Skylake/HD 530 など) は特別な設定が必要です。#Skylake サポートを参照。

ただし、ドライバーのオプションを変更するには、以下のような Xorg 設定ファイルを作成する必要があります:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
EndSection

オプションを追加するときは Driver の下に追加します。

ノート:
  • 設定ファイルを作成するときは Option "AccelMethod" を必ず設定する必要があります。たとえデフォルトのメソッド (現在は "sna") を使用する場合でも設定は必要です。設定がないと X はクラッシュします。
  • 上記の他に、必要に応じて他のデバイスセクションも追加してください。

設定の一覧を見るには、$ man intel と入力してください。

KMS (Kernel Mode Setting)

X を走らせたり GNOME, KDE, Xfce, LXDE などのデスクトップ環境を使うには KMS が必要です。KMS は i915 DRM ドライバを使う Intel チップセットによりサポートされておりカーネル v2.6.32 よりデフォルトで有効にされています。xf86-video-intel ドライバのバージョン 2.10 からは UMS のサポートは打ち切られ (非常に古い 810 チップセットファミリーは例外)、KMS の使用が必須になっています[3]。KMS は基本的にカーネルが起動してから初期化されますが、起動中に KMS を有効にして、全てのブートプロセスを最大解像度で実行することもできます。

ノート: vganomodeset といった既に使用されていないパラメータはブート設定から必ず削除してください。

起動中に KMS を有効にするには /etc/mkinitcpio.confMODULES 行に i915 モジュールを追加します:

MODULES="... i915 ..."
ヒント: 場合によって ACPI のエラーを発生させないように i915 の前に intel_agp を加える必要があることがあります。モジュールの順番は意味があるので気をつけて下さい。

カスタムした EDID ファイルを使っている場合は、EDID ファイルも initramfs に入れる必要があります:

/etc/mkinitcpio.conf
FILES="/lib/firmware/edid/your_edid.bin"

initramfs を再生成します:

# mkinitcpio -p linux

そしてシステムを再起動してください。うまく機能するはずです。

GuC / HuC ファームウェアのロードを有効化

警告: linux 4.18.8 現在、GuC/HuC を有効にすると enable_gvt=1GVT-g グラフィック仮想化を使うことができなくなります。システムジャーナルに i915 モジュールが初期化できないと出力されます:
$ journalctl
... kernel: [drm:intel_gvt_init [i915]] *ERROR* i915 GVT-g loading failed due to Graphics virtualization is not yet supported with GuC submission
... kernel: i915 0000:00:02.0: [drm:i915_driver_load [i915]] Device initialization failed (-5)
... kernel: i915: probe of 0000:00:02.0 failed with error -5
... kernel: snd_hda_intel 0000:00:1f.3: failed to add i915 component master (-19)

Skylake 以降のプロセッサでは、一部のビデオ機能 (例: SKL 低電圧エンコーディングモードの CBR レート制御) を使うには最新の GPU ファームウェアを必要とします。現在のところ (4.16) デフォルトでは有効となっていません。GuC/HuC ファームウェアのロードを有効にすると一部のシステムで問題が発生します。(ハイバネートから復帰したときなどに) フリーズが発生するときは無効化してください。

ノート: Intel プロセッサの世代については [4] を参照。

GuC と HuC 両方のファームウェアのロードを有効にするにはカーネルパラメータi915.enable_guc=2 を追加します。また、initramfsi915 モジュールを含まれている場合 (Kernel Mode Setting#Early KMS start を参照)、/etc/modprobe.d/ のファイルでオプションを設定することでも有効にできます。例:

/etc/modprobe.d/i915.conf
options i915 enable_guc=2

enable_guc=3 モジュールパラメータを使うことで GuC/HuC ファームウェアのロードに加えて GuC のサブミッションも有効になりますが、システムの安定性を損なうことがあるので基本的に非推奨です。

dmesg を使うことで有効になっているかどうか確認できます:

$ dmesg
[drm] HuC: Loaded firmware i915/kbl_huc_ver02_00_1810.bin (version 2.0)
[drm] GuC: Loaded firmware i915/kbl_guc_ver9_39.bin (version 9.39)
i915 0000:00:02.0: GuC firmware version 9.39
i915 0000:00:02.0: GuC submission enabled
i915 0000:00:02.0: HuC enabled

もしくは以下のコマンドで確認:

# cat /sys/kernel/debug/dri/0/i915_huc_load_status
# cat /sys/kernel/debug/dri/0/i915_guc_load_status

モジュールによる省電力設定

i915 カーネルモジュールはモジュールオプションによって設定ができます。モジュールオプションの中には省電力機能に関係するものもあります。

次のコマンドを使うことで全てのオプションとその説明、デフォルト値のリストが出力されます:

$ modinfo -p i915

現在有効になっているオプションを確認するには、次を実行して下さい:

# systool -m i915 -av

多くのオプションはデフォルトで -1 になっており、チップのデフォルトの省電力設定が使われます。ただし、モジュールオプションを使うことでより強力な省電力設定をすることができます。

警告: Linux 3.18 から、デフォルト以外の設定をするとカーネルが tainted になります。基本的に、デフォルト以外の設定オプションは実験的なものであり、開発者によるサポートはありません。

安全に有効にすることができる一般的なオプションは以下のようになります:

/etc/modprobe.d/i915.conf
options i915 enable_rc6=1 enable_fbc=1 semaphores=1

RC6 スリープモード (enable_rc6)

enable_rc6 には 1 よりも大きい値が設定できますが、使用している GPU がオプションをサポートしていなかったり他のオプションを有効にできるなくなる可能性があります [5]

enable_rc6 に設定できる値は 1 (RC6), 2 (RC6p), 4 (RC6pp) のビットマスクです [6]。"RC6p" や "RC6pp" は電力消費がより少ないステートになります。

現在の RC6 レベルを確認するには、sysfs を見てください:

# cat /sys/class/drm/card0/power/rc6_enable

出力された数字が低い場合、おそらく他の RC6 レベルがサポートされていません。drm.debug=0xe を使うことで DRM のデバッグ情報をカーネルログに追加することができます:

[drm:sanitize_rc6_option] Adjusting RC6 mask to 1 (requested 7, valid 1)

フレームバッファ圧縮 (enable_fbc)

フレームバッファの圧縮は Sandy Bridge 以前の古い世代の Intel GPU では信頼性がありません。以下のようなメッセージがないかシステムログをチェックしてください:

kernel: drm: not enough stolen space for compressed buffer, disabling.

ヒントとテクニック

アクセラレーションメソッドの選択

  • UXA - (Unified Acceleration Architecture) は GEM ドライバーモデルを導入した成熟しているバックエンドです。
  • SNA - (Sandybridge's New Acceleration) は高速で先進的なハードウェアサポートを提供します。

デフォルトのメソッドは SNA (2013-08-05[7]) で、UXA よりも不安定ですが高速です。Phoronix によるベンチマーク [8] を見てください。Sandy Bridge のテストIvy Bridge のテスト があります。SNA で問題が発生するなら、UXA は手堅い選択です。例えば、SNA ではフルスクリーンの Flash 動画を終了するときに黒画面になることがあります。

古い UXA メソッドを使いたいならば、次の内容で /etc/X11/xorg.conf.d/20-intel.conf を作って下さい:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"  "uxa"
EndSection

Glamor アクセラレーションメソッドの有効化

Glamor は Intel の実験的な OpenGL 2D アクセラレーションメソッドで、man ページには記載がありません。Glamor を使用するには、以下の行を設定ファイルに追加してください:

Option      "AccelMethod"  "glamor"
ノート: このアクセラレーションメソッドは実験的であり安定して動作するとは限りません。

垂直同期 (VSYNC) を無効にする

垂直同期 (VSYNC) を無効にするには /etc/X11/xorg.conf.d/20-intel.confSection "Device" に Option "SwapbuffersWait" "false" を加えて下さい。

もしくは、~/.drircvblank_mode0 に設定して、driverdri2 にセットします:

~/.drirc
<device screen="0" driver="dri2">
   <application name="Default">
   <option name="vblank_mode" value="0"/>
   </application>
</device>

スケーリングモードの設定

フルスクリーンを使うアプリケーションで有用かもしれません:

$ xrandr --output LVDS1 --set PANEL_FITTING param

選べる param は:

  • center: 解像度は固定され、スケーリングは無効になります
  • full: 画面いっぱいまで解像度がスケールします
  • full_aspect: アスペクト比を維持したままスケールします

機能しない場合、次を試して下さい:

$ xrandr --output LVDS1 --set "scaling mode" param

param"Full", "Center" , "Full aspect" のいずれかです。

ノート: 上記のオプションは外部ディスプレイは現在のところ機能しません (例: VGA, DVI, HDMI, DP) [9]

KMS Issue: コンソールの画面が狭い

起動中に低解像度のビデオが転送されると、ターミナルが使える画面が小さくなることがあります。修正するには、i915 ブートローダのカーネルのコマンドラインパラメータに video=SVIDEO-1:d を加えてはっきりと転送を無効にするよう i915 モジュールを設定してください。詳しい情報はカーネルパラメータを見て下さい。

これが機能しない時は、SVIDEO-1 の代わりに TV1 か VGA1 を無効にするのを試してみて下さい。

有効なビデオ端子を確認する

video カーネルパラメータで無効化したいビデオ端子を識別するには、sysfs でダイレクトレンダリングマネージャモジュールを確認してください:

$ ls -l /sys/class/drm/
total 0
lrwxrwxrwx 1 root root    0 May 17 11:03 card0 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0
lrwxrwxrwx 1 root root    0 May 17 11:03 card0-DP-1 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-1
lrwxrwxrwx 1 root root    0 May 17 11:03 card0-DP-2 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-2
lrwxrwxrwx 1 root root    0 May 17 11:03 card0-eDP-1 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1
lrwxrwxrwx 1 root root    0 May 17 11:03 card0-HDMI-A-1 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-1
lrwxrwxrwx 1 root root    0 May 17 11:03 card0-HDMI-A-2 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-2
lrwxrwxrwx 1 root root    0 May 17 11:03 card0-HDMI-A-3 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-3
lrwxrwxrwx 1 root root    0 May 17 11:03 controlD64 -> ../../devices/pci0000:00/0000:00:02.0/drm/controlD64
lrwxrwxrwx 1 root root    0 May 17 11:03 renderD128 -> ../../devices/pci0000:00/0000:00:02.0/drm/renderD128
-r--r--r-- 1 root root 4096 May 17 11:03 version

各々の端子の状態を確認するには:

$ grep . /sys/class/drm/card?-*/status
/sys/class/drm/card0-DP-1/status:disconnected
/sys/class/drm/card0-DP-2/status:disconnected
/sys/class/drm/card0-eDP-1/status:disconnected
/sys/class/drm/card0-HDMI-A-1/status:disconnected
/sys/class/drm/card0-HDMI-A-2/status:disconnected
/sys/class/drm/card0-HDMI-A-3/status:connected

使用したくないビデオ端子が接続済みになっている場合、上記の video= パラメータで無効化してください (cardN- の後ろの部分が識別子です)。例えば上の例で HDMI-A-3 端子を無効化するには video=HDMI-A-3:d とします。

GMA 4500 での H.264 デコーディング

libva-intel-driver パッケージは GMA 4500 シリーズの GPU だけに MPEG-2 デコーディングを提供します。H.264 デコーディングのサポートは枝分かれした g45-h264 ブランチで維持されていて、AURlibva-intel-driver-g45-h264AUR パッケージをインストールすることで使えます。しかしながらこのサポートは実験的なものであり現在活発には開発されていないことに注意して下さい。GMA 4500 シリーズ GPU のドライバと VA-API を使うことは CPU の負担を下げますが、アクセラレーションが効いていないのと同じで、スムーズに再生できるようにはならないかもしれません。mplayer を使ったテストでは H.264 でエンコードされた 1080p のビデオを vaapi を使って再生したところ (XV オーバーレイに比べて) CPU の負担は下がりましたが、途切れ途切れの再生になりました。一方 720p はうまく動きました [10]。他の報告も同じようなものでした [11]

ffmpeg-gitAURlibva-intel-driver-g45-h264AURmpv-gitAUR を組み合わせることで (1080p/720p の動画を) スムーズに再生できます。Firefox の "Watch with MPV" [12] プラグインと MPV を使うことで YouTube の動画を視聴するときにハードウェア支援が活用できます。

ガンマ値と明るさの設定

ドライバのレベルでこれらを設定する方法はありませんが、幸運なことに xgammaxrandr を使って設定することができます。

ガンマ値を設定するには:

$ xgamma -gamma 1.0

もしくは:

$ xrandr --output VGA1 --gamma 1.0:1.0:1.0

明るさを設定するには:

$ xrandr --output VGA1 --brightness 1.0

トラブルシューティング

Glxgears のパフォーマンスがでない

ノート: glxgears は複数のシステム間でのパフォーマンスを比較するためのベンチマークではありません。

グラフィックパフォーマンスを調べるために glxgears を動かした時、結果が 60 FPS を前後することに気づいたかもしれません。例えば:

[...]
311 frames in 5.0 seconds = 61.973 FPS
311 frames in 5.0 seconds = 62.064 FPS
311 frames in 5.0 seconds = 62.026 FPS
[...]

これはパフォーマンスの欠落によるものではありません。ディスプレイのリフレッシュレートにあわせて、垂直同期を行なっているためです。

環境変数 vblank_mode=0 を付けることで垂直同期を無効にして glxgears を実行できます:

$ vblank_mode=0 glxgears

DRI3 の問題

xf86-video-intel ではデフォルトで DRI3 が使われます。一部の環境では DRI3 によって問題が発生することがあります [13]DRI2 を使うには設定ファイルに以下の行を追加してください:

Option "DRI" "2"

modesetting ドライバーでは上記の方法では DRI3 を無効化することはできません。代わりに LIBGL_DRI3_DISABLE=1 環境変数を設定してください。

GTK+ アプリケーションでフォントや画面の表示がおかしい (サスペンド・復帰後に文字が表示されない)

GTK+ アプリケーションでフォントの文字が表示されなくなってしまう場合、以下の方法で直る可能性があります。/etc/environment編集して以下の行を追加してください:

/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer

詳しくは FreeDesktop bug 88584 を参照。

起動中 "Loading modules" するときに画面がブラックアウトする

KMS の"遅いスタート"を使っているとき "Loading modules" で画面がブラックアウトする場合、initramfs に i915intel_agp を加えると解決するかもしれません。上記の KMS セクションを見て下さい。

または、次のカーネルパラメータを加えるとうまく動くかもしれません:

video=SVIDEO-1:d

VGA に出力する必要があるときは次を使ってみて下さい:

video=VGA-1:1280x800

ティアリングの解消

SNA アクセラレーションメソッドを使っている場合、ティアリングが発生することがあります。これを解消するには、ドライバーの "TearFree" オプションを有効にしてください:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "TearFree"    "true"
EndSection

詳しくは オリジナルのバグレポート を見て下さい。

ノート:
  • SwapbuffersWaitfalse のときはこのオプションは機能しません。
  • オプションを有効にするとメモリの消費量が増えてパフォーマンスが劣化する可能性があります [14]
  • このオプションを使うと vsync タイミングがピーキーなアプリケーション (Super Meat Boy など) で問題が発生します。
  • このオプションは UXA アクセラレーションメソッドでは動作しません、SNA でしか使えません。

Intel ドライバで X がフリーズ・クラッシュする

X のクラッシュや GPU のハングアップ、X のフリーズなどが起こる場合、NoAccel オプションを使って GPU の使用を無効にすることで修復できます:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier "Intel Graphics"
   Driver "intel"
   Option "NoAccel" "True"
EndSection

または、DRI オプションを使って 3D アクセラレーションだけを無効にすることもできます:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier "Intel Graphics"
   Driver "intel"
   Option "DRI" "False"
EndSection

設定ファイルに以下のオプションを使うとクラッシュする場合は:

Option "TearFree" "true"
Option "AccelMethod" "sna"

ブートパラメータに次を追加すると修正できます:

i915.semaphores=1

カーネル 4.0.x 以上で Baytrail アーキテクチャを利用している場合にシステムが何度もフリーズする (特に動画を見たり GFX を集中使用したときに発生する) ようなときは、以下のカーネルオプションを追加することで解決します。詳しくは こちら を参照してください。

intel_idle.max_cstate=1

認識されない解像度を追加する

この問題については Xrandr のページを参照してください。

libGL 9 と Intel-DRI 9 にアップグレードすると遅くなる

Intel-DRI 8 と libGL 8 にダウングレードしてください。

ビデオゲームでテクスチャが真っ黒

ビデオゲームでテクスチャが黒くなる場合、S3TC テクスチャコンプレッションのサポートを有効にすることで解決できます。driconfAUR を使って有効にするか、 libtxc_dxtnAUR をインストールしてください。

この"問題"は新しいドライバで修正される予定です。

S3TC についての詳しい情報は: http://dri.freedesktop.org/wiki/S3TC http://ja.wikipedia.org/wiki/DXTC

この問題が起こるゲームのひとつは Oil Rush です。

色が風化する (色空間の問題)

ノート: この問題はカーネル 3.9 の変更に起因しています [15]。カーネル 4.1 でもこの問題は存在します。

カーネル 3.9 には Intel ドライバーで簡単に RGB リミテッドレンジの設定ができる変更が含まれており、場合によってはこの変更によって色がおかしくなることがあります。"Broadcast RGB" プロパティの新しい "Automatic" モードに関係しています。

xrandr --output <HDMI> --set "Broadcast RGB" "Full" (<HDMI> は適切な出力デバイスに置き換えてください、xrandr を実行することで確認できます) のようにしてモードを強制することが可能です。これを .xprofile に追加して、グラフィカルモードが始まる前にコマンドが実行できるように実行可能属性を付けて下さい。

ノート: TV によっては 16-255 の色しか表示できないため Full に設定すると 0-15 の領域の色が失われます。従って、カラースペースを TV に合わせて圧縮する必要があるかどうか自動的に検知する Automatic のままにしてください。

また、GPU のレジスタを編集することで修正できる他の関連する問題も存在します。詳しくは [16][17] を見て下さい。

復帰後、バックライトが一部調整できない、もしくは全く調整できない

Intel graphics を使っていて製造者によるホットキーで画面の明るさを変えられない場合、次のカーネルパラメータを使って起動してみて下さい:

acpi_backlight=vendor

これで問題が解決されない場合、上のパラメータに加えて:

acpi_osi=Linux

または:

acpi_osi="!Windows 2012"

または:

acpi_osi=

を使うことで解決できるかもしれません。

また、カーネルバージョン 3.13 から、ユーザーによっては効果があるカーネルコマンドラインのパラメータがあります:

video.use_native_backlight=1

上記のどの方法を使っても問題が解決されない場合、以下の内容で /etc/X11/xorg.conf.d/20-intel.conf を編集・作成してください:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
        Identifier  "card0"
        Driver      "intel"
        Option      "Backlight"  "intel_backlight"
        BusID       "PCI:0:2:0"

EndSection

フレームバッファ圧縮の無効化

Intel Corporation Mobile 4 シリーズのチップセットなど、Sandy Bridge 以前のカードでフレームバッファ圧縮を有効にするとエラーメッセージが延々と表示されます:

$ dmesg | tail 
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this

解決方法はフレームバッファ圧縮を無効化することで、これによって少しだけ電力消費が増えます。無効化するには i915.enable_fbc=0 をカーネルラインパラメータに追加してください。圧縮の無効化による効果については ここ に詳しい情報が載っています。

Chromium や Firefox が壊れる、応答しない

Chromium や Firefox の表示がおかしくなったり、反応しなくなる場合はアクセラレーションメソッドを "uxa" に設定してみてください。

TTY を切り替えた時に垂直同期がされなくなる

カーネル 3.19.3 以降にはリグレッションが存在し (古いカーネルにも存在する可能性あり)、Broadwell のマシンで TTY を切り替えると垂直同期が消失します [18]。修正するには、カーネルコマンドラインに i915.enable_ips=0 を追加するか、カーネル 4.1 を使っている場合、こちら のパッチを使ってカーネルを再ビルドします。メインラインカーネルには 4.2-rc1 で修正が入っています。

ビデオやウェブカメラの出力にピンクと緑のゴミが入る

Broadwell のマシンで xv出力や Intel Textured Video を使用するアプリケーション (Skype や VLC) を使うと、ビデオストリームにピンクと緑の乱れが入ることがあります。これは Broadwell のビデオの問題で、上流では2015年4月16日に修正されています [19]xf86-video-intel をアップデートすると修正されます。

Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする

X/Wayland がロードされた数秒間、マシンがフリーズして、journalctl に以下のような Intel Graphics に関連するカーネルのクラッシュログが残ることがあります:

Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at           (null)
Jun 16 17:54:03 hostname kernel: IP: [<          (null)>]           (null)
...
Jun 16 17:54:03 hostname kernel: CPU: 0 PID: 733 Comm: gnome-shell Tainted: G     U     O    4.0.5-1-ARCH #1
...
Jun 16 17:54:03 hostname kernel: Call Trace:
Jun 16 17:54:03 hostname kernel:  [<ffffffffa055cc27>] ? i915_gem_object_sync+0xe7/0x190 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa0579634>] intel_execlists_submission+0x294/0x4c0 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa05539fc>] i915_gem_do_execbuffer.isra.12+0xabc/0x1230 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa055d349>] ? i915_gem_object_set_to_cpu_domain+0xa9/0x1f0 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffff811ba2ae>] ? __kmalloc+0x2e/0x2a0
Jun 16 17:54:03 hostname kernel:  [<ffffffffa0555471>] i915_gem_execbuffer2+0x141/0x2b0 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa042fcab>] drm_ioctl+0x1db/0x640 [drm]
Jun 16 17:54:03 hostname kernel:  [<ffffffffa0555330>] ? i915_gem_execbuffer+0x450/0x450 [i915]
Jun 16 17:54:03 hostname kernel:  [<ffffffff8122339b>] ? eventfd_ctx_read+0x16b/0x200
Jun 16 17:54:03 hostname kernel:  [<ffffffff811ebc36>] do_vfs_ioctl+0x2c6/0x4d0
Jun 16 17:54:03 hostname kernel:  [<ffffffff811f6452>] ? __fget+0x72/0xb0
Jun 16 17:54:03 hostname kernel:  [<ffffffff811ebec1>] SyS_ioctl+0x81/0xa0
Jun 16 17:54:03 hostname kernel:  [<ffffffff8157a589>] system_call_fastpath+0x12/0x17
Jun 16 17:54:03 hostname kernel: Code:  Bad RIP value.
Jun 16 17:54:03 hostname kernel: RIP  [<          (null)>]           (null)

この問題は execlist のサポート (カーネル 4.0 からデフォルトに変更されました) を無効化することで解決します。以下のカーネルパラメータを追加してください:

i915.enable_execlists=0

Skylake サポート

i915 DRM ドライバーは様々な GPU のハングアップやクラッシュ、あるいはシステムの完全なフリーズを引き起こすことが知られています。問題を回避するにはハードウェアアクセラレーションを無効化する必要があるかもしれません。解決方法として以下の Xorg 設定を使う方法があります:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
	Identifier  "Intel Graphics"
	Driver      "intel"
	Option	    "DRI"	"false"
EndSection

もしくは、Chromium や Firefox ブラウザなどアプリケーションごとにハードウェアレンダリングを無効化するように直接設定することも可能です。

i915.enable_rc6=0 カーネルブートパラメータを追加することで問題が解決すると報告しているユーザーもいます。このパラメータを使用すると CPU/GPU のハイパワーモードが解除されなくなりますが、GPU のハングアップやシステムのフリーズが解消するようです。

ノート: "Loading Initial Ramdisk" の後にシステムがフリーズする場合、BIOS で IGD aperture size が 4GB よりも小さくなっていることを確認してください。

Windows をゲストとした場合にラグが発生する

VirtualBox でホスト側から(マウスカーソルを動かすなどして)画面を更新しないと Windows ゲストのビデオ出力が止まってしまうことがあります。enable_fbc=1 オプションを削除すれば問題は解決します。

画面がちらつく

Intel の iGPU によって使われている省電力機能の中にはちらつきを発生させるものがあります。適切なカーネルパラメータオプションを使って無効化することで解決できます:

  • カーネルのバージョン 4.6 からパネルセルフリフレッシュ (PSR) はデフォルトで有効になります (FS#49628 FS#49371 FS#50605)。無効化するには i915.enable_psr=0 オプションを使ってください。

参照