[SOLVED] upgrade to JME 1.0 from rc1 - 0 FPS in certain directions - LensFlare

I'm trying to upgrade to jme 1.0 in my game jcrpg. Using rc1 everything goes fine. But when using 1.0 a new problem appears: Turning NORTH and SOUTH in the game gives very low performance, around 0 FPS. In rc1 the FPS was normal just like when turning EAST and WEST in the game. Very weird problem! Any ideas? You may try it downloading at javacrpg.sf.net and use jme 1.0 jars.

LensFlare uses a more accurate and more costly way of determining occlusion, had my fps go down to ~30 from ~90 before. You'll probably have another problem, though, since that change has been in for a while now, but I just thought I might let you know.

To determine the actual source of your problem, try your game's render and update method with a profiler - that approach has worked wonders for me!

hevee said:

LensFlare uses a more accurate and more costly way of determining occlusion

If this really is the cause, we should make the new checks optional (I never had a look at them, they were contributed and committed by someone else).

timong, could you try to do some profiling or pin down the problem just a little, to make it just a little easier for us to help you?  sounds very scary…

MrCoder said:

timong, could you try to do some profiling or pin down the problem just a little, to make it just a little easier for us to help you?  sounds very scary...


Thanks for the answers! I will try to profile it!

tar.bz2  …  I wish you uploaded in a format immediately openable on windows  :wink:

7-Zip…Fully integrated, supports all formats, fastest app around, and open source…don't leave home without it…

Sure… or for lazy folk you could just zip it… unzip tools come preinstalled with every OS out there.  :wink:

true that :slight_smile: (but windows xp built in unzip sucks big time)

MrCoder said:

but windows xp built in unzip sucks big time

that's so true

Abnormal with 1.0

 

+


+
| Most expensive methods summarized    |
+
+

               Net
         
 Count     Time    Pct  Location
 =====     ====    ===  ========
4678849 422137.1   35.5  com.jme.scene.batch.TriangleBatch:getTriangle
104580 113650.9    9.6  com.jme.bounding.BoundingBox:computeFromTris
1733600  85613.6    7.2  com.jme.scene.Spatial:localToWorld
14052057  50841.4    4.3  com.jme.util.geom.BufferUtils:populateFromBuffer
14036547  50555.7    4.3  com.jme.scene.batch.TriangleBatch:getVertIndex
14050209  50514.6    4.3  com.jme.scene.batch.TriangleBatch:getIndexBuffer
14044312  50474.6    4.2  com.jme.scene.batch.GeomBatch:getVertexBuffer
12303684  44399.5    3.7  com.jme.bounding.BoundingBox:checkMinMax
104569  23740.5    2.0  com.jme.bounding.CollisionTree:intersect
577620  20855.8    1.8  com.jme.math.Ray:intersects
115169  19604.3    1.6  org.jcrpg.world.place.World:getCube
107657  17983.4    1.5  com.jme.bounding.BoundingBox:intersects
4682204  16875.1    1.4  com.jme.scene.batch.TriangleBatch:getTriangleCount
1612682  16590.1    1.4  org.jcrpg.world.place.Boundaries:isInside
1374880  14069.8    1.2  com.jme.math.Vector3f:cross
105265  13776.1    1.2  com.jme.bounding.BoundingBox:transform
3141741  11490.3    1.0  com.jme.math.Vector3f:set
2246056   8184.3    0.7  com.jme.math.FastMath:abs
1947493   7085.8    0.6  com.jme.math.Vector3f:addLocal
1841532   6726.5    0.6  com.jme.math.Vector3f:multLocal
1839602   6717.5    0.6  com.jme.math.Quaternion:mult
1844903   6676.0    0.6  com.jme.scene.Spatial:getWorldRotation
1842023   6670.5    0.6  com.jme.math.Vector3f:subtract
1840306   6661.2    0.6  com.jme.scene.Spatial:getWorldTranslation
1840961   6646.3    0.6  com.jme.scene.Spatial:getWorldScale
1615574   6208.9    0.5  org.jcrpg.world.place.Boundaries:getKey
577620   5783.3    0.5  com.jme.math.Ray:intersectWhere
577620   5779.1    0.5  com.jme.math.Ray:intersect
1548799   5637.0    0.5  com.jme.math.Vector3f:dot
104580   5138.2    0.4  com.jme.bounding.CollisionTree:createTree
    17   4806.9    0.4  com.jmex.model.converters.maxutils.TDSFile:putChildMeshes
1150681   4146.9    0.3  org.jcrpg.world.place.Place:getBoundaries
 16730   3911.9    0.3  com.jme.scene.SceneElement:updateRenderState
739036   2766.0    0.2  com.jme.math.Vector3f:equals
613965   2246.4    0.2  com.jme.scene.SceneElement:getRenderState
210294   2167.3    0.2  com.jme.bounding.BoundingVolume:<init>
210293   2167.2    0.2  com.jme.bounding.BoundingBox:<init>
512555   2017.4    0.2  com.jme.math.Vector3f:<init>
     1   1813.1    0.2  org.jcrpg.threed.scene.RenderedArea:getRenderedSpace
104580   1808.0    0.2  com.jme.bounding.CollisionTree:createBounds
430632   1573.0    0.1  com.jme.math.Ray:getDirection
   131   1497.6    0.1  com.jme.util.TextureManager:loadImage
109906   1342.9    0.1  com.jme.math.Quaternion:toRotationMatrix
 72568   1332.5    0.1  com.jme.util.export.binary.BinaryOutputCapsule:write
     1   1286.6    0.1  org.jcrpg.world.Engine:run
106351   1226.7    0.1  com.jme.math.Vector3f:mult
105265   1167.8    0.1  com.jme.math.Matrix3f:set
107981   1125.8    0.1  com.jme.bounding.BoundingVolume:getCenter
     1   1046.3    0.1  org.jcrpg.apps.Jcrpg:start
 49951    831.9    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:getNumIndices
  2664    744.9    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitColors
116019    733.9    0.1  com.jme.util.export.ByteUtils:convertToBytes
  3353    705.4    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitNormals
121385    700.5    0.1  com.jme.util.export.ByteUtils:convertIntFromBytes
  2664    699.6    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:preCommit
 11981    694.8    0.1  com.jmex.model.converters.ObjToJme:processLine
     6    630.3    0.1  org.jcrpg.threed.J3DCore:render
 89304    609.9    0.1  com.jme.scene.TriMesh:getBatch
 33432    586.4    0.0  com.jme.math.Vector3f:length
  4913    524.9    0.0  org.jcrpg.world.place.geography.Mountain:getPointSurfaceData
 30414    512.7    0.0  com.jme.math.Vector3f:normalizeLocal
 49952    503.2    0.0  com.jme.util.export.binary.BinaryInputCapsule:readFloat
 48137    489.8    0.0  com.jme.util.export.ByteUtils:convertFloatFromBytes
105265    478.0    0.0  com.jme.math.Matrix3f:mult
    44    453.8    0.0  com.jme.util.geom.GeometryTool:minimizeVerts
109906    448.7    0.0  com.jme.math.Quaternion:norm
107236    438.4    0.0  com.jme.bounding.CollisionTreeManager:getInstance
104580    435.0    0.0  com.jme.bounding.CollisionTree:<init>
  6566    430.9    0.0  com.jme.scene.Geometry:reconstruct
