ProSavage DDR-K: poor performance with Xorg 7.4

Gianni Trevisti gipunto at gmail.com
Sat Apr 4 13:23:30 PDT 2009


Hello.
I recently switched from OpenSuse 10.3 (Xorg 7.2.0) to OpenSuse 11.1 (Xorg 7.4).
The new Xorg is a lot slower then the old one.
Then I tried Kubuntu 8.10, that runs Xorg 7.4 and gives me the same
poor performance of the Suse 11.1 one.

I'm running a Fujitsu Siemens C1020 laptop

the lspci output the my card is:
01:00.0 VGA compatible controller: S3 Inc. VT8375 [ProSavage8 KM266/KL266]

following is some x11perf comparison between Xorg 7.2 and 7.4 on the
same laptop:
----------------------------------------------------------
x1perf --copypixwin500
Xorg 7.2: 804.0/sec [disabling XAA acceleration I got more than 200]
Xorg 7.4: 122.0/sec

x11perf --putimagexy500
Xorg 7.2: 0.6/sec
Xorg 7.4: 0.2/sec [I got 0.6 disabling XAA acceleration!]
----------------------------------------------------------

The xorg.conf of both version are the ones generated by the Suse SaX tool.
The Device section of my xorg.conf is:
----------------------------------------------------------
Section "Device"
  BoardName    "ProSavage DDR-K"
  Driver       "savage"
  Identifier   "Device[0]"
  Screen       0
  VendorName   "S3"
EndSection
----------------------------------------------------------

Some relevant lines from /var/log/Xorg.0.log
----------------------------------------------------------
X.Org X Server 1.5.2
Release Date: 10 October 2008
X Protocol Version 11, Revision 0
Build Operating System: openSUSE SUSE LINUX
Current Operating System: Linux linux-hwfd 2.6.27.19-3.2-pae #1 SMP
2009-02-25 15:40:44 +0100 i686
Build Date: 27 February 2009  02:03:33PM

(II) LoadModule: "dri"

(II) Loading /usr/lib/xorg/modules//extensions/libdri.so
(II) Module dri: vendor="X.Org Foundation"
        compiled for 1.5.2, module version = 1.0.0
        ABI class: X.Org Server Extension, version 1.1
(II) Loading extension XFree86-DRI

(II) LoadModule: "savage"

(II) Loading /usr/lib/xorg/modules//drivers/savage_drv.so
(II) Module savage: vendor="X.Org Foundation"
        compiled for 1.5.2, module version = 2.2.1
        Module class: X.Org Video Driver
        ABI class: X.Org Video Driver, version 4.1

