How to speed up scene?

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

How to speed up scene?

Post by Transporter » Wed Oct 16, 2013 8:32 pm

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
0 x

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

Re: How to speed up scene?

Post by AlexeyKnyshev » Wed Oct 16, 2013 10:15 pm

It must be one process? Maybe you can start more then one instance of app? Or use multithreading?
0 x
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
Contact:

Re: How to speed up scene?

Post by tod » Thu Oct 17, 2013 8:09 am

I think there was some discussion of the forums about multi-monitor support and issues with it.
0 x

Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany

Re: How to speed up scene?

Post by Transporter » Thu Oct 17, 2013 8:48 am

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. :(
0 x

User avatar
Zonder
Ogre Magi
Posts: 1127
Joined: Mon Aug 04, 2008 7:51 pm
Location: Manchester - England
x 19

Re: How to speed up scene?

Post by Zonder » Thu Oct 17, 2013 9:16 am

Assaf has done this I believe (might be getting people mixed up) but try searching his posts
0 x
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: 2702
Joined: Mon Aug 29, 2005 3:24 pm
Location: Kuala Lumpur, Malaysia
x 2

Re: How to speed up scene?

Post by syedhs » Thu Oct 17, 2013 10:28 am

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.
0 x
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 » Thu Oct 17, 2013 1:32 pm

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?
0 x

User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7144
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 14

Re: How to speed up scene?

Post by Kojack » Thu Oct 17, 2013 3:53 pm

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)
0 x

Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany

Re: How to speed up scene?

Post by Transporter » Thu Oct 17, 2013 9:06 pm

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.
0 x

User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7144
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 14

Re: How to speed up scene?

Post by Kojack » Sat Oct 19, 2013 10:46 am

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
0 x

Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany

Re: How to speed up scene?

Post by Transporter » Sun Oct 20, 2013 10:08 am

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.
0 x

Post Reply