106056    425.3    0.0  com.jme.bounding.BoundingBox:getType
115173    420.6    0.0  org.jcrpg.world.Engine:getWorldMeanTime
104580    413.2    0.0  com.jme.bounding.CollisionTreeManager:getMaxTrisPerLeaf
 24398    407.3    0.0  org.jcrpg.threed.jme.geometryinstancing.AABB:expand
 18189    403.4    0.0  com.jme.util.export.binary.BinaryInputCapsule:readInt
     1    392.8    0.0  com.jme.system.lwjgl.LWJGLPropertiesDialog:createUI
 32898    390.3    0.0  org.jcrpg.space.Cube:<init>
  8668    378.1    0.0  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchInstanceAttributes:<init>
  2664    368.4    0.0  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitIndices
    82    347.1    0.0  org.lwjgl.opengl.GL11:glTexImage2D
 10462    340.9    0.0  com.jme.scene.Spatial:<init>
  5636    331.6    0.0  com.jme.scene.batch.GeomBatch:applyRenderState
     1    330.9   85.3  com.jme.system.lwjgl.LWJGLPropertiesDialog$3:actionPerformed
 63395    324.4    0.0  org.jcrpg.threed.J3DCore:renderSide
  2664    321.6    0.0  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitTextureCoords
   246    316.4    0.0  com.jme.util.export.binary.BinaryInputCapsule:readFloatBuffer
   963    289.4    0.0  com.jme.util.resource.SimpleResourceLocator:locateResource
 68505    283.2    0.0  org.jcrpg.world.place.geography.Mountain:isGroundLevel
  3952    273.0    0.0  org.jcrpg.threed.jme.vegetation.BillboardPartVegetation:createQuad
 76280    271.5    0.0  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchInstanceAttributes:getColor
   182    264.9    0.0  org.jcrpg.threed.jme.vegetation.BillboardPartVegetation:transformTrimeshesToQuads
 71644    264.5    0.0  com.jme.scene.batch.GeomBatch:getVertexCount
  1993    263.8    0.0  com.jmex.model.converters.ObjToJme:addFaces
 28311    262.8    0.0  com.jme.scene.Spatial:getLightCombineMode
    51    261.3    0.0  org.lwjgl.opengl.glu.MipMap:gluScaleImage
  9343    253.2    0.0  org.jcrpg.threed.J3DCore:renderNodes
  2656    232.6    0.0  com.jme.scene.batch.TriangleBatch:findTrianglePick
     1    220.9    0.0  com.jme.system.lwjgl.LWJGLPropertiesDialog:<init>
     6    218.3    0.0  org.lwjgl.opengl.ARBShaderObjects:glCompileShaderARB
 23570    214.9    0.0  com.jme.scene.Spatial:getTextureCombineMode
  4641    211.8    0.0  org.jcrpg.threed.jme.geometryinstancing.instance.GeometryInstanceAttributes:buildMatrices
     2    211.5    0.0  com.jme.image.util.TGALoader:loadImage
  7400    209.2    0.0  com.jmex.model.converters.ObjToJme$ArraySet:findSet
     6    202.4    0.0  org.jcrpg.threed.J3DCore:renderToViewPort
   524    201.6    0.0  com.jme.scene.state.lwjgl.LWJGLTextureState:apply
  4334    193.7    0.0  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:<init>
 50675    189.9    0.0  com.jme.scene.batch.GeomBatch:getTextureBuffer
 17988    188.8    0.0  com.jme.math.Matrix4f:loadIdentity
 51830    188.1    0.0  com.jme.scene.batch.TriangleBatch:getType
 17626    186.6    0.0  com.jme.util.geom.VertKey:hashCode
     1    182.8    0.0  org.jcrpg.threed.J3DCore:<init>
 50335    180.5    0.0  com.jme.scene.batch.TriangleBatch:getMaxIndex
 42792    178.9    0.0  com.jme.math.Matrix4f:mult
 16445    175.0    0.0  com.jme.util.export.binary.BinaryOutputCapsule:deflate
  5626    172.9    0.0  com.jme.scene.Geometry:applyRenderState
   754    172.6    0.0  com.jme.scene.SharedMesh:setTarget
  3952    172.4    0.0  org.jcrpg.threed.jme.TrimeshGeometryBatch:addItem
   721    170.2    0.0  com.jme.scene.SharedNode:copyNode
  5312    169.1    0.0  com.jme.bounding.CollisionTreeManager:generateCollisionTree
 45394    168.5    0.0  org.jcrpg.world.place.water.River:isWaterPoint
  5285    167.6    0.0  com.jme.scene.Node:applyRenderState
  4334    162.7    0.0  com.jme.scene.Geometry:getVertexCount
    15    158.1    0.0  com.jmex.model.converters.ObjToJme:buildStructure
   754    153.9    0.0  com.jme.scene.batch.SharedBatch:setTarget
 14558    151.0    0.0  org.jcrpg.util.HashUtil:mixPercentage
  2664    146.0    0.0  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commit
  4587    145.5    0.0  org.jcrpg.threed.jme.geometryinstancing.AABB:<init>
 30807    132.0    0.0  com.jmex.model.converters.ObjToJme$ArraySet:access$100
  1515    129.3    0.0  com.jme.scene.Node:updateWorldBound
 29306    125.1    0.0  com.jme.math.Quaternion:<init>
 31621    124.3    0.0  com.jme.scene.state.RenderState:extract
 34284    124.2    0.0  com.jme.math.FastMath:sqrt
 11381    124.1    0.0  com.jme.renderer.ColorRGBA:<init>
  6489    123.7    1.4  com.jme.system.DisplaySystem:getDisplaySystem
   112    123.6    0.0  com.jme.util.geom.BufferUtils:getVector3Array
 33544    123.3    0.0  com.jme.math.Vector3f:lengthSquared
    26    121.7    0.0  com.jme.util.export.binary.BinaryExporter:save
    15    120.0    0.0  com.jmex.model.converters.ObjToJme:convert
  6217    118.8    0.0  com.jme.util.geom.BufferUtils:createFloatBuffer
  2631    113.5    0.0  com.jme.bounding.UsageTreeController:clean
 29864    111.5    0.0  com.jme.math.Vector3f:divideLocal
 10491    109.6    0.0  com.jme.util.LittleEndien:readFloat
 27215    108.8    0.0  com.jme.scene.state.lwjgl.records.StateRecord:isValid
   524    108.1    0.0  com.jme.scene.state.lwjgl.LWJGLLightState:apply
    89    107.5    0.0  com.jme.bounding.BoundingBox:containAABB
   384    106.9    0.0  com.jme.renderer.lwjgl.LWJGLRenderer:predrawGeometry
  4334    106.1    0.0  org.jcrpg.threed.jme.geometryinstancing.instance.GeometryInstanceAttributes:<init>
  4573    105.2    0.0  com.jme.scene.Geometry:<init>
    82    102.4    0.0  com.jme.util.export.binary.BinaryInputCapsule:readIntBuffer

Normal with rc1:



+


+
| Most expensive methods summarized    |
+
+

               Net
         
 Count     Time    Pct  Location
 =====     ====    ===  ========
115169  18998.5    4.7  org.jcrpg.world.place.World:getCube
1613042  16281.8    4.0  org.jcrpg.world.place.Boundaries:isInside
117761  13547.9    3.4  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitTextureCoords
 30224  10623.3    2.6  com.jme.scene.state.lwjgl.LWJGLTextureState:apply
1913287   6866.7    1.7  com.jme.scene.batch.GeomBatch:getTextureBuffer
 30225   6355.6    1.6  com.jme.renderer.lwjgl.LWJGLRenderer:applyStates
 39096   6353.7    1.6  com.jme.bounding.BoundingBox:intersects
1615934   6239.4    1.5  org.jcrpg.world.place.Boundaries:getKey
1612035   6142.6    1.5  com.jme.scene.state.lwjgl.records.StateRecord:isValid
117761   6093.0    1.5  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commit
 21084   5606.4    1.4  com.jme.renderer.lwjgl.LWJGLRenderer:predrawGeometry
 24550   5261.3    1.3  com.jme.scene.state.lwjgl.LWJGLLightState:setLight
272212   4896.2    5.1  com.jme.system.DisplaySystem:getDisplaySystem
    17   4867.4    1.2  com.jmex.model.converters.maxutils.TDSFile:putChildMeshes
117761   4489.5    1.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitColors
 30224   4266.3    1.1  com.jme.scene.state.lwjgl.LWJGLLightState:apply
254592   4253.5    1.1  org.jcrpg.threed.jme.geometryinstancing.AABB:expand
 30603   4159.9    1.0  com.jme.renderer.lwjgl.LWJGLRenderer:draw
