LINUX.ORG.RU

Сообщения chjohn

 

[SOLVED] S3 Savage + DRI

Форум — Linux-hardware

Добрый день. Пытаюсь запустить X с аппаратным ускорением на Debian (buster) kernel 4.19.0-11-686-pae.

lspci | grep VGA
01:00.0 VGA compatible controller: S3 Grphics Ltd. 86C380 [ProSavageDDR K4M266]

Установил пакет xserver-xorg-video-savage

Сгенерировал xorg.conf с помощью «X -configure» (в разделе Device стоит Driver «savage»)

В секции Screen добавил DefaultDepth 16, якобы direct render на Savage запускается только с 16bit-ным цветом.

При запуске xstart в логах отображается:

SAVAGE(0): Sufficient Videoram available for 3D
SAVAGE(0): DRI isn't enabled
....
Initializing extension GLX
AIGLX: Screen 0 is not DRI2 capable
IGLX: Loaded and initialized swrast
GLS: Initialized DRISWRAST GL proviider for screen0

т.е. видно что используется софтовый рендер. X-ы запускаются glxgears -fullscreen выдает fps 5

После безрезультатных игр с параметрами в секции Device (xorg.conf), решил посмотреть исходники DRV модуля savage.

apt xserver-xorg-video-savage...

Понатыкал отладочных сообщение в savage_driver.c в функции SavageScreenInit (та в свою очередь вызывает SAVAGEDRIScreenInit) и в savage_dri.c функции SAVAGEDRIScreenInit.

Оказалось что в SAVAGEDRIScreenInit, есть проверка:

xf86LoaderCheckSymbol("GlxSetVisualConfigs")

В случае если функция xf86LoaderCheckSymbol возвращает false то SAVAGEDRIScreenInit так же возвращет false, а это в своей очереди указывает в SavageScreenInit что DRI не инициализировался (SAVAGE(0): DRI isn’t enabled).

Причем после проверки xf86LoaderCheckSymbol в коде нету отладочных сообщение, т.е. в логах этого нельзя увидеть.

Поиски показали что вроде как GlxSetVisualConfigs удалили из свежих xorg https://www.mail-archive.com/xorg-devel@lists.x.org/msg53329.html

Закомментировал эту проверку в коде, собрал savage_drv.so заново заменил в модулях xorg

Теперь при старте в логах xorg вот что:

...
[   101.604] (II) SAVAGE(0): psav->NoAccel=false
[   101.604] (II) SAVAGE(0): psav->Chipset is S3_TWISTER true
[   101.604] (II) SAVAGE(0): 4740 kB of Videoram needed for 3D; 32768 kB of Videoram available
[   101.604] (II) SAVAGE(0): Sufficient Videoram available for 3D
[   101.604] (II) SAVAGE(0): Goal #1
[   101.604] (EE) SAVAGE(0): can't load GlxSetVisualConfigs
[   101.609] (II) SAVAGE(0): [drm] bpp: 16 depth: 16
[   101.609] (II) SAVAGE(0): [drm] Sarea 2200+284: 2484
[   101.610] drmOpenDevice: node name is /dev/dri/card0
[   101.616] drmOpenDevice: node name is /dev/dri/card0
[   101.812] drmOpenByBusid: Searching for BusID pci:0000:01:00.0
[   101.812] drmOpenDevice: node name is /dev/dri/card0
[   101.813] drmOpenDevice: open result is 14, (OK)
[   101.814] drmOpenByBusid: drmOpenMinor returns 14
[   101.814] drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
[   101.814] (II) [drm] loaded kernel module for "savage" driver.
[   101.814] (II) [drm] DRM interface version 1.4
[   101.815] (II) [drm] DRM open master succeeded.
[   101.816] (II) SAVAGE(0): [drm] Using the DRM lock SAREA also for drawables.
[   101.816] (II) SAVAGE(0): [drm] framebuffer handle = 0xd0000000
[   101.816] (II) SAVAGE(0): [drm] added 1 reserved context for kernel
[   101.816] (II) SAVAGE(0): X context handle = 0x1
[   101.816] (EE) SAVAGE(0): [drm] failed to setup DRM signal handler
[   101.816] (EE) SAVAGE(0): [drm] DRIScreenInit failed.  Disabling DRI.
[   101.816] (II) SAVAGE(0): SAVAGEDRIScreeInit return false
[   101.816] (II) SAVAGE(0): psav->ShadowStatus == psav->ConfigShadowStatus = true
[   101.816] (EE) SAVAGE(0): DRI isn't enabled
[   102.018] (II) EXA(0): Offscreen pixmap area of 29749248 bytes
[   102.018] (II) EXA(0): Driver registered support for the following operations:
[   102.018] (II)         Solid
[   102.018] (II)         Copy
[   102.018] (II)         UploadToScreen
[   102.018] (II) SAVAGE(0): Savage EXA Acceleration enabled.
[   102.018] (==) SAVAGE(0): Backing store enabled
[   102.026] (==) SAVAGE(0): DPMS enabled
[   102.026] (WW) SAVAGE(0): Direct rendering disabled
....
[   102.065] (II) SELinux: Disabled on system
[   102.065] (II) Initializing extension GLX
[   102.067] (II) AIGLX: Screen 0 is not DRI2 capable
[   103.315] (II) IGLX: Loaded and initialized swrast
[   103.315] (II) GLX: Initialized DRISWRAST GL provider for screen 0
....
[   104.207] (EE) Backtrace:
[   104.209] (EE) 0: /usr/lib/xorg/Xorg (OsLookupColor+0x122) [0x5cd122]
[   104.212] (EE) 1: linux-gate.so.1 (?+0x0) [0xb7f37d77]
[   104.216] (EE) 2: ? (?+0x0) [0xc0000000]
[   104.217] (EE) unw_step failed: unspecified (general) error [-1]
[   104.217] (EE) 
[   104.217] (EE) Segmentation fault at address 0xc0000000
[   104.218] (EE) 
Fatal server error:
[   104.218] (EE) Caught signal 11 (Segmentation fault). Server aborting
[   104.218] (EE) 
[   104.218] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[   104.218] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[   104.218] (EE) 
[   104.504] (EE) Server terminated with error (1). Closing log file.

X-ы не запускаются.

lsmod | grep savage:
savage	32768	0
drm	323584	2	savage

[drm] failed to setup DRM signal handler - что этот за ерунда !?!?!

Может кто подскажет куда дальне копать ?

 , , ,

chjohn
()

RSS подписка на новые темы