# Intel Graphics (简体中文)

相关文章

- Intel GMA3600
- Poulsbo
- Xorg

翻译状态： 本文是英文页面 Intel_Graphics 的翻译，最后翻译时间：2013-01-14，点击这里可以查看翻译后英文页面的改动。

由于Intel对X.Org开源驱动的支持，现在所需做的基本上是即插即用。

Intel显卡和相应芯片组、cpu的完整型号参考this comparison on wikipedia。

注意: 开源驱动不支持基于PowerVR的显卡(GMA 500 and GMA 3600 series)。

## 安装

先安装 Xorg，然后安装位于官方软件仓库的 xf86-video-intel 软件包。它提供了用于2D加速的DDX驱动和旧显卡的XvMC视频解码驱动。它依赖于3D加速的DRI驱动（intel-dri）。

要使用新 GPU 的硬件编解码功能，请按装官方软件仓库中的libva-intel-driver软件包，它提供了VA-API驱动。

64位系统需要安装lib32-intel-dri才能在 32 位程序中使用加速功能。

## 配置

没必要做任何形式的配置来运行X.ORG（不需要`xorg.conf`，但若有则要正确配置）。

查看完整选项，输入`man intel`。

## KMS (Kernel Mode Setting,内核模式设置)

运行X和桌面环境如GNOME, KDE, Xfce, LXDE等都需要KMS。在使用i915 DRM驱动的芯片组中，内核2.6.32及以后的内核都默认启用KMS。2.10及更新的{{Pkg|xf86-video-intel}驱动都不支持UMS（旧的810芯片家族例外），且强制使用KMS[1]。通常，KMS是在内核启动后才进行初始化，但也可以在内核启动阶段就启动KMS，这样在整个启动过程中都是原始分辨率。

注意: 必须 在启动配置中移除与KMS相冲突的项，如：`vga` 或 `nomodeset`。

要早启动，添加`i915`模块到`/etc/mkinitcpio.conf`的`MODULES`行：

    MODULES="i915"

然后，重新生成initramfs

    mkinitcpio -p linux

重启系统，一切搞定！

## 技巧

### 选择加速方式

- UXA - (Unified Acceleration Architecture) 是支持GEM驱动模型(GEM driver model)的成熟后端(backend)
- SNA - (Sandybridge's New Acceleration) 在有硬件支持下比UXA更快

现在默认的加速方式为SNA(截至 2013-08-05[2])，比UXA更快，但是稳定性比UXA稍差

DDX驱动可重设你需要的加速方式。Phoronix的基准测试在 [3].Sandy Bridge为[4]，Ivy Bridge为[5]. 若使用SNA有问题，UXA仍为稳妥的选择.

要使用旧的UXA加速方式, 创建包含下列内容的`/etc/X11/xorg.conf.d/20-intel.conf` 就可使用UXA:

    /etc/X11/xorg.conf.d/20-intel.conf

    Section "Device"
       Identifier  "Intel Graphics"
       Driver      "intel"
       Option      "AccelMethod"  "uxa"
    EndSection

### 设置自动缩放模式

在一些全屏应用中此方法适用:

    $ xrandr --output LVDS1 --set PANEL_FITTING param

`param` 可以是:

- `center`: 使用自定义分辨率，不缩放；
- `full`: 使用全屏；
- `full_aspect`: 在长宽比不变的情况下使用最大可用分辨率。

若无效，可尝试:

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

`param`可以是`"Full"`、`"Center"` 或 `"Full aspect"`.

### KMS 问题: 终端面积很小

在启动阶段，启用了低分辨率的接口会导致终端面积很小。通过i915模块设置可解决此问题，具体在加载器的内核参数添加 `video=SVIDEO-1:d`。内核参数的更多信息参考 Kernel parameters .

若无效，可试着禁用 TV1 或 VGA1 接口。

### 在 GMA 4500 硬解 H.264

GMA 4500 平台上，libva-intel-driver 只能硬解 MPEG-2。 H.264 的硬解为另一分支——g45-h264， 在 Arch User Repository 中安装 libva-driver-intel-g45-h264 就OK。 但注意 g45-h264 目前仍处于试验阶段，且开发不活跃。通过 VA-API 会减轻cpu的负载但不如使用非加速方式流畅。 mplayer的测试表明 使用vaapi 播放H.264 编码的 1080p 视频会让cpu的负载减半 (与XV相比) ，但播放很不稳定, 而 720p 则很到位 [6]。其他一些用户也提到这点[7]。

### 设置伽马和亮度

Intel没有提供在驱动层面设置这些值的途径，幸运的是，可通过 `xgamma` 和 `xrandr` 来设置。

设置伽马:

    $ 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
    [...]

这不是性能低下的表现, 这是因为显卡使用了 vertical synchronization, 也就是显示器的原生帧频.

#### 禁用 VSYNC

在`/etc/X11/xorg.conf.d/20-intel.conf` 的 `Section "Device"` 段添加 `Option "SwapbuffersWait" "false"` 可禁用 VSYNC.

在 `~/.drirc` 中将 `vblank_mode` 设为 `0` 并且将 `driver` 设为 `dri2` 也可达到上述效果:

    ~/.drirc

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

### 在启动阶段，当 "Loading modules" 时黑屏

若使用 "late start" KMS ，当 "Loading modules" 时黑屏, 在 initramfs 中添加 `i915` 和 `intel_agp` 可能有帮助. 查看 the above 的 KMS 节.

在尾部添加下面 kernel parameter 可能也会有效果:

    video=SVIDEO-1:d

### 播放视频时屏幕撕裂

若使用 SNA，将下列内容添加到 `/etc/X11/xorg.conf.d/20-intel.conf` 的 `Device` 段可杜绝屏幕撕裂问题。

    Option "TearFree" "true"

### X 冻结/崩溃

使用 `NoAccel` 选项可能对 X 冻结／崩溃或显卡停止工作有效。

    /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

### 添加未识别分辨率

Xrandr page 讲到了此问题。

### 更新到 libGL 9 和 Intel-DRI 9 后，系统变慢

降级软件包 到 Intel-DRI 8 和 libGL 8.

### 视频游戏时出现黑色纹理

启用 S3TC 纹理压缩支持可能会解决此问题。 通过 driconf 或安装 libtxc_dxtn 都可启用。

此问题很快会得到解决，参考 newer drivers

更多 S3TC 信息参考: http://dri.freedesktop.org/wiki/S3TC wikipedia:S3_Texture_Compression

受此影响的其中一个游戏是 Oil Rush

## 更多信息

- http://intellinuxgraphics.org/documentation.html (includes a list of supported hardware)
- KMS — Arch wiki article on kernel mode setting
- Xrandr — If you have problems setting the resolution
- Arch Linux forums: Intel 945GM, Xorg, Kernel - performance

Categories:

- Graphics (简体中文)
- X Server (简体中文)