1150681   4074.4    1.0  org.jcrpg.world.place.Place:getBoundaries
 17270   3928.6    1.0  com.jme.scene.SceneElement:updateRenderState
1010454   3914.5    1.0  org.lwjgl.opengl.GLContext:getCapabilities
425914   3775.6    0.9  com.jme.scene.Spatial:getCullMode
 13021   3625.5    0.9  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchMesh:updateBound
 30224   3601.4    0.9  com.jme.scene.state.lwjgl.LWJGLMaterialState:apply
118450   3383.7    0.8  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitNormals
120896   3360.3    0.8  com.jme.scene.state.lwjgl.LWJGLMaterialState:applyColor
196408   3336.5    0.8  com.jme.scene.state.lwjgl.LWJGLLightState:setSingleLightEnabled
860119   3293.3    0.8  org.lwjgl.BufferChecks:checkFunctionAddress
 26114   3271.2    0.8  com.jme.bounding.BoundingBox:transform
189680   3153.4    0.8  com.jme.renderer.RenderQueue$OpaqueComp:compare
117761   3145.7    0.8  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitIndices
862849   3074.3    0.8  com.jme.math.FastMath:abs
   610   3000.6    0.7  com.jme.util.resource.SimpleResourceLocator:locateResource
818815   2984.5    0.7  com.jme.math.Vector3f:equals
787374   2840.0    0.7  com.jme.scene.state.TextureState:getTexture
117761   2749.4    0.7  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:preCommit
 24917   2562.4    0.6  com.jme.scene.state.lwjgl.LWJGLTextureState:applyFilter
 30041   2456.0    0.6  com.jme.scene.state.lwjgl.LWJGLShaderObjectsState:apply
 60060   2381.9    0.6  com.jme.scene.Spatial:onDraw
 30224   2364.0    0.6  com.jme.scene.state.lwjgl.LWJGLFogState:apply
 30051   2330.5    0.6  com.jme.renderer.lwjgl.LWJGLRenderer:doTransforms
633765   2301.3    0.6  com.jme.scene.SceneElement:getRenderState
 94840   2291.4    0.6  com.jme.renderer.RenderQueue$OpaqueComp:compareByStates
337143   2207.4    0.5  com.jme.scene.TriMesh:getBatch
585360   2185.9    0.5  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:skipBuffer
 59437   2133.5    0.5  com.jme.scene.Geometry:setSolidColor
118450   1998.9    0.5  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitVertices
117761   1972.9    0.5  org.jcrpg.threed.jme.geometryinstancing.AABB:mergeLocal
 80928   1945.6    0.5  org.lwjgl.opengl.ARBBufferObject:glBindBufferARB
 61902   1842.7    0.5  com.jme.bounding.BoundingBox:whichSide
484853   1807.8    0.4  com.jme.math.Vector3f:set
     1   1783.3    0.4  org.jcrpg.threed.scene.RenderedArea:getRenderedSpace
 30224   1769.2    0.4  com.jme.scene.state.lwjgl.LWJGLCullState:apply
 27450   1751.8    0.4  com.jme.scene.batch.SharedBatch:draw
 98939   1728.4    0.4  org.lwjgl.opengl.GL11:glTexParameteri
 35284   1706.7    0.4  com.jme.scene.Spatial:localToWorld
   131   1611.9    0.4  com.jme.util.TextureManager:loadImage
 30224   1587.9    0.4  com.jme.scene.state.lwjgl.LWJGLWireframeState:apply
 24550   1527.1    0.4  com.jme.scene.state.lwjgl.LWJGLLightState:setAttenuate
   366   1508.8    0.4  org.jcrpg.threed.J3DCore:updateTimeRelated
 21084   1499.3    0.4  org.lwjgl.opengl.GL11:glDrawElements
 85619   1495.5    0.4  org.lwjgl.opengl.GLChecks:getReferences
416428   1484.9    0.4  com.jme.math.Vector3f:dot
 39976   1480.0    0.4  com.jme.scene.Geometry:updateWorldData
272210   1442.3   78.1  com.jme.system.lwjgl.LWJGLSystemProvider:getDisplaySystem
153648   1396.7    0.3  com.jme.scene.Spatial:getRenderQueueMode
 80928   1396.0    0.3  org.lwjgl.opengl.StateTracker:bindBuffer
362504   1358.0    0.3  com.jme.scene.state.RenderState:needsRefresh
 77245   1345.0    0.3  org.lwjgl.NondirectBufferWrapper:wrapBuffer
 76259   1328.4    0.3  org.lwjgl.opengl.GL11:glEnableClientState
 29976   1326.7    0.3  com.jme.scene.Node:updateWorldBound
 33087   1309.0    0.3  com.jme.scene.Geometry:updateWorldBound
 88956   1275.6    0.3  com.jme.scene.Spatial:updateGeometricState
 49103   1271.9    0.3  org.lwjgl.opengl.GL11:glLight
 72568   1270.0    0.3  com.jme.util.export.binary.BinaryOutputCapsule:write
 24917   1267.8    0.3  com.jme.scene.state.lwjgl.LWJGLTextureState:applyWrap
117761   1249.6    0.3  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:wantCommit
 22628   1238.2    0.3  com.jme.renderer.AbstractCamera:contains
 24917   1232.7    0.3  com.jme.scene.state.lwjgl.LWJGLTextureState:applyTextureTransforms
 67466   1204.6    0.3  org.lwjgl.opengl.GL11:glMatrixMode
 67473   1187.1    0.3  org.lwjgl.opengl.GLChecks:ensureArrayVBOdisabled
 35512   1184.2    0.3  com.jme.scene.Node:updateWorldData
306865   1153.2    0.3  com.jme.scene.Geometry:getBatchCount
 24917   1132.4    0.3  com.jme.scene.state.lwjgl.LWJGLTextureState:applyTexCoordGeneration
270912   1100.4    0.3  com.jme.system.lwjgl.LWJGLDisplaySystem:getCurrentContext
272212   1093.4    0.3  com.jme.system.DisplaySystem:getSystemProvider
     1   1073.5    0.3  org.jcrpg.apps.Jcrpg:start
267224   1023.4    0.3  com.jme.scene.batch.GeomBatch:isEnabled
263888   1021.0    0.3  org.lwjgl.opengl.StateTracker:getReferencesStack
277259   1016.4    0.3  com.jme.scene.batch.TriangleBatch:getIndexBuffer
263888   1010.7    0.3  org.lwjgl.opengl.ReferencesStack:getReferences
271621   1004.4    0.2  com.jme.scene.batch.GeomBatch:getNormalBuffer
270756    988.1    0.2  com.jme.scene.state.RenderState:setNeedsRefresh
272611    984.8    0.2  com.jme.scene.batch.GeomBatch:getColorBuffer
254592    984.2    0.2  org.jcrpg.threed.jme.geometryinstancing.AABB:min
 13021    981.3    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchMesh:commit
270249    980.3    0.2  com.jme.scene.state.TextureState:getNumberOfSetTextures
 13021    980.0    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchMesh:preCommit
 75731    974.3    0.2  com.jme.scene.Spatial:updateWorldVectors
262878    956.0    0.2  com.jme.scene.SceneElement:getWorldBound
 13021    955.4    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchMesh:rewindBuffers
 32632    950.9    0.2  com.jme.scene.batch.TriangleBatch:draw
254592    944.2    0.2  org.jcrpg.threed.jme.geometryinstancing.AABB:max
 30049    930.2    0.2  com.jme.scene.state.lwjgl.LWJGLShaderObjectsState:isSupported
 20455    929.4    0.2  com.jme.scene.Node:findPick
 98988    922.7    0.2  com.jme.scene.Spatial:getNormalsMode
 53112    901.6    0.2  com.jme.bounding.BoundingBox:clone
219592    892.5    0.2  com.jme.renderer.RenderContext:getStateRecord
 21074    885.9    0.2  org.lwjgl.opengl.GL11:glTexCoordPointer
 21082    881.3    0.2  org.lwjgl.opengl.GL11:glVertexPointer
     1    867.8    0.2  org.jcrpg.world.Engine:run
