Terrible FPS with grand_canyon Demo and *Crash*

maxxoros

16-11-2005 10:24:46

I download the newest version of PLS from tuan kuranes site and try it. This test use the SDK Demo
I have run mapsplitter to split source of grand_canyon demo (It took to long, about 15 min :( ) and then when I run...when I enter, first, I see a great terrain with moutain and detail texture ... but then the FPS down to 12 then 10 then 5 and 0.xxxx ... In the end, I receive some error like out of memory when runing this demo :( (I use the release in demo, not debug)
----------------------------
So, what is the problem, my CPU:
AMD Athlon DualCore: 2.1GB
1GB Ram
Quadro FX 540
------------
So I really do not understand the situation, I just use the demo, not my compile thing
------------------------------------
I try to compile it and run again...this problem still happen
====================
Could anyone tell me what is really happening :(

tuan kuranes

16-11-2005 11:02:03

mapsplitting grand canyon does takes times...
perhaps I should default maplsplit to just heightmap and colormap.

perhaps you have to tweak grand canyon config file to display less page/tiles at once.

how many VRAM and what shaders does support a "Quadro FX 540" ?

maxxoros

16-11-2005 14:42:01

@tuan kuranes: thanks for reply soon
---
So, Is this map always need config ? Or only me must config? If I must config ---> My CPU is weak but I myself do not think that
---------
So, because Quadro is Graphic Card for 3D appl so I change to a Graphic Card for Gamer is Radeon X600T, the FPS is worst........
00000000000-----------
If I must reconfig,could you point out where I must change to make it run...because I am new, so I still not understand the config file much
====
Thanks for ur help

tuan kuranes

16-11-2005 14:58:30

did you read that :

http://www.ogre3d.org/wiki/index.php/Pa ... nfig_files

In this case, the most important is :
- to tweak VisibleRenderables
- make sure VertexCompression is enabled and supported (needs Vertex Shader)

grand_canyon may hurt the most VRAM. (ram on the GPU card)

maxxoros

16-11-2005 15:07:08

Yeap, thanks alot, man...
---
But I want to ask If other must reconfig or only me? So It mean this format require so much hardware because my hardware is not too weak :(
---
This is the error if I let the demo run for a while

Out of memory :(
----------
I have tried change visibkeRenderable to only 10 and VertexCompression=yes but can not solve it
---------------
I will retry with version I compile and test it

tuan kuranes

16-11-2005 15:14:33

as I said it depends on your VRAM size.

> 128Mb no
< 128Mb yes

maxxoros

16-11-2005 15:17:50

My Quadro and also Radeon is 128 VRam

tuan kuranes

16-11-2005 15:34:17

try to lower MaxAdjacentPage and MaxPreloadedPages too.
also lower MaxNumRenderables and MaxNumTiles.


mhmm, strange that you're the only one to report that one.

Could be your AAS, aka agp aperture size ?

in motherboard bios.

"always set AAS to either be less than or equal to your total system memory"

Otherwise current CVS version, and next SDK version should use less VRAM.

maxxoros

16-11-2005 15:34:51

When I run with Debug Mode... I can run on the terrain now, but the FPS is only ~20 or ~22 ... too low for my type of processor and graphic card :(

maxxoros

16-11-2005 15:45:12

Okie, all the resource now I get from your site, I will try the new one from CVS... Hope for lucky
---------------------------
About my mainboard, I do not think there are limit like that with my type of mainboard.... I will ask my hardware supplier about that but I do not think It could solve...
------------
So sad I am the only one get this error, You know, I have tried use different computer with different kind of PGLS (SDK, compile from source, release, copy from this computer to other to test....)
------------

tuan kuranes

16-11-2005 15:46:48

FPS is only ~20 or ~22
That's enough for debugging.

forgot about your processor, it's about Graphic only. no CPU computation here.

forgot about your GPU; huge landscape is mainly about fitting data in Memory only.

too low for my type of processor and graphic card

It's mainly about AGP bandwith, AGP memory and VRAM memory.
(best would be with PCI-express 16x and 2gb ddr3ram ;)

It's about tweaking how many renderables in memory you get at once.

From your screen :
Renderables Used: 4
Renderables Free: 1986.

Meaning your problem may only comes from Renderable pool pre-alloc.
Lower MaxNumRenderables to 100.

tuan kuranes

16-11-2005 15:54:00

thinking about that, it should be

MaxPreloadedPages*(pagesize/tilesize)*(pagesize/tilesize)


And multiply by your Camera Number at different places on screen at the sale time.

maxxoros

16-11-2005 16:00:12


I reduce renderables into 100 ...
not solved now..
I am recompile with the cvs and will check now :(

tuan kuranes

16-11-2005 16:04:01

Arrrrrghhhhh.
didn't saw the trees.

There were for debug purpose when using Occlusion Culling... not at all optimised, rather the contrary to test occlusion gains...

Disable them in terrainlistener.h, there's big if (1), and all your problem shoud disappear at once.

Forgot that wicked SDK thing. I'll make a new SDK asap.

tuan kuranes

16-11-2005 16:20:00

and... sorry !

maxxoros

16-11-2005 16:20:49

Are compiling new cvs, If could not solved, I will debug to find what s wrong... This really makes me mad because my team has spend full day with it :(

maxxoros

16-11-2005 16:55:27

I are using
Ogre Release Name: 1.0.5
Codename: Azathoth
Release Date: 25 September 2005
---
and compile with the source from cvs... and get this error
what is problem ???

F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeIntersectionSceneQuery.cpp(66): error C2039: 'MovableObjectFactoryIterator' : is not a member of 'Ogre::Root'
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeIntersectionSceneQuery.cpp(66): error C2065: 'MovableObjectFactoryIterator' : undeclared identifier
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeIntersectionSceneQuery.cpp(66): error C2146: syntax error : missing ';' before identifier 'factIt'
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeIntersectionSceneQuery.cpp(66): error C2065: 'factIt' : undeclared identifier
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeIntersectionSceneQuery.cpp(67): error C2039: 'getMovableObjectFactoryIterator' : is not a member of 'Ogre::Root'
..\..\..\OgreMain\include\OgreRoot.h(61) : see declaration of 'Ogre::Root'
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeIntersectionSceneQuery.cpp(68): error C2228: left of '.hasMoreElements' must have class/struct/union type
type is ''unknown-type''
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeIntersectionSceneQuery.cpp(68): error C3861: 'factIt': identifier not found, even with argument-dependent lookup
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeIntersectionSceneQuery.cpp(68): fatal error C1903: unable to recover from previous error(s); stopping compilation
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeSceneManager.cpp(422): error C2039: 'destroyCamera' : is not a member of 'Ogre::SceneManager'
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeSceneManager.cpp(988): error C2039: 'setCurrentPassIterationCount' : is not a member of 'Ogre::RenderSystem'
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeCamera.cpp(95): error C2039: 'getDestinationRenderSystem' : is not a member of 'Ogre::SceneManager'
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeCamera.cpp(95): error C2227: left of '->getCapabilities' must point to class/struct/union
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeOctreeCamera.cpp(95): error C2227: left of '->hasCapability' must point to class/struct/union
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeRenderableManager.cpp(239): error C2259: 'Ogre::PagingLandScapeRenderable' : cannot instantiate abstract class
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeRenderable.cpp(90): error C2039: 'WORLD_GEOMETRY_TYPE_MASK' : is not a member of 'Ogre::SceneManager'
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeRenderable.cpp(90): error C2065: 'WORLD_GEOMETRY_TYPE_MASK' : undeclared identifier
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeRenderable.cpp(201): error C2065: 'mName' : undeclared identifier
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeRenderable.cpp(207): error C2065: 'mUpperDistance' : undeclared identifier
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeRenderable.cpp(482): error C3861: 'mName': identifier not found, even with argument-dependent lookup
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeRenderable.cpp(510): error C2065: 'mBeyondFarDistance' : undeclared identifier
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeRenderable.cpp(510): error C3861: 'mUpperDistance': identifier not found, even with argument-dependent lookup
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeRenderable.cpp(511): error C3861: 'mBeyondFarDistance': identifier not found, even with argument-dependent lookup
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeRenderable.cpp(1085): error C2039: 'WORLD_GEOMETRY_TYPE_MASK' : is not a member of 'Ogre::SceneManager'
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapeRenderable.cpp(1085): error C3861: 'WORLD_GEOMETRY_TYPE_MASK': identifier not found, even with argument-dependent lookup
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapePageRenderable.cpp(66): error C2664: 'Ogre::MovableObject::MovableObject(const Ogre::MovableObject &)' : cannot convert parameter 1 from 'const Ogre::String' to 'const Ogre::MovableObject &'
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapePageRenderable.cpp(306): error C2039: 'WORLD_GEOMETRY_TYPE_MASK' : is not a member of 'Ogre::SceneManager'
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapePageRenderable.cpp(306): error C2065: 'WORLD_GEOMETRY_TYPE_MASK' : undeclared identifier
F:\Ogre_Resource_1_0_5\ogrenew\PlugIns\PagingLandScape2\src\OgrePagingLandScapePage.cpp(153): error C2259: 'Ogre::PagingLandScapePageRenderable' : cannot instantiate abstract class
f:\Ogre_Resource_1_0_5\ogrenew\Samples\PagingLandScape2\include\Terrainlistener.h(125): error C2039: 'destroyStaticGeometry' : is not a member of 'Ogre::SceneManager'
f:\Ogre_Resource_1_0_5\ogrenew\Samples\PagingLandScape2\include\Terrainlistener.h(304): error C2039: 'setRenderingDistance' : is not a member of 'Ogre::Entity'
f:\Ogre_Resource_1_0_5\ogrenew\Samples\PagingLandScape2\include\Terrainlistener.h(356): error C2039: 'setRenderingDistance' : is not a member of 'Ogre::Entity'

tuan kuranes

16-11-2005 16:57:16

cvs plsm2 need ogre CVS HEAD.

you can stick to current SDK, as long as you disable tree occlusion test as posted above.

in a very short time, SDK will be updated and be compatible with Ogre latest SDK.

maxxoros

16-11-2005 17:02:14

so there is 2 method :
--------------------
1. get latest ogre cvs and compile with latest plsm2 cvs
2. Disable tree occlusion in terrainlistener.h ?

tuan kuranes

16-11-2005 17:25:06

Yes.

--------------------
1. get latest ogre cvs HEAD tag and compile with latest plsm2 cvs
2. Disable all mesh loads in terrainlistener.h ?

Jon

16-11-2005 17:33:17

Ah my friends the trees, first thing I thought of when I read this thread :lol:

I would also note for people new to PLSM that the demo's UI is active before all of the terrain is loaded, so FPS will be severely impacted while those pages load. Afterwards, the cost of loading new terrain isn't noticable. I keep an eye on the debug overlay, and wait until the vector reads (0,0,0) before trying to do anything. One can also wait for the FPS indicator to read above single digits

tuan kuranes

16-11-2005 17:36:37

True.
You can wait til the 'Terrain Ready' event message appears.

maxxoros

16-11-2005 17:54:57

Hi all friends
---
I choose the second way and It solved now

:)
----
So I still use the SDK from your site, tuan kuranes...:)
=======
I want to ask more question, is the CVS of PLSM2 and Ogre CVS are stable now ? So I could use it?
---
:)
Thanks again for helping me so much :)

tuan kuranes

16-11-2005 17:59:10

Mostly stable.
But as you saw Dagon (CVS HEAD) is ogre api interface breaker.