понедельник, 17 июля 2017 г.

Постепенно темнеющий экран в Left 4 Dead 2

Проблема проявляется на Linux при использовании интегрированной графики Intel. Выражается в слишком тёмной картинке в игре (влоть до невозможности играть в некоторых локациях). Часто можно наблюдать временное скачкообразное возвращение к нормальной (более светлой), например после выхода из "Take a break".
Нормальная картинка (слева) и результат ошибки (справа)
В моём случае железо следующее:
$ lspci -vv
[...]
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09) (prog-if 00 [VGA controller])
    Subsystem: Lenovo Device 381e
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0
    Interrupt: pin A routed to IRQ 45
    Region 0: Memory at c0000000 (64-bit, non-prefetchable) [size=16M]
    Region 2: Memory at b0000000 (64-bit, prefetchable) [size=256M]
    Region 4: I/O ports at 4000 [size=64]
    [virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: i915
    Kernel modules: i915
[...]
Решение проблемы было найдено на Github: https://github.com/ValveSoftware/csgo-osx-linux/issues/443#issuecomment-292732352 (рекомендую перейти по ссылки изучить исходное сообщение):
  1. Отредактировать файл "~/.steam/steam/steamapps/common/Left 4 Dead 2/left4dead2/cfg/video.txt":
    --- ".steam/steam/steamapps/common/Left 4 Dead 2/left4dead2/cfg/video.txt.orig"    2017-07-17 02:48:39.128488026 +0700
    +++ ".steam/steam/steamapps/common/Left 4 Dead 2/left4dead2/cfg/video.txt"    2017-07-17 02:25:26.470538423 +0700
    @@ -18,4 +18,5 @@
         "setting.aspectratiomode"        "1"
         "setting.fullscreen"        "1"
         "setting.nowindowborder"        "0"
    +    "setting.mat_tonemapping_occlusion_use_stencil" "1"
     }
  2. Сделать его недоступным для записи (read-only):
    chmod a-w '.steam/steam/steamapps/common/Left 4 Dead 2/left4dead2/cfg/video.txt'
Надеюсь, эта заметка поможет кому-нибудь найти решение быстрее.