234144    863.0    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchInstanceAttributes:isColorChanged
238278    854.3    0.2  org.jcrpg.threed.jme.geometryinstancing.instance.GeometryInstanceAttributes:isVisible
231467    852.1    0.2  com.jme.scene.batch.GeomBatch:getVertexCount
 82518    840.0    0.2  com.jme.math.Vector3f:cross
 49951    832.1    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:getNumIndices
 35833    822.1    0.2  com.jme.scene.Spatial:updateWorldScale
 32624    809.0    0.2  com.jme.scene.batch.GeomBatch:updateWorldBound
 75488    807.1    0.2  com.jme.scene.Spatial:updateWorldData
 13606    804.8    0.2  com.jme.util.SortUtil:msort
 21082    791.0    0.2  org.lwjgl.opengl.GL11:glNormalPointer
191022    773.1    0.2  com.jme.scene.state.RenderState:isEnabled
116019    735.6    0.2  com.jme.util.export.ByteUtils:convertToBytes
 30225    734.8    0.2  com.jme.renderer.lwjgl.LWJGLRenderer:checkAndAdd
 12851    734.7    0.2  com.jme.scene.Geometry:findPick
  2562    725.1    0.2  org.jcrpg.threed.jme.TrimeshGeometryBatch:onDraw
 21084    718.2    0.2  com.jme.renderer.lwjgl.LWJGLRenderer:applyNormalMode
196409    714.4    0.2  com.jme.scene.state.lwjgl.records.LightStateRecord:getLightEnabled
 70361    713.5    0.2  com.jme.renderer.ColorRGBA:<init>
121385    709.5    0.2  com.jme.util.export.ByteUtils:convertIntFromBytes
 27510    680.8    0.2  org.lwjgl.opengl.GL11:glMaterial
175441    661.7    0.2  com.jme.scene.Spatial:getWorldScale
170204    661.4    0.2  com.jme.scene.state.lwjgl.LWJGLTextureState:checkAndSetUnit
177711    655.6    0.2  com.jme.scene.batch.TriangleBatch:getType
154306    652.6    0.2  com.jme.math.Vector3f:<init>
 24550    634.9    0.2  com.jme.scene.state.lwjgl.LWJGLLightState:setSpotExponent
 16316    631.1    0.2  com.jme.scene.TriMesh:draw
 13725    625.2    0.2  com.jme.scene.batch.GeomBatch:onDraw
 30051    623.9    0.2  com.jme.renderer.lwjgl.LWJGLRenderer:postdrawGeometry
 61902    621.3    0.2  com.jme.math.Plane:pseudoDistance
 33724    620.7    0.2  org.lwjgl.opengl.GL11:glColor4f
 96682    619.4    0.2  com.jme.math.Quaternion:mult
 25438    615.8    0.2  com.jme.bounding.BoundingBox:merge

Normal (rc1):


+


| Most expensive methods (by net time)
| Frame Count Limit: Unlimited
+

               Net
         
 Count     Time    Pct  Location
 =====     ====    ===  ========
115169  18998.5    4.7  org.jcrpg.world.place.World:getCube
1610708  16257.1    4.0  org.jcrpg.world.place.Boundaries:isInside
 60816   7013.9    1.7  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitTextureCoords
 55567   6368.3    1.6  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitTextureCoords
1610708   6207.5    1.5  org.jcrpg.world.place.Boundaries:getKey
 12832   5395.2    1.3  com.jme.scene.state.lwjgl.LWJGLTextureState:apply
     8   4081.3    1.0  com.jmex.model.converters.maxutils.TDSFile:putChildMeshes
1150680   4074.4    1.0  org.jcrpg.world.place.Place:getBoundaries
 13725   3731.7    0.9  com.jme.scene.state.lwjgl.LWJGLTextureState:apply
973056   3479.3    0.9  com.jme.scene.batch.GeomBatch:getTextureBuffer
 12832   3360.2    0.8  com.jme.renderer.lwjgl.LWJGLRenderer:predrawGeometry
889072   3185.7    0.8  com.jme.scene.batch.GeomBatch:getTextureBuffer
 60816   3159.3    0.8  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commit
 13725   2954.7    0.7  com.jme.scene.state.lwjgl.LWJGLLightState:setLight
 13725   2871.5    0.7  com.jme.renderer.lwjgl.LWJGLRenderer:applyStates
 55567   2857.5    0.7  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commit
 12832   2717.1    0.7  com.jme.renderer.lwjgl.LWJGLRenderer:applyStates
 13725   2237.1    0.6  com.jme.scene.state.lwjgl.LWJGLLightState:apply
612079   2195.0    0.5  com.jme.math.Vector3f:equals
 10270   2189.4    0.5  com.jme.scene.state.lwjgl.LWJGLLightState:setLight
 60816   2122.7    0.5  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitColors
 12851   2114.9    0.5  com.jme.bounding.BoundingBox:intersects
 58644   2104.2    0.5  com.jme.scene.Geometry:setSolidColor
 12851   2083.8    0.5  com.jme.bounding.BoundingBox:intersects
 12851   2067.5    0.5  com.jme.bounding.BoundingBox:intersects
121632   2036.2    0.5  org.jcrpg.threed.jme.geometryinstancing.AABB:expand
 10317   1986.8    0.5  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchMesh:updateBound
 12832   1959.3    0.5  com.jme.renderer.lwjgl.LWJGLRenderer:draw
111134   1848.3    0.5  org.jcrpg.threed.jme.geometryinstancing.AABB:expand
 12832   1791.3    0.4  com.jme.scene.state.lwjgl.LWJGLLightState:apply
     1   1783.3    0.4  org.jcrpg.threed.scene.RenderedArea:getRenderedSpace
 55567   1689.7    0.4  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitColors
    30   1684.3    0.4  com.jme.util.resource.SimpleResourceLocator:locateResource
 13725   1658.0    0.4  com.jme.scene.state.lwjgl.LWJGLMaterialState:apply
 55567   1656.1    0.4  com.jme.bounding.BoundingBox:whichSide
 13725   1631.2    0.4  com.jme.renderer.lwjgl.LWJGLRenderer:draw
 96075   1621.1    0.4  com.jme.scene.state.lwjgl.LWJGLLightState:setSingleLightEnabled
 54900   1617.2    0.4  com.jme.scene.state.lwjgl.LWJGLMaterialState:applyColor
 12851   1616.2    0.4  com.jme.bounding.BoundingBox:transform
 12851   1599.7    0.4  com.jme.bounding.BoundingBox:transform
  2534   1593.3    0.4  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchMesh:updateBound
 12832   1517.5    0.4  com.jme.scene.state.lwjgl.LWJGLMaterialState:apply
   181   1487.0    0.4  org.jcrpg.threed.J3DCore:updateTimeRelated
410624   1481.4    0.4  com.jme.scene.state.TextureState:getTexture
 60816   1447.9    0.4  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitIndices
 13725   1425.1    0.4  com.jme.scene.batch.SharedBatch:draw
 60816   1415.2    0.4  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitNormals
 51328   1388.1    0.3  com.jme.scene.state.lwjgl.LWJGLMaterialState:applyColor
 13198   1362.5    0.3  com.jme.scene.state.lwjgl.LWJGLTextureState:applyFilter
 55567   1334.8    0.3  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitIndices
 55567   1298.2    0.3  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitNormals
 50040   1201.5    0.3  org.lwjgl.opengl.ARBBufferObject:glBindBufferARB
 71890   1197.5    0.3  com.jme.scene.state.lwjgl.LWJGLLightState:setSingleLightEnabled
  2928   1190.9    0.3  com.jme.scene.state.lwjgl.LWJGLTextureState:apply
  4758   1183.0    0.3  com.jme.renderer.lwjgl.LWJGLRenderer:predrawGeometry
 13725   1182.7    0.3  com.jme.renderer.lwjgl.LWJGLRenderer:doTransforms
 13725   1124.5    0.3  com.jme.scene.state.lwjgl.LWJGLFogState:apply
 13725   1114.2    0.3  com.jme.scene.state.lwjgl.LWJGLShaderObjectsState:apply
 60816   1086.9    0.3  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:preCommit
     1   1073.5    0.3  org.jcrpg.apps.Jcrpg:start
 12832   1060.3    0.3  com.jme.scene.state.lwjgl.LWJGLShaderObjectsState:apply
 12832   1046.5    0.3  com.jme.scene.state.lwjgl.LWJGLFogState:apply
 19548   1035.1    0.3  com.jme.renderer.AbstractCamera:contains
 60816   1027.3    0.3  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitVertices
 60816   1014.7    0.3  org.jcrpg.threed.jme.geometryinstancing.AABB:mergeLocal
 55567    985.5    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:preCommit
 12832    969.0    0.2  org.lwjgl.opengl.GL11:glDrawElements
  4118    965.3    0.2  com.jme.scene.SceneElement:updateRenderState
 55567    941.9    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitVertices
 55567    934.7    0.2  org.jcrpg.threed.jme.geometryinstancing.AABB:mergeLocal
