Приветствую.
Проблема заключается в следующем: COD:MW2 под Wine'ом с gallium-nine вылетает через несколько секунд после загрузки локации, в выхлопе следующее:
0009:fixme:module:load_dll Loader redirect from L"d3d9.dll" to L"d3d9-nine.dll"
0009:fixme:win:EnumDisplayDevicesW ((null),0,0x32f5e4,0x00000000), stub!
0009:fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x32f5e4,0x00000000), stub!
0009:fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",1,0x32f5e4,0x00000000), stub!
0009:fixme:win:EnumDisplayDevicesW ((null),1,0x32f5e4,0x00000000), stub!
0009:fixme:d3d9nine:d3dadapter9_new
Native Direct3D 9 is active.
For more information visit https://wiki.ixit.cz/d3d9
0009:fixme:system:SystemParametersInfoW Unimplemented action: 59 (SPI_SETSTICKYKEYS)
0009:fixme:system:SystemParametersInfoW Unimplemented action: 53 (SPI_SETTOGGLEKEYS)
0009:fixme:system:SystemParametersInfoW Unimplemented action: 51 (SPI_SETFILTERKEYS)
0009:fixme:win:EnumDisplayDevicesW ((null),0,0x32f9d4,0x00000000), stub!
0009:fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x32f9d4,0x00000000), stub!
0009:fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",1,0x32f9d4,0x00000000), stub!
0009:fixme:win:EnumDisplayDevicesW ((null),1,0x32f9d4,0x00000000), stub!
0009:fixme:d3d9nine:d3dadapter9_new
Native Direct3D 9 is active.
For more information visit https://wiki.ixit.cz/d3d9
0009:fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x32f8e4,0x00000000), stub!
0009:fixme:d3d9nine:DRI3PresentGroup_GetMultiheadCount (0x1bd9e8), stub!
0009:fixme:d3d9nine:DRI3PresentGroup_GetMultiheadCount (0x1bd9e8), stub!
0009:fixme:win:EnumDisplayDevicesW ((null),0,0x32f6e4,0x00000000), stub!
0009:fixme:win:EnumDisplayDevicesW ((null),0,0x32e584,0x00000000), stub!
radeon: The kernel rejected CS, see dmesg for more information (-22).
radeon: The kernel rejected CS, see dmesg for more information (-22).
radeon: The kernel rejected CS, see dmesg for more information (-22).
radeon: The kernel rejected CS, see dmesg for more information (-22).
Ошибка сегментирования (стек памяти сброшен на диск)
dmesg (релевантная часть):
[ 666.807870] [drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
[ 668.137058] radeon 0000:00:01.0: vbo resource seems too big for the bo
[ 668.137070] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:855 texture bo too small (layer size 8388608, offset 0, max layer 1, depth 1, bo size 356352) (1024 2048)
[ 668.137133] [drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
[ 674.250704] Forbidden register 0x0B58 in cs at 10014
[ 674.250766] [drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
[ 674.883699] radeon 0000:00:01.0: vbo resource seems too big for the bo
[ 674.883703] radeon 0000:00:01.0: vbo resource seems too big for the bo
[ 674.883704] radeon 0000:00:01.0: vbo resource seems too big for the bo
[ 674.883706] radeon 0000:00:01.0: vbo resource seems too big for the bo
[ 674.883708] radeon 0000:00:01.0: vbo resource seems too big for the bo
[ 674.883715] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:855 texture bo too small (layer size 16384, offset 0, max layer 6, depth 1, bo size 36864) (64 64)
[ 674.883767] [drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
[ 1448.240558] radeon 0000:00:01.0: vbo resource seems too big for the bo
[ 1448.240567] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:855 texture bo too small (layer size 8388608, offset 0, max layer 1, depth 1, bo size 5308416) (1024 2048)
[ 1448.240630] [drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
[ 1450.782923] [drm:radeon_cs_packet_parse [radeon]] *ERROR* Can not parse packet at 14285 after CS end 14285 !
[ 1450.782945] [drm:evergreen_packet3_check.isra.14 [radeon]] *ERROR* bad SET_RESOURCE (tex)
[ 1450.782961] [drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
[ 1451.015988] radeon 0000:00:01.0: vbo resource seems too big for the bo
[ 1451.015998] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:855 texture bo too small (layer size 8388608, offset 0, max layer 1, depth 1, bo size 5308416) (1024 2048)
[ 1451.016064] [drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
[ 1453.256810] [drm:radeon_cs_packet_parse [radeon]] *ERROR* Can not parse packet at 16150 after CS end 16150 !
[ 1453.256833] [drm:evergreen_packet3_check.isra.14 [radeon]] *ERROR* bad SET_RESOURCE (tex)
[ 1453.256848] [drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
При этом перед вылетом видны артефакты в текстурах игры.
Схожая проблема и с проигрыванием видео через mpv:
AO: [pulse] 48000Hz 5.1(side) 6ch float
Using hardware decoding (vdpau).
VO: [opengl] 1280x536 vdpau[yuv420p]
radeon: The kernel rejected CS, see dmesg for more information (-22).
radeon: The kernel rejected CS, see dmesg for more information (-22).
radeon: The kernel rejected CS, see dmesg for more information (-22)
...
[ 1993.198548] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:916 mipmap [5] bo too small (layer size 1024, offset 870400, coffset 1045504, max layer 1, depth 1, bo size 1044480) level0 (640 136 1)
[ 1993.198551] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:921 problematic surf: (128 4) (1 2 1 0 1 4 3)
[ 1993.198585] [drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
[ 1993.238516] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:916 mipmap [5] bo too small (layer size 1024, offset 870400, coffset 1045504, max layer 1, depth 1, bo size 1044480) level0 (640 136 1)
[ 1993.238520] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:921 problematic surf: (128 4) (1 2 1 0 1 4 3)
[ 1993.238554] [drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
[ 1993.284603] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:916 mipmap [5] bo too small (layer size 1024, offset 870400, coffset 1045504, max layer 1, depth 1, bo size 1044480) level0 (640 136 1)
[ 1993.284607] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:921 problematic surf: (128 4) (1 2 1 0 1 4 3)
В этом случае вылета не происходит, но вместо видео видны лишь артефакты.
Видеокарта Radeon HD 8470D (интегрированная), система Ubuntu 17.10, ядро 4.15.0-041500-generic, на данный момент стоят драйверы/mesa/etc из PPA padoka — до этого я использовал PPA oibaf'а, но проблему это не решило.
Xorg.0.log: https://pastebin.com/qVY5FMvv
glxinfo | grep OpenGL:
OpenGL vendor string: X.Org
OpenGL renderer string: AMD ARUBA (DRM 2.50.0 / 4.15.0-041500-generic, LLVM 7.0.0)
OpenGL core profile version string: 4.3 (Core Profile) Mesa 18.1.0-devel - padoka PPA
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 18.1.0-devel - padoka PPA
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 18.1.0-devel - padoka PPA
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
Гуглинг подсказал, что некоторым удалось решить схожую проблему путём отключения ColorTiling2D в xorg.conf, но мне это решение не помогло. Также я попробовал установить драйверы (xserver-xorg-video-radeon) штатной версии (не из PPA), но эффекта тоже не было — видимо, проблема лежит в другом (Mesa?).
Собственно, как решить эту проблему?
P.S. Судя по S.M.A.R.T., жёсткий диск находится на грани отказа, но я не совсем уверен, связано ли это с моей проблемой.