View Single Post
Old 04-14-12, 05:37 AM   #9
lexa2
Registered User
 
Join Date: Jul 2011
Location: Moscow, Russian Federation
Posts: 58
Send a message via ICQ to lexa2 Send a message via Skype™ to lexa2
Default Re: Major FPS drop in Unigine Heaven (native linux binary) under dual-monitor Xineram

sandpit, sorry for not responding here for a long time, I have been off on vacation being too busy drinking vodka and playing balalaika to do the requested tests :-). Today I finally had managed to find some time for this task, so here are the results.

I can state that the huge FPS drop still happens with drivers 295.40 when Xserver is configured to use dual-head Xinarama setup. I've been told by a person on another forum that "IndirectMemoryAccess" setting might have an influence on this drop, so the test I did include two variants for each case, one having this option set to "False" and another with it set to "True".

In attachment to this post you could find all the requested results. It is a zip archive containing 6 HTML benchmark result reports generated by Unigine Heaven benchmark.

Benchmarking was conducted as following:
1. Remove installed copy of Unigine Heaven if exists, proceed with a fresh install (rm -rf <install-dir> && ./Unigine_Heaven-2.5.run --target <install-dir>).
2. Reconfigure and restart X server, check Xorg.0.log to be sure that the requested configuration is being used.
3. Start up Unigine Heaven benchmark using it's default configuration by executing bundled startup script named "x86_1024x768_windowed_tess_disabled.sh".
4. As soon as Unigine Heaven finishes it's loading tasks - press "Benchmark" button and wait for benchmark to finish.
5. Save the benchmark report into HTML file using appropriate button.
6. Repeat steps 1-5 for each Xserver configuration to be tested.

Here are Xorg configs that had been used as a templates during testing process:
Single head single screen setup:
Code:
Section "ServerLayout"
    Identifier "Default Layout"
    Screen "Screen0" 0 0
    Option "Xinerama" "off"
EndSection

Section "Extensions"
    Option "Composite" "Disable"
EndSection

Section "Device"
    Identifier "Videocard0"
    Driver "nvidia"
    Option "TwinView" "False"
    Option "NoLogo" "True"
    Option "Coolbits" "1"
    Option "RenderAccel" "True"
    Option "DamageEvents" "True"
    Option "AddARGBGLXVisuals" "True"
    Option "UseEvents" "True"
    Option "TripleBuffer" "False"
    Option "IndirectMemoryAccess" "False"
#    Option "IndirectMemoryAccess" "True"
    Option "InitializeWindowBackingPixmaps" "True"
    Option "ConnectToAcpid" "False"
    Option "GLShaderDiskCache" "True"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"
    DefaultDepth 24
    Option "UseDisplayDevice" "CRT-0"
    SubSection "Display"
        Depth 24
        Modes "1680x1050" "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection
TwinView dual-head config:
Code:
Section "Device"
    Identifier "Videocard0"
    Driver "nvidia"
    Option "TwinView" "True"
    Option "TwinViewXineramaInfoOrder" "CRT-0"
    Option "NoLogo" "True"
    Option "Coolbits" "1"
    Option "MetaModes" "CRT-0: 1680x1050 +0+0, CRT-1: 1280x1024 +1680+0; CRT-0: 1680x1050 +0+0, CRT-1: NULL; CRT-0: 1440x900 +0+0, CRT-1: NULL; CRT-0: 1280x1024 +0+0, CRT-1: 1280x1024 +1280+0; CRT-0: 1280x10
    Option "IncludeImplicitMetaModes" "False"
    Option "RenderAccel" "True"
    Option "DamageEvents" "True"
    Option "AddARGBGLXVisuals" "True"
    Option "UseEvents" "True"
    Option "TripleBuffer" "False"
#    Option "IndirectMemoryAccess" "False"
    Option "IndirectMemoryAccess" "True"
    Option "PanAllDisplays" "False"
    Option "InitializeWindowBackingPixmaps" "True"
    Option "ConnectToAcpid" "False"
    Option "GLShaderDiskCache" "True"
EndSection
Xinerama dual-head config:
Code:
Section "ServerLayout"
    Identifier "Default Layout"
    Screen "Screen0" 0 0
    Screen "Screen1" RightOf "Screen0"
    Option "Xinerama" "on"
EndSection

Section "Extensions"
    Option "Composite" "Disable"
EndSection

Section "Device"
    Identifier "Videocard0"
    Driver "nvidia"
    Option "TwinView" "False"
    Option "NoLogo" "True"
    Option "Coolbits" "1"
    Option "RenderAccel" "True"
    Option "DamageEvents" "True"
    Option "AddARGBGLXVisuals" "True"
    Option "UseEvents" "True"
    Option "TripleBuffer" "False"
#    Option "IndirectMemoryAccess" "False"
    Option "IndirectMemoryAccess" "True"
    Option "InitializeWindowBackingPixmaps" "True"
    Option "ConnectToAcpid" "False"
    Option "GLShaderDiskCache" "True"
EndSection

Section "Device"
    Identifier "Videocard1"
    Driver "nvidia"
    Screen 1
    Option "TwinView" "False"
    Option "NoLogo" "True"
    Option "Coolbits" "1"
    Option "RenderAccel" "True"
    Option "DamageEvents" "True"
    Option "AddARGBGLXVisuals" "True"
    Option "UseEvents" "True"
    Option "TripleBuffer" "False"
#    Option "IndirectMemoryAccess" "False"
    Option "IndirectMemoryAccess" "True"
    Option "InitializeWindowBackingPixmaps" "True"
    Option "ConnectToAcpid" "False"
    Option "GLShaderDiskCache" "True"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"
    DefaultDepth 24
    Option "UseDisplayDevice" "CRT-0"
    SubSection "Display"
        Depth 24
        Modes "1680x1050" "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

Section "Screen"
    Identifier "Screen1"
    Device "Videocard1"
    DefaultDepth 24
    Option "UseDisplayDevice" "CRT-1"
    SubSection "Display"
        Depth 24
        Modes "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection
Benchmark results were about 71 FPS for TwinView and single head single screen setup, while using dual-head Xinerama setup resulted in FPS drop down to ~30. Using different values for "IndirectMemoryAccess" option proved not to show any significant difference.
Attached Files
File Type: zip unigine_heaven_test_reports.zip (7.5 KB, 32 views)
lexa2 is offline   Reply With Quote