257664    927.3    0.2  com.jme.scene.state.TextureState:getTexture
  2928    909.8    0.2  com.jme.renderer.lwjgl.LWJGLRenderer:predrawGeometry
 12832    889.2    0.2  com.jme.renderer.lwjgl.LWJGLRenderer:doTransforms
 50962    881.0    0.2  org.lwjgl.opengl.GL11:glEnableClientState
     1    867.8    0.2  org.jcrpg.world.Engine:run
 13725    865.3    0.2  com.jme.scene.state.lwjgl.LWJGLLightState:setAttenuate
 50040    861.7    0.2  org.lwjgl.opengl.StateTracker:bindBuffer
 20091    853.2    0.2  com.jme.scene.Spatial:onDraw
 13725    830.5    0.2  com.jme.scene.state.lwjgl.LWJGLCullState:apply
  8052    825.0    0.2  com.jme.scene.state.lwjgl.LWJGLTextureState:applyFilter
  3381    813.1    0.2  com.jme.scene.SceneElement:updateRenderState
     9    786.1    0.2  com.jmex.model.converters.maxutils.TDSFile:putChildMeshes
 13198    783.3    0.2  com.jme.scene.state.lwjgl.LWJGLTextureState:applyTextureTransforms
  3314    765.0    0.2  com.jme.scene.SceneElement:updateRenderState
 12832    764.3    0.2  com.jme.scene.state.lwjgl.LWJGLCullState:apply
 10317    752.2    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchMesh:rewindBuffers
 12851    734.7    0.2  com.jme.scene.Geometry:findPick
 43468    721.2    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:getNumIndices
 13725    717.0    0.2  com.jme.scene.state.lwjgl.LWJGLWireframeState:apply
  2534    706.4    0.2  org.jcrpg.threed.jme.TrimeshGeometryBatch:onDraw
    18    701.5    0.2  com.jme.util.resource.SimpleResourceLocator:locateResource
 27932    694.2    0.2  com.jme.renderer.RenderQueue$OpaqueComp:compareByStates
 12832    677.6    0.2  com.jme.scene.state.lwjgl.LWJGLWireframeState:apply
 13198    668.2    0.2  com.jme.scene.state.lwjgl.LWJGLTextureState:applyWrap
 60816    650.7    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:wantCommit
 27932    647.8    0.2  com.jme.renderer.RenderQueue$OpaqueComp:compare
 19548    644.1    0.2  com.jme.scene.Node:findPick
 13032    632.6    0.2  com.jme.scene.Spatial:localToWorld
 13032    628.7    0.2  com.jme.scene.Spatial:localToWorld
 10270    626.4    0.2  com.jme.scene.state.lwjgl.LWJGLLightState:setAttenuate
   764    618.7    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:preCommit
   764    618.3    0.2  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitColors
  2928    612.2    0.2  com.jme.renderer.lwjgl.LWJGLRenderer:applyStates
 13198    603.2    0.1  com.jme.scene.state.lwjgl.LWJGLTextureState:applyTexCoordGeneration
 59368    596.9    0.1  com.jme.renderer.ColorRGBA:<init>
166701    590.9    0.1  com.jme.math.FastMath:abs
   382    589.0    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitNormals
 55567    588.8    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:wantCommit
 58644    582.5    0.1  com.jme.scene.TriMesh:getBatch
 12832    574.4    0.1  org.lwjgl.opengl.GL11:glTexCoordPointer
 12832    569.0    0.1  org.lwjgl.opengl.GL11:glVertexPointer
150975    566.4    0.1  com.jme.scene.state.RenderState:needsRefresh
 55567    557.6    0.1  com.jme.math.Plane:pseudoDistance
154212    550.1    0.1  com.jme.math.FastMath:abs
 10317    549.4    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchMesh:preCommit
154212    549.4    0.1  com.jme.math.FastMath:abs
 10317    544.8    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchMesh:commit
 12851    542.2    0.1  com.jme.scene.Geometry:updateWorldBound
 12851    539.0    0.1  com.jme.scene.Geometry:updateWorldBound
141152    524.2    0.1  com.jme.scene.state.RenderState:needsRefresh
142151    514.3    0.1  com.jme.scene.SceneElement:getRenderState
  4913    508.2    0.1  org.jcrpg.world.place.geography.Mountain:getPointSurfaceData
 12832    507.6    0.1  org.lwjgl.opengl.GL11:glNormalPointer
 12466    495.8    0.1  org.lwjgl.opengl.GL11:glColorPointer
 12851    481.5    0.1  com.jme.scene.Geometry:updateWorldData
121632    473.5    0.1  org.jcrpg.threed.jme.geometryinstancing.AABB:min
 26030    472.6    0.1  org.lwjgl.opengl.GL11:glTexParameteri
 12851    465.3    0.1  com.jme.scene.Geometry:updateWorldData
  2928    459.9    0.1  com.jme.renderer.lwjgl.LWJGLRenderer:draw
 18239    457.6    0.1  org.lwjgl.opengl.GL11:glMaterial
121632    455.6    0.1  org.jcrpg.threed.jme.geometryinstancing.AABB:max
     1    446.8    0.1  org.jcrpg.threed.J3DCore:render
121632    446.2    0.1  com.jme.scene.batch.GeomBatch:getNormalBuffer
 12832    442.8    0.1  com.jme.scene.batch.TriangleBatch:draw
117288    439.5    0.1  com.jme.scene.Geometry:getBatchCount
 26030    438.9    0.1  org.lwjgl.opengl.GL11:glTexParameteri
 25664    437.7    0.1  org.lwjgl.opengl.GLChecks:getReferences
121632    435.9    0.1  com.jme.scene.batch.TriangleBatch:getIndexBuffer
121632    435.1    0.1  com.jme.scene.batch.GeomBatch:getColorBuffer
117964    430.5    0.1  com.jme.scene.SceneElement:getRenderState
 13725    430.4    0.1  com.jme.scene.state.lwjgl.LWJGLShaderObjectsState:isSupported
 16561    430.3    0.1  com.jme.renderer.RenderQueue$OpaqueComp:compareByStates
  2534    423.2    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchMesh:commit
116263    420.7    0.1  com.jme.math.Vector3f:equals
111134    419.6    0.1  org.jcrpg.threed.jme.geometryinstancing.AABB:min
  2534    417.1    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchMesh:preCommit
  8967    416.7    0.1  org.lwjgl.opengl.GL11:glCallList
115659    413.1    0.1  com.jme.math.FastMath:abs
115659    412.8    0.1  com.jme.math.FastMath:abs
115659    412.2    0.1  com.jme.math.FastMath:abs
115659    411.8    0.1  com.jme.math.Vector3f:dot
  8052    411.2    0.1  com.jme.scene.state.lwjgl.LWJGLTextureState:applyWrap
115659    411.0    0.1  com.jme.math.Vector3f:dot
115169    411.0    0.1  org.jcrpg.world.Engine:getWorldMeanTime
111134    409.7    0.1  com.jme.scene.batch.TriangleBatch:getIndexBuffer
 10317    409.5    0.1  com.jme.scene.Spatial:onDraw
