View Single Post
Old 03-15-12, 08:28 AM   #5
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, thanks for quick answer.

Original reported issue clearly does not happen with the default xorg.conf generated by nvidia-config as this tool does not generate config file which utilizes xorg Xinerama extension. But if you take a look into the documentation that is shipped with the nVIDIA driver - there are claims that driver supports Xinerama-enabled setups in case user has to/wants to use it. Thus, Xinerama-enabled setups are not something that is an "illegitimate hack", and for some tasks - like having two monitors connected and using different rotation settings for them - is the only way to go (well, switching into using nouveau is another possibility, but that's out of topic for this forum).

As for Unigine Heaven benchmark settings - FPS drop happens no matter what are the settings used, bug trigger is that GL_ARB_map_buffer_range implementation in nVIDIA linux drivers - which isn't performing fast per se even in non-Xinerama setups really - suffers a huge slowdown when used in Xinerama-enabled setups. The only setting that's required is to stay in dual-head Xinerama mode, and easiest way to achive it is to run Heaven benchmark in a window.

I suspect - and this is just an educated guess - that this slowdown is a result of a driver doing memcpy() internally for the requested part of the buffer and then doing backwards memcpy() as soon as app releases mapped buffer instead of mapping the requested region directly. OTOH, I don't know exactly what are the internals of the nVIDIA driver so this guess might be a bogus one :-).
lexa2 is offline   Reply With Quote