TwinView - Xinerama with 2+1 display setup
We have been using TwinView to successfully run our application for some time. Now we're trying to add a third, separate screen, to which the mouse/pointer intentionally cant get. We do this by adding a second PCI-E card to the system to which we attatch the third display. Part of the XF86Config looks like this:
This gives us an extra display (:0.1), and generally does what we want. However, no Xinerama information is available on the TwinView display. Is there a reason why it can't/wont be provided in this scenario? There is a flag to force them 'off', but can they be forced on?
In trying to work around this problem, I used the Xinerama functionality of the X server. However, it turns out that there is a huge (GL?) performance hit using Xinerama rather than TwinView. This can be seen using only two displays on one card.
Notably, glxgears runs equally well using TwinView and Xinerama. Our application, which does 'video' playback, only ever hits 15 fps on the Xinerama setup but easily does 24+ fps using TwinView. I have not put in the effort of narrowing this down to an easily reproducible case... yet. (Tried downgrading from 8178 to 7174, which I believe doesn't do acceleration under Xinerama. 7174 gave only 2 fps)
So basically, there are two problems present
1) No Xinerama extensions using TwinView with 'third' screen
2) Poor performance using Xinerama
Help towards a solution to either one of these would be very helpful. For now we get by using the 'TwinView without Xinerama info' setup.
Attachments are gzip'ed, despite the 'zip' ending.
Re: TwinView - Xinerama with 2+1 display setup
My experience is that Xinerama actually scales pretty well for OpenGL.
The overhead is only recoginzable for small GL windows, like the default
300x300 glxgears window. I also have a twinview+xinerama setup
with two cards and three displays:
When glxgears is displayed at default size (300x300), on the first card
(left+middle LCD), it has 16070 fps and on the second card (right LCD),
there are 16360 fps. When the window is placed "in between" the middle
and the right LCD (so that each card has to render 1/2 of the window),
frame rates drop to 10507 fps (-35%).
Situation is different for a glxgears windows size of 1600x1200: on the
first card, i get 1107 fps, on the second card, there are 1131 fps and
"in between" the result is 1990 fps (+80%).
I guess the first card is a little bit slower than the second one (both
7800GTX) because there are two RAMDACs active for the left and
the middle LCD while the second card only needs to feed the right LCD.
BTW.: UT2004 works also great at 3840x1024 (there is a size limit
of 4096x4096 pixels for OpenGL applications) - there are only a very
few maps that are extreme slow. I guess these maps have been
created on windows boxes using direct3d, and rendering on opengl
is slower because it tries to be more accurate!?
Concerning video playback: i can run three xine players simultaniously
at "full screen" (each player one display) and full speed (at least i
couldn't recognize a frame rate drop).
|All times are GMT -5. The time now is 01:47 AM.|
Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright ©1998 - 2014, nV News.