115659    408.8    0.1  com.jme.math.Vector3f:dot
111134    406.7    0.1  com.jme.scene.batch.GeomBatch:getNormalBuffer
112676    404.2    0.1  com.jme.scene.SceneElement:getRenderState
111134    403.3    0.1  org.jcrpg.threed.jme.geometryinstancing.AABB:max
111688    401.5    0.1  com.jme.scene.state.RenderState:setNeedsRefresh
 10317    396.7    0.1  com.jme.scene.TriMesh:draw
107617    395.8    0.1  com.jme.scene.state.RenderState:setNeedsRefresh
111134    395.2    0.1  com.jme.scene.batch.GeomBatch:getColorBuffer
 12832    393.1    0.1  com.jme.scene.state.lwjgl.LWJGLShaderObjectsState:isSupported
 12851    391.5    0.1  com.jme.scene.batch.GeomBatch:updateWorldBound
 12851    389.8    0.1  com.jme.scene.batch.GeomBatch:findPick
 12832    386.6    0.1  com.jme.renderer.lwjgl.LWJGLRenderer:applyNormalMode
 12851    386.3    0.1  com.jme.scene.batch.GeomBatch:updateWorldBound
 13725    376.6    0.1  org.lwjgl.opengl.GL11:glLight
 16561    376.2    0.1  com.jme.renderer.RenderQueue$OpaqueComp:compare
  8052    365.0    0.1  com.jme.scene.state.lwjgl.LWJGLTextureState:applyTexCoordGeneration
  2928    354.5    0.1  com.jme.renderer.lwjgl.LWJGLRenderer:prepVBO
     1    350.3    0.1  com.jme.system.lwjgl.LWJGLPropertiesDialog:createUI
 96075    348.2    0.1  com.jme.scene.state.lwjgl.records.StateRecord:isValid
  2534    346.1    0.1  org.jcrpg.threed.jme.vegetation.BillboardPartVegetation:draw
 13725    344.9    0.1  org.lwjgl.opengl.GL11:glLight



Abnormal with 1.0:


+


| Most expensive methods (by net time)
| Frame Count Limit: Unlimited
+

               Net
         
 Count     Time    Pct  Location
 =====     ====    ===  ========
577724  52155.4    4.4  com.jme.scene.batch.TriangleBatch:getTriangle
566526  51095.8    4.3  com.jme.scene.batch.TriangleBatch:getTriangle
560622  50526.7    4.3  com.jme.scene.batch.TriangleBatch:getTriangle
560622  50497.9    4.2  com.jme.scene.batch.TriangleBatch:getTriangle
484456  43665.9    3.7  com.jme.scene.batch.TriangleBatch:getTriangle
459118  41340.9    3.5  com.jme.scene.batch.TriangleBatch:getTriangle
383104  34450.4    2.9  com.jme.scene.batch.TriangleBatch:getTriangle
669120  33030.5    2.8  com.jme.scene.Spatial:localToWorld
286016  26093.8    2.2  com.jme.scene.batch.TriangleBatch:getTriangle
223040  20155.5    1.7  com.jme.scene.batch.TriangleBatch:getTriangle
223040  20079.2    1.7  com.jme.scene.batch.TriangleBatch:getTriangle
115169  19604.3    1.6  org.jcrpg.world.place.World:getCube
1610708  16568.9    1.4  org.jcrpg.world.place.Boundaries:isInside
  2656  15390.8    1.3  com.jme.bounding.BoundingBox:computeFromTris
 11432  15355.9    1.3  com.jme.bounding.BoundingBox:computeFromTris
  3432  15155.6    1.3  com.jme.bounding.BoundingBox:computeFromTris
  5716  15098.0    1.3  com.jme.bounding.BoundingBox:computeFromTris
291264  14383.9    1.2  com.jme.scene.Spatial:localToWorld
 10496  13385.5    1.1  com.jme.bounding.BoundingBox:computeFromTris
 15744  12938.0    1.1  com.jme.bounding.BoundingBox:computeFromTris
228189  11312.8    1.0  com.jme.scene.Spatial:localToWorld
228042  11269.1    0.9  com.jme.scene.Spatial:localToWorld
 18368  11047.2    0.9  com.jme.bounding.BoundingBox:computeFromTris
188928   9286.7    0.8  com.jme.scene.Spatial:localToWorld
 97088   8774.4    0.7  com.jme.scene.batch.TriangleBatch:getTriangle
 15744   8332.2    0.7  com.jme.bounding.BoundingBox:computeFromTris
223040   8044.5    0.7  com.jme.math.Ray:intersects
 20992   7580.6    0.6  com.jme.bounding.CollisionTree:intersect
 20992   6947.6    0.6  com.jme.bounding.BoundingBox:computeFromTris
 76063   6905.7    0.6  com.jme.scene.batch.TriangleBatch:getTriangle
 76014   6896.3    0.6  com.jme.scene.batch.TriangleBatch:getTriangle
1733172   6271.4    0.5  com.jme.bounding.BoundingBox:checkMinMax
1733172   6264.6    0.5  com.jme.util.geom.BufferUtils:populateFromBuffer
1733172   6233.4    0.5  com.jme.scene.batch.GeomBatch:getVertexBuffer
1733172   6229.8    0.5  com.jme.scene.batch.TriangleBatch:getVertIndex
1733172   6214.0    0.5  com.jme.scene.batch.TriangleBatch:getIndexBuffer
1610708   6176.8    0.5  org.jcrpg.world.place.Boundaries:getKey
1699578   6147.2    0.5  com.jme.util.geom.BufferUtils:populateFromBuffer
1699578   6130.4    0.5  com.jme.scene.batch.GeomBatch:getVertexBuffer
1699578   6119.9    0.5  com.jme.bounding.BoundingBox:checkMinMax
1699578   6118.1    0.5  com.jme.scene.batch.TriangleBatch:getVertIndex
1699578   6116.0    0.5  com.jme.scene.batch.TriangleBatch:getIndexBuffer
1681866   6091.6    0.5  com.jme.util.geom.BufferUtils:populateFromBuffer
1681866   6078.1    0.5  com.jme.util.geom.BufferUtils:populateFromBuffer
1681866   6075.7    0.5  com.jme.scene.batch.TriangleBatch:getVertIndex
1681866   6070.4    0.5  com.jme.bounding.BoundingBox:checkMinMax
1681866   6061.2    0.5  com.jme.bounding.BoundingBox:checkMinMax
1681866   6048.9    0.5  com.jme.scene.batch.TriangleBatch:getIndexBuffer
1681866   6045.8    0.5  com.jme.scene.batch.TriangleBatch:getVertIndex
1681866   6037.9    0.5  com.jme.scene.batch.TriangleBatch:getIndexBuffer
1681866   6027.5    0.5  com.jme.scene.batch.GeomBatch:getVertexBuffer
1681866   6027.1    0.5  com.jme.scene.batch.GeomBatch:getVertexBuffer
 62976   5654.5    0.5  com.jme.scene.batch.TriangleBatch:getTriangle