(**) SAVAGE(0): Depth 16, (--) framebuffer bpp 16
(==) SAVAGE(0): RGB weight 565
(==) SAVAGE(0): Default visual is TrueColor
(II) SAVAGE(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000
(==) SAVAGE(0): Using XAA acceleration architecture
(==) SAVAGE(0): Using HW cursor
(==) SAVAGE(0): Using video BIOS to set modes

(II) SAVAGE(0): initializing int10
(II) SAVAGE(0): Primary V_BIOS segment is: 0xc000
(II) SAVAGE(0): VESA BIOS detected
(II) SAVAGE(0): VESA VBE Version 3.0
(II) SAVAGE(0): VESA VBE Total Mem: 15296 kB
(II) SAVAGE(0): VESA VBE OEM: S3 Graphics ProSavage DDR Family BIOS
(II) SAVAGE(0): VESA VBE OEM Software Rev: 2.0
(II) SAVAGE(0): VESA VBE OEM Vendor: S3 Garphics Incorporated.
(II) SAVAGE(0): VESA VBE OEM Product: VBE 3.0
(II) SAVAGE(0): VESA VBE OEM Product Rev: Rev 0.0
(--) SAVAGE(0): Chip: id 8d04, "ProSavage DDR-K"
(--) SAVAGE(0): Engine: "ProSavageDDR"
(--) SAVAGE(0): AGP card detected
(==) SAVAGE(0): Using AGP DMA
(==) SAVAGE(0): Will try command and vertex DMA mode
(==) SAVAGE(0): Using AGP 1x mode
(==) SAVAGE(0): Using 16 MB AGP aperture
(==) SAVAGE(0): Using gamma correction (1.0, 1.0, 1.0)
(--) SAVAGE(0): probed videoram:  16384k
(II) Loading sub module "ddc"
(II) LoadModule: "ddc"
(II) Module "ddc" already built-in
(--) SAVAGE(0): No DDC signal
(II) Loading sub module "i2c"
(II) LoadModule: "i2c"
(II) Module "i2c" already built-in
(II) SAVAGE(0): I2C bus "I2C bus" initialized.
(II) SAVAGE(0): I2C device "I2C bus:ddc2" registered at address 0xA0.
(II) SAVAGE(0): I2C device "I2C bus:ddc2" removed.
(--) SAVAGE(0): Detected current MCLK value of 14.318 MHz
(--) SAVAGE(0): 1024x768 TFT LCD panel detected and active
(--) SAVAGE(0): - Limiting video mode to 1024x768
(--) SAVAGE(0): Found 13 modes at this depth:
                           (...)

(II) Loading /usr/lib/xorg/modules//libxaa.so
(II) Module xaa: vendor="X.Org Foundation"
        compiled for 1.5.2, module version = 1.2.1
        ABI class: X.Org Video Driver, version 4.1
(II) Loading sub module "ramdac"
(II) LoadModule: "ramdac"
(II) Module "ramdac" already built-in
(II) do I need RAC?  No, I don't.

(II) Reloading /usr/lib/xorg/modules//libint10.so
(II) SAVAGE(0): initializing int10
(II) SAVAGE(0): Primary V_BIOS segment is: 0xc000
(II) SAVAGE(0): VESA BIOS detected
(II) SAVAGE(0): VESA VBE Version 3.0
(II) SAVAGE(0): VESA VBE Total Mem: 15296 kB
(II) SAVAGE(0): VESA VBE OEM: S3 Graphics ProSavage DDR Family BIOS
(II) SAVAGE(0): VESA VBE OEM Software Rev: 2.0
(II) SAVAGE(0): VESA VBE OEM Vendor: S3 Garphics Incorporated.
(II) SAVAGE(0): VESA VBE OEM Product: VBE 3.0
(II) SAVAGE(0): VESA VBE OEM Product Rev: Rev 0.0
(II) SAVAGE(0): 4740 kB of Videoram needed for 3D; 16384 kB of
Videoram available
(II) SAVAGE(0): Sufficient Videoram available for 3D
(II) SAVAGE(0): [drm] bpp: 16 depth: 16
(II) SAVAGE(0): [drm] Sarea 2200+284: 2484
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 10, (OK)
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 10, (OK)
drmOpenByBusid: Searching for BusID pci:0000:01:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 10, (OK)
drmOpenByBusid: drmOpenMinor returns 10
drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
(II) [drm] DRM interface version 1.3
(II) [drm] DRM open master succeeded.
(II) SAVAGE(0): [drm] Using the DRM lock SAREA also for drawables.
(II) SAVAGE(0): [drm] framebuffer handle = 0x90000000
(II) SAVAGE(0): [drm] added 1 reserved context for kernel
(II) SAVAGE(0): X context handle = 0x1
(II) SAVAGE(0): [drm] installed DRM signal handler
(II) SAVAGE(0): [agp] Mode 0x1f000201 [AGP 0x1106/0x3148; Card 0x5333/0x8d04]
(II) SAVAGE(0): [agp] 16384 kB allocated with handle 0x00000001
(II) SAVAGE(0): [agp] command DMA handle = 0xa0000000
(II) SAVAGE(0): [agp] agpTextures handle = 0xa0100000
(II) SAVAGE(0): [drm] aperture handle = 0x92000000
(II) SAVAGE(0): [drm] Enabling ShadowStatus for DRI.
(II) SAVAGE(0): [drm] Status handle = 0x28962000
(II) SAVAGE(0): [drm] Status page mapped at 0xb17f5000
(II) SAVAGE(0): [dri] visual configs initialized
(**) SAVAGE(0): DRI is enabled
(--) SAVAGE(0): Chose mode 117 at 60Hz.
(II) SAVAGE(0): virtualX:1024,virtualY:768
(II) SAVAGE(0): bpp:16,tiledwidthBytes:2048,tiledBufferSize:1572864
(II) SAVAGE(0): bpp:16,widthBytes:2048,BufferSize:1572864
(II) SAVAGE(0): videoRambytes:0x01000000
(II) SAVAGE(0): textureSize:0x0095f000
(II) SAVAGE(0): textureSize:0x0095f000
(II) SAVAGE(0): textureOffset:0x00680000
(II) SAVAGE(0): depthOffset:0x00500000,depthPitch:2048
(II) SAVAGE(0): backOffset:0x00380000,backPitch:2048
(II) SAVAGE(0): Reserved back buffer at offset 0x380000
(II) SAVAGE(0): Reserved depth buffer at offset 0x500000
(II) SAVAGE(0): Reserved 9596 kb for textures at offset 0x680000
(II) SAVAGE(0): Using 1023 lines for offscreen memory.
(II) SAVAGE(0): Using XFree86 Acceleration Architecture (XAA)
        Screen to screen bit blits
        Solid filled rectangles
        8x8 mono pattern filled rectangles
        Indirect CPU to Screen color expansion
        Solid Lines
        Image Writes
        Setting up tile and stipple cache:
                28 128x128 slots
                7 256x256 slots
(==) SAVAGE(0): Backing store disabled
(**) Option "dpms"
(**) SAVAGE(0): DPMS enabled
(II) SAVAGE(0): [DRI] installation complete
(II) SAVAGE(0): [junkers]pSAVAGEDRIServer:
(II) SAVAGE(0): [junkers]       reserved_map_agpstart:0x00000000
(II) SAVAGE(0): [junkers]       reserved_map_idx:0x00000000
(II) SAVAGE(0): [junkers]       sarea_priv_offset:0x00000000
(II) SAVAGE(0): [junkers]       chipset:0x00000000
(II) SAVAGE(0): [junkers]       sgram:0x00000000
(II) SAVAGE(0): [junkers]       frontbufferSize:0x00180000
(II) SAVAGE(0): [junkers]       frontOffset:0x00000000
(II) SAVAGE(0): [junkers]       frontPitch:0x00000800
(II) SAVAGE(0): [junkers]       backbufferSize:0x00180000
(II) SAVAGE(0): [junkers]       backOffset:0x00380000
(II) SAVAGE(0): [junkers]       backPitch:0x00000800
(II) SAVAGE(0): [junkers]       depthbufferSize:0x00180000
(II) SAVAGE(0): [junkers]       depthOffset:0x00500000
(II) SAVAGE(0): [junkers]       depthPitch:0x00000800
(II) SAVAGE(0): [junkers]       textureOffset:0x00680000
(II) SAVAGE(0): [junkers]       textureSize:0x0095f000
(II) SAVAGE(0): [junkers]       textureSize:0x0095f000
(II) SAVAGE(0): [junkers]       logTextureGranularity:0x00000000
(II) SAVAGE(0): [junkers]       agp:handle:0x00000001
(II) SAVAGE(0): [junkers]       agp:offset:0x01000000
(II) SAVAGE(0): [junkers]       agp:size:0x01000000
(II) SAVAGE(0): [junkers]       agp:map:0x00000000
(II) SAVAGE(0): [junkers]       registers:handle:0xe0000000
(II) SAVAGE(0): [junkers]       registers:offset:0x00000000
(II) SAVAGE(0): [junkers]       registers:size:0x00080000
(II) SAVAGE(0): [junkers]       registers:map:0x00000000
(II) SAVAGE(0): [junkers]       status:handle:0x28962000
(II) SAVAGE(0): [junkers]       status:offset:0x00000000
(II) SAVAGE(0): [junkers]       status:size:0x00001000
(II) SAVAGE(0): [junkers]       status:map:0xb17f5000
(II) SAVAGE(0): [junkers]       agpTextures:handle:0xa0100000
(II) SAVAGE(0): [junkers]       agpTextures:offset:0x00100000
(II) SAVAGE(0): [junkers]       agpTextures:size:0x00f00000
(II) SAVAGE(0): [junkers]       apgTextures:map:0x00000000
(II) SAVAGE(0): [junkers]       logAgpTextureGranularity:0x00000000
(II) SAVAGE(0): [junkers]       cmdDma:handle:0xa0000000
(II) SAVAGE(0): [junkers]       cmdDma:offset:0x00000000
(II) SAVAGE(0): [junkers]       cmdDma:size:0x00100000
(II) SAVAGE(0): [junkers]       cmdDma:map:0x00000000
(II) SAVAGE(0): [junkers]pSAVAGEDRI:
(II) SAVAGE(0): [junkers]       chipset:0x00000006
(II) SAVAGE(0): [junkers]       width:0x00000400
(II) SAVAGE(0): [junkers]       height:0x00000300
(II) SAVAGE(0): [junkers]       mem:0x01000000
(II) SAVAGE(0): [junkers]       cpp:2
(II) SAVAGE(0): [junkers]       zpp:2
(II) SAVAGE(0): [junkers]       agpMode:1
(II) SAVAGE(0): [junkers]       bufferSize:65536
(II) SAVAGE(0): [junkers]       frontbufferSize:0x00180000
(II) SAVAGE(0): [junkers]       frontOffset:0x00000000
(II) SAVAGE(0): [junkers]       backbufferSize:0x00180000
(II) SAVAGE(0): [junkers]       backOffset:0x00380000
(II) SAVAGE(0): [junkers]       depthbufferSize:0x00180000
(II) SAVAGE(0): [junkers]       depthOffset:0x00500000
(II) SAVAGE(0): [junkers]       textureOffset:0x00680000
(II) SAVAGE(0): [junkers]       textureSize:0x00900000
(II) SAVAGE(0): [junkers]       logTextureGranularity:0x00000014
(II) SAVAGE(0): [junkers]       agpTextureHandle:0xa0100000
(II) SAVAGE(0): [junkers]       agpTextureSize:0x00f00000
(II) SAVAGE(0): [junkers]       logAgpTextureGranularity:0x00000014
(II) SAVAGE(0): [junkers]       apertureHandle:0x92000000
(II) SAVAGE(0): [junkers]       apertureSize:0x05000000
(II) SAVAGE(0): [junkers]       aperturePitch:0x00001000
(II) SAVAGE(0): [junkers]       statusHandle:0x28962000
(II) SAVAGE(0): [junkers]       statusSize:0x00001000
(II) SAVAGE(0): [junkers]       sarea_priv_offset:0x00000898
(II) SAVAGE(0): Direct rendering enabled
(WW) SAVAGE(0): Option "PreferredMode" is not used
(==) RandR enabled
----------------------------------------------------------

I did a lot of trials, like disable XAA, disable DRI, recompile savage
driver from source, but with no performance improvement.

Any idea?

Thanks a lot!

Gianni



More information about the xorg mailing list