Severe performance regression with xserver 1.15
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libsdl1.2 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
xorg-server (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
With Xserver 1.15, OpenGL performance in all games is reduced by almost half, at least with both Radeon/r600g driver Not sure which actual package has the issue. As long a hyper-z is explicitly enabled, mesa version 10.2 (from oibaf PPA) does not change this regression. With hyper-z disabled (the new default) another 10-20% reduction in performance resulted after an approximately 40% loss from the new x server.
Critter still ran faster than the screen refresh rate, so it was not a matter of vblank sync being enabled due to any effect of the dri3 transition on an unchanged ~/.drirc . I am still wondering, however, if the DRI3 transition is the source of this severe performance loss.
Package tested:
xserver-
Is the version of xserver-xorg-core tested against the last 1.14 version I have back to back with same mesa and kernel versions. Framerates in both Critter and Scorched3d were cut roughly in half, 0ad is CPU bound and mimimally affected. I don't have any other GPU intensive games nor the bandwidth to download them so cannot benchmark them.
CPUs tested have been AMD FX-8120 and Phenom II x4
GPU's have been Radeon HD6750 and HD5770
proprietary drivers have NOT been tested
Here are the configuration files used with the AMD based desktops:
I use this xorg,conf file:
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "AccelerationSc
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
EndSection
Section "Device"
Identifier "Device0"
Driver "radeon"
Option "SwapbuffersWait" "off" #not the default
Option "ColorTiling" "on"
Option "ColorTiling2d" "on" #not the default
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080"
EndSubSection
EndSection
And this ~/.drirc:
<driconf>
<device screen="0" driver="dri2">
<option name="fthrottle
<option name="pp_celshade" value="0" />
<option name="pp_
<option name="pp_
<option name="vblank_mode" value="0" />
<option name="pp_nored" value="0" />
<option name="pp_nogreen" value="0" />
<option name="allow_
<option name="pp_noblue" value="0" />
<option name="vblank_mode" value="1" />
<option name="vblank_mode" value="1" />
<option name="vblank_mode" value="1" />
<option name="vblank_mode" value="1" />
<option name="vblank_mode" value="1" />
<option name="vblank_mode" value="0" />
<option name="vblank_mode" value="0" />
<option name="vblank_mode" value="0" />
</device>
<device screen="0" driver="r600">
<option name="fthrottle
<option name="pp_celshade" value="0" />
<option name="pp_
<option name="pp_
<option name="vblank_mode" value="1" />
<option name="force_
<option name="pp_nored" value="0" />
<option name="pp_nogreen" value="0" />
<option name="allow_
<option name="pp_noblue" value="0" />
</device>
</driconf>
And this ~/.profile is used to enable hyper-Z and ensure the sb backend is used in Mesa:
export R600_DEBUG=sb
export R600_HYPERZ=1
Updates from 3/17 Xorg benchmarking:
On 3-17-2014, I updated X to the latest Trusty packages (xserver- xorg-core= xserver- xorg-core_ 2%3a1.15. 0-1ubuntu7_ amd64.deb) and retested.
The Critter benchmark may not be of any great importance as it is a 2d game in Opengl that runs very fast, but the regression is on the order of a 49% drop in framerate. This is absolutely repeatable (on two different machines) by leaving only one opponent on the screens and intentionally permitting all shields to be destroyed.
The Scorched3d benchmark gave inconsistant results. With the previous X server, I was getting 50-70fps, with the new version I sometimes got 25-35fps, but sometimes got right back to the 50-70fps range, though the highest speeds did not appear as often as with the older version of X. Scorched3d can be a bit difficult to benchmark as which map appears cannot be controlled.
In February I got nearly unplayable results in Scorched3d (11-25fps), though some of that was a since-resolved hardware issue and some was the hyper-Z issue with the first versions of Mesa 10.2 installed at that time. No change at all in Critter on Radeon, don't know if these results will translate into regressions on openGL loads I do not have or not.
On my Intel Atom netbook, by comparsion, Critter is barely playable due to dropped frames. When the new xserver came out, it was worse, I remember just over 60fps but with worse framedropping than ever. Now about 110 fps on the netbook with fewer dropped frames.
My conclusion is that some progress might be being made somewhere, but I don't know what changes in what package are helping if any.