1453368   5250.1    0.4  com.jme.util.geom.BufferUtils:populateFromBuffer
1453368   5245.2    0.4  com.jme.scene.batch.TriangleBatch:getVertIndex
1453368   5241.2    0.4  com.jme.bounding.BoundingBox:checkMinMax
1453368   5224.8    0.4  com.jme.scene.batch.GeomBatch:getVertexBuffer
1453368   5205.1    0.4  com.jme.scene.batch.TriangleBatch:getIndexBuffer
1377354   4977.4    0.4  com.jme.util.geom.BufferUtils:populateFromBuffer
1377354   4967.7    0.4  com.jme.bounding.BoundingBox:checkMinMax
1377354   4960.1    0.4  com.jme.scene.batch.TriangleBatch:getVertIndex
1377354   4950.7    0.4  com.jme.scene.batch.TriangleBatch:getIndexBuffer
1377354   4944.7    0.4  com.jme.scene.batch.GeomBatch:getVertexBuffer
1149312   4183.1    0.4  com.jme.scene.batch.TriangleBatch:getIndexBuffer
1150680   4146.8    0.3  org.jcrpg.world.place.Place:getBoundaries
1149312   4145.3    0.3  com.jme.util.geom.BufferUtils:populateFromBuffer
1149312   4134.2    0.3  com.jme.bounding.BoundingBox:checkMinMax
1149312   4131.5    0.3  com.jme.scene.batch.TriangleBatch:getVertIndex
1149312   4126.4    0.3  com.jme.scene.batch.GeomBatch:getVertexBuffer
     8   4059.6    0.3  com.jmex.model.converters.maxutils.TDSFile:putChildMeshes
 18368   3940.8    0.3  com.jme.bounding.CollisionTree:intersect
 76014   3768.8    0.3  com.jme.scene.Spatial:localToWorld
 97088   3507.5    0.3  com.jme.math.Ray:intersects
 20992   3491.5    0.3  com.jme.bounding.BoundingBox:intersects
 15744   3331.9    0.3  com.jme.bounding.CollisionTree:intersect
858048   3100.4    0.3  com.jme.scene.batch.GeomBatch:getVertexBuffer
858048   3097.6    0.3  com.jme.bounding.BoundingBox:checkMinMax
858048   3091.9    0.3  com.jme.util.geom.BufferUtils:populateFromBuffer
858048   3083.7    0.3  com.jme.scene.batch.TriangleBatch:getVertIndex
858048   3077.9    0.3  com.jme.scene.batch.TriangleBatch:getIndexBuffer
 18368   3061.1    0.3  com.jme.bounding.BoundingBox:intersects
 11425   2992.1    0.3  com.jme.bounding.CollisionTree:intersect
 15744   2956.2    0.2  com.jme.bounding.CollisionTree:intersect
 76014   2752.9    0.2  com.jme.math.Ray:intersects
 76062   2750.7    0.2  com.jme.math.Ray:intersects
 20992   2701.1    0.2  com.jme.bounding.BoundingBox:transform
 15744   2627.5    0.2  com.jme.bounding.BoundingBox:intersects
 15744   2625.8    0.2  com.jme.bounding.BoundingBox:intersects
669120   2444.5    0.2  com.jme.math.Quaternion:mult
669120   2435.9    0.2  com.jme.bounding.BoundingBox:checkMinMax
 18368   2432.4    0.2  com.jme.bounding.BoundingBox:transform
669120   2431.9    0.2  com.jme.util.geom.BufferUtils:populateFromBuffer
669120   2423.9    0.2  com.jme.scene.batch.TriangleBatch:getVertIndex
669120   2423.8    0.2  com.jme.math.Vector3f:set
669120   2413.1    0.2  com.jme.math.Vector3f:multLocal
669120   2412.3    0.2  com.jme.scene.Spatial:getWorldTranslation
669120   2411.9    0.2  com.jme.util.geom.BufferUtils:populateFromBuffer
669120   2411.5    0.2  com.jme.math.Vector3f:subtract
669120   2408.3    0.2  com.jme.scene.Spatial:getWorldScale
669120   2406.7    0.2  com.jme.scene.batch.TriangleBatch:getVertIndex
669120   2405.4    0.2  com.jme.math.Vector3f:addLocal
669120   2405.3    0.2  com.jme.scene.batch.TriangleBatch:getIndexBuffer
669120   2405.1    0.2  com.jme.scene.Spatial:getWorldRotation
669120   2402.8    0.2  com.jme.scene.batch.GeomBatch:getVertexBuffer
669120   2398.7    0.2  com.jme.scene.batch.TriangleBatch:getIndexBuffer
669120   2398.3    0.2  com.jme.scene.batch.GeomBatch:getVertexBuffer
612079   2299.1    0.2  com.jme.math.Vector3f:equals
 25338   2292.1    0.2  com.jme.scene.batch.TriangleBatch:getTriangle
 62976   2264.5    0.2  com.jme.math.Ray:intersects
223040   2234.6    0.2  com.jme.math.Vector3f:cross
223040   2234.1    0.2  com.jme.math.Ray:intersectWhere
223040   2231.6    0.2  com.jme.math.Ray:intersect
223040   2226.9    0.2  com.jme.math.Vector3f:cross
577724   2077.6    0.2  com.jme.scene.batch.TriangleBatch:getTriangleCount
 15744   2056.1    0.2  com.jme.bounding.BoundingBox:transform
 15744   2053.6    0.2  com.jme.bounding.BoundingBox:transform
566526   2043.3    0.2  com.jme.scene.batch.TriangleBatch:getTriangleCount
560622   2028.9    0.2  com.jme.scene.batch.TriangleBatch:getTriangleCount
560622   2018.3    0.2  com.jme.scene.batch.TriangleBatch:getTriangleCount
 11425   1916.6    0.2  com.jme.bounding.BoundingBox:intersects
     1   1813.1    0.2  org.jcrpg.threed.scene.RenderedArea:getRenderedSpace
 10496   1741.6    0.1  com.jme.bounding.BoundingBox:intersects
484456   1740.3    0.1  com.jme.scene.batch.TriangleBatch:getTriangleCount
459118   1653.8    0.1  com.jme.scene.batch.TriangleBatch:getTriangleCount
 33594   1653.6    0.1  com.jme.scene.Spatial:localToWorld
 10496   1509.8    0.1  com.jme.bounding.CollisionTree:intersect
 11425   1482.5    0.1  com.jme.bounding.BoundingBox:transform
383104   1383.0    0.1  com.jme.scene.batch.TriangleBatch:getTriangleCount
 10496   1375.4    0.1  com.jme.bounding.BoundingBox:transform
     1   1286.6    0.1  org.jcrpg.world.Engine:run
291264   1072.4    0.1  com.jme.util.geom.BufferUtils:populateFromBuffer
291264   1056.3    0.1  com.jme.math.Quaternion:mult
291264   1054.8    0.1  com.jme.scene.batch.TriangleBatch:getVertIndex
291264   1051.3    0.1  com.jme.math.Vector3f:addLocal
291264   1051.0    0.1  com.jme.math.Vector3f:set
291264   1050.3    0.1  com.jme.scene.Spatial:getWorldScale
291264   1049.8    0.1  com.jme.scene.Spatial:getWorldTranslation
291264   1048.7    0.1  com.jme.math.Vector3f:multLocal
291264   1048.4    0.1  com.jme.scene.batch.GeomBatch:getVertexBuffer
291264   1048.1    0.1  com.jme.scene.Spatial:getWorldRotation
291264   1046.9    0.1  com.jme.math.Vector3f:subtract
291264   1046.8    0.1  com.jme.scene.batch.TriangleBatch:getIndexBuffer
     1   1046.3    0.1  org.jcrpg.apps.Jcrpg:start
286016   1027.6    0.1  com.jme.scene.batch.TriangleBatch:getTriangleCount
 11198   1018.0    0.1  com.jme.scene.batch.TriangleBatch:getTriangle
  4118   1006.8    0.1  com.jme.scene.SceneElement:updateRenderState
 76014    999.8    0.1  com.jme.math.Vector3f:cross
 97088    974.7    0.1  com.jme.math.Ray:intersect
 97088    974.3    0.1  com.jme.math.Ray:intersectWhere
 97088    972.7    0.1  com.jme.math.Vector3f:cross
 97088    966.2    0.1  com.jme.math.Vector3f:cross
  5713    965.4    0.1  com.jme.bounding.BoundingBox:intersects
 25338    918.6    0.1  com.jme.math.Ray:intersects
251904    914.8    0.1  com.jme.math.FastMath:abs
 17712    872.8    0.1  com.jme.scene.Spatial:localToWorld
 18368    868.7    0.1  com.jme.bounding.CollisionTree:createTree
