How to speed up scene?

Problems building or running the engine, queries about how to use features etc.
Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany
x 110

How to speed up scene?

Post by Transporter »

Hi,

I have a big problem. I like to render 6 windows on 6 displays fullscreen (two graphic cards). I get 4 fps on each screen. The GPUs are used about 6%, one core of the 12 CPU cores is at 100% the rest is between 1% and 3%. It looks like the render loop is the bottle neck. I'm slightly shocked about the result. Any ideas how to solve this issue?

Thx,
Transporter
User avatar
AlexeyKnyshev
Goblin
Posts: 213
Joined: Sat May 26, 2012 10:37 am
Location: Russia
x 13

Re: How to speed up scene?

Post by AlexeyKnyshev »

It must be one process? Maybe you can start more then one instance of app? Or use multithreading?
Voltage Engine - boost your ogre project with realtime physics and interactive scripting!
OgreBullet & CMake - easy to use bullet physics integration.
User avatar
tod
Troll
Posts: 1394
Joined: Wed Aug 02, 2006 9:41 am
Location: Bucharest
x 94

Re: How to speed up scene?

Post by tod »

I think there was some discussion of the forums about multi-monitor support and issues with it.
Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany
x 110

Re: How to speed up scene?

Post by Transporter »

Of course I use multithreading, but this doesn't solve the problem. Ogre use multithreading only for resource loading, not for calculations.

I can't use Ogre on more than two displays at once. Maybe I have to switch the graphic engine. :(
User avatar
Zonder
Ogre Magi
Posts: 1172
Joined: Mon Aug 04, 2008 7:51 pm
Location: Manchester - England
x 76

Re: How to speed up scene?

Post by Zonder »

Assaf has done this I believe (might be getting people mixed up) but try searching his posts
There are 10 types of people in the world: Those who understand binary, and those who don't...
User avatar
syedhs
Silver Sponsor
Silver Sponsor
Posts: 2703
Joined: Mon Aug 29, 2005 3:24 pm
Location: Kuala Lumpur, Malaysia
x 51

Re: How to speed up scene?

Post by syedhs »

I get to render 6 monitors, but it uses two computers (two graphic cards each) as to ensure even the most complex scene can retain at least 60hz.
A willow deeply scarred, somebody's broken heart
And a washed-out dream
They follow the pattern of the wind, ya' see
Cause they got no place to be
That's why I'm starting with me
jessome
Gnoblar
Posts: 11
Joined: Wed May 15, 2013 5:32 pm

Re: How to speed up scene?

Post by jessome »

If it's a panorama effect you're going for, you could use one large virtual window that spans multiple monitors.

I know, at one point in time, you could configure NVidia drivers to present several monitors as one logical display. ( i.e: 2x 1080p would equal 1x 3840 x 1080 display )

I think the issue is that with 6 screens ... if they're all culling and shadow mapping that's 6 viewports x # cameras per viewport. I know for me, that would be ~30 renders of the scene. That's 30 cullings, 30 render queue processings, etc. You might be able to re-use some of that work with a compositor, maybe?
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 535

Re: How to speed up scene?

Post by Kojack »

If it's 6 monitors using 2 cards, how does it perform with 3 monitors on 1 card in comparison? Having to share all the resources between two cards may be causing problems.
(Not a fix, just trying to narrow down the cause)
Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany
x 110

Re: How to speed up scene?

Post by Transporter »

Kojack wrote:If it's 6 monitors using 2 cards, how does it perform with 3 monitors on 1 card in comparison? Having to share all the resources between two cards may be causing problems.
(Not a fix, just trying to narrow down the cause)
One window in window mode spread over all 6 displays (extended desktop) results is 22 fps. I'll try to setup two program instances (one for each card) tomorrow. I measured up to 60 fps if I cover two displays on one card with a window. Later, I like to setup 3 instances and 6 instances for tests about the performence.
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 535

Re: How to speed up scene?

Post by Kojack »

One thing that may be possible (just a theory of mine, not tested) is using a geometry shader for scene duplication. If you are using the 6 displays with 6 render targets, a geometry shader can make 6 duplicates of every triangle it receives and direct them onto different targets using 6 view matrices. So one render operation draws six different views. I've heard of this being done for rendering into all 6 sides of a cube map with one render call (such as for a dynamic cube map reflection of the scene).

Culling is harder in that case though, you could make the frustum wide enough for all 6 cameras or disable it somehow (if this is a wrap around view like a cave system).

What kind of scene is being shown, how do the monitors correspond to the scene, and what hardware is powering it all?

One of my ex students worked on this system:
[youtube]VGlxgKjg1ho[/youtube]
It's 12 IR touchscreen monitors (55 inch each) with a dual projector top display. It's using Unity. To run it, they needed 7 networked Xeon E5-2643 workstations with nvidia gtx 690 cards.
Trying to use Ogre (or any 3d engine) with a complex scene and just a single computer may be unrealistic. Pretty much every serious multi monitor (such as more than 4) system that I've seen (whether ogre or otherwise) uses multiple networked computers.
Zonder wrote:Assaf has done this I believe (might be getting people mixed up) but try searching his posts
Yep. Ogre with 6 monitors back in 2009. http://www.ogre3d.org/forums/viewtopic.php?f=11&t=48032
Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany
x 110

Re: How to speed up scene?

Post by Transporter »

Kojack wrote:
Zonder wrote:Assaf has done this I believe (might be getting people mixed up) but try searching his posts
Yep. Ogre with 6 monitors back in 2009. http://www.ogre3d.org/forums/viewtopic.php?f=11&t=48032
Yes, but he has not drawn a part of a city - just a few figures. I'll try to get hardware instancing working. Does Ogre perform culling calculations if a scene node is set to invisible? I could cut the map into tiles with a head node on each tile. And I also know which tiles should be visible.