228189    838.0    0.1  com.jme.util.geom.BufferUtils:populateFromBuffer
228042    833.9    0.1  com.jme.util.geom.BufferUtils:populateFromBuffer
228042    832.6    0.1  com.jme.scene.Spatial:getWorldRotation
228189    828.8    0.1  com.jme.scene.batch.TriangleBatch:getVertIndex
228042    828.8    0.1  com.jme.scene.Spatial:getWorldTranslation
228189    828.6    0.1  com.jme.math.Quaternion:mult
228042    828.0    0.1  com.jme.math.Vector3f:addLocal
 15744    827.5    0.1  com.jme.bounding.CollisionTree:createTree
228189    825.2    0.1  com.jme.math.Vector3f:set
228189    824.9    0.1  com.jme.scene.batch.GeomBatch:getVertexBuffer
228186    824.5    0.1  com.jme.math.Vector3f:subtract
228189    824.4    0.1  com.jme.scene.batch.TriangleBatch:getIndexBuffer
228042    824.2    0.1  com.jme.math.Quaternion:mult
228042    824.1    0.1  com.jme.math.Vector3f:multLocal
228189    823.8    0.1  com.jme.math.Vector3f:multLocal
228189    823.7    0.1  com.jme.math.Vector3f:addLocal
228189    823.4    0.1  com.jme.scene.Spatial:getWorldRotation
228042    821.8    0.1  com.jme.scene.Spatial:getWorldScale
228042    821.1    0.1  com.jme.math.Vector3f:subtract
228189    821.1    0.1  com.jme.scene.Spatial:getWorldTranslation
228042    821.0    0.1  com.jme.scene.batch.GeomBatch:getVertexBuffer
228042    820.9    0.1  com.jme.scene.batch.TriangleBatch:getIndexBuffer
228042    819.2    0.1  com.jme.math.Vector3f:set
228042    817.7    0.1  com.jme.scene.batch.TriangleBatch:getVertIndex
228189    816.9    0.1  com.jme.scene.Spatial:getWorldScale
 15744    816.5    0.1  com.jme.bounding.CollisionTree:createTree
220416    810.9    0.1  com.jme.math.FastMath:abs
223040    807.9    0.1  com.jme.math.Vector3f:dot
223040    804.8    0.1  com.jme.scene.batch.TriangleBatch:getTriangleCount
223040    804.6    0.1  com.jme.scene.batch.TriangleBatch:getTriangleCount
223040    801.9    0.1  com.jme.math.Vector3f:set
  3381    800.7    0.1  com.jme.scene.SceneElement:updateRenderState
  3314    783.0    0.1  com.jme.scene.SceneElement:updateRenderState
 76014    766.3    0.1  com.jme.math.Ray:intersectWhere
 76014    762.8    0.1  com.jme.math.Vector3f:cross
 76014    762.6    0.1  com.jme.math.Ray:intersect
 76062    762.5    0.1  com.jme.math.Vector3f:cross
 76062    758.4    0.1  com.jme.math.Vector3f:cross
 76062    756.6    0.1  com.jme.math.Ray:intersect
 76062    755.6    0.1  com.jme.math.Ray:intersectWhere
  5713    753.9    0.1  com.jme.bounding.BoundingBox:transform
     9    747.3    0.1  com.jmex.model.converters.maxutils.TDSFile:putChildMeshes
 43468    721.3    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:getNumIndices
188928    688.6    0.1  com.jme.math.FastMath:abs
188928    687.6    0.1  com.jme.math.FastMath:abs
188928    684.1    0.1  com.jme.math.FastMath:abs
 20992    682.6    0.1  com.jme.bounding.CollisionTree:createTree
188928    681.7    0.1  com.jme.math.Vector3f:dot
188928    681.1    0.1  com.jme.util.geom.BufferUtils:populateFromBuffer
188928    678.6    0.1  com.jme.math.Vector3f:addLocal
188928    678.5    0.1  com.jme.math.Vector3f:multLocal
188928    678.0    0.1  com.jme.math.Quaternion:mult
188928    677.0    0.1  com.jme.scene.Spatial:getWorldTranslation
188928    676.6    0.1  com.jme.math.Vector3f:subtract
188928    676.3    0.1  com.jme.scene.batch.TriangleBatch:getVertIndex
188928    676.2    0.1  com.jme.scene.batch.TriangleBatch:getIndexBuffer
188928    675.7    0.1  com.jme.math.Vector3f:set
188928    675.7    0.1  com.jme.scene.Spatial:getWorldRotation
188928    675.3    0.1  com.jme.scene.Spatial:getWorldScale
188928    675.1    0.1  com.jme.scene.batch.GeomBatch:getVertexBuffer
   764    635.9    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitColors
     1    630.1    0.1  org.jcrpg.threed.J3DCore:render
 62976    629.8    0.1  com.jme.math.Ray:intersect
 62976    629.0    0.1  com.jme.math.Ray:intersectWhere
 62976    625.9    0.1  com.jme.math.Vector3f:cross
 62976    625.9    0.1  com.jme.math.Vector3f:cross
   764    617.3    0.1  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:preCommit
 10496    612.8    0.1  com.jme.bounding.CollisionTree:createTree
165312    605.1    0.1  com.jme.math.FastMath:abs
165312    601.6    0.1  com.jme.math.Vector3f:dot
   382    592.9    0.0  org.jcrpg.threed.jme.geometryinstancing.GeometryBatchSpatialInstance:commitNormals
  3431    577.3    0.0  com.jme.bounding.BoundingBox:intersects
 11432    561.5    0.0  com.jme.bounding.CollisionTree:createTree
  5904    534.6    0.0  com.jme.scene.batch.TriangleBatch:getTriangle
142151    525.0    0.0  com.jme.scene.SceneElement:getRenderState
  4913    524.9    0.0  org.jcrpg.world.place.geography.Mountain:getPointSurfaceData
141696    518.7    0.0  com.jme.math.FastMath:abs
141696    518.1    0.0  com.jme.math.Vector3f:dot
141696    516.4    0.0  com.jme.math.FastMath:abs
  2656    516.3    0.0  com.jme.bounding.CollisionTree:intersect
141696    515.9    0.0  com.jme.math.Vector3f:dot
137100    498.5    0.0  com.jme.math.FastMath:abs
  9254    478.3    0.0  com.jmex.model.converters.ObjToJme:processLine
  5713    470.8    0.0  com.jme.bounding.CollisionTree:intersect

Hope it helps…something batch related eats the cpu :S

have a call tree for those heaviest cpu hoggers? most profilers give you that…so that we know where those calls to gettriangle come from in your case etc…

Looks like it's probably CollisionTree related.  Maybe you are not properly using them or hitting some jme code that is improperly updating trees.

renanse said:

Looks like it's probably CollisionTree related.  Maybe you are not properly using them or hitting some jme code that is improperly updating trees.


I've found what it's related! It's really the lensflare thing mentioned here before! If I turn it off, FPS is good with 1.0 no matter which direction I'm looking at in the game. If it's on, and looking at it in an angle around 90 degrees (not 3 dimensionally), the fps goes 0. And yes, it must be bounding/intersection related thingy.  Any ideas?

Seems to be caused by this patch (committed to cvs by nca). Not sure what that patch should do, but it essentially changed

if ((mesh.getType() & SceneElement.TRIMESH) != 0) {
                        occludingTriMeshes.add(mesh);


to

if ((mesh.getType() & SceneElement.TRIMESH) == 0) {
                        occludingTriMeshes.add(mesh);


Which does not make much sense to me :|
Additionally it changed the assumed lensflare radius and removed a >>1 (divide by 2), which cannot affect performance.
irrisor said:

Seems to be caused by this patch (committed to cvs by nca). Not sure what that patch should do, but it essentially changed

if ((mesh.getType() & SceneElement.TRIMESH) != 0) {
                        occludingTriMeshes.add(mesh);


to

if ((mesh.getType() & SceneElement.TRIMESH) == 0) {
                        occludingTriMeshes.add(mesh);


Which does not make much sense to me :|
Additionally it changed the assumed lensflare radius and removed a >>1 (divide by 2), which cannot affect performance.


Hope this is really the problem, right now cannot test it myself. Haven't been there some other commits to lens flare besides that? I hope we'll have a quick solution in CVS soon, I can't wait to upgrade to the new version! :)