Hi !
Featured games (84)
games approved by the League of Dukes
Games in Showcase (604)
Games in Android Showcase (171)
games submitted by our members
Games in WIP (653)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Profile information  (Read 1693 times)
0 Members and 1 Guest are viewing this topic.
Offline DavidYazel

Junior Devvie

Java games rock!

« Posted 2003-07-16 02:26:46 »

I just profiled the current rev of the xith3d engine running on top of logl.

It has some interesting results.  The breakdown is somthing like this:

14% in glDrawArray
5.4% in state sorting
5.86% in frustum culling
19% in transforming bounds after transform group is updated.
10% doing a commodification check on list iterator (looks like I will have to roll my own)
7% setting opengl state
3% in WindowsGLContext.makeCurrent
3% in swapBuffer

Rest is about 30 percent spread pretty evenly.

Here is the actual profile:

David Yazel
Xith3D Project Founder

It may look complicated, but in the end it is just a bunch of triangles
Offline gregorypierce

Senior Devvie

I come upon thee like the blue screen of death....

« Reply #1 - Posted 2003-07-16 02:47:20 »

While interesting, it would be more interesting if we had some idea of what it was doing at the time. How much were you drawing (poly wise). My last profile graph had my application spending over 35% of its time drawing. One thing I definitely don't have is lots of frame by frame bounds computations. I have fairly large box primitives that expand out in a direction based on an objects velocity so I can get cheap trivial rejects every frame and don't have to do anything expensive until I know they have hit something. These bounding primitives are sufficiently large such that I don't have to transform them after I animate objects.

Made my life easier and speed me up a good bit. As I read through your detailed profile, it looks like in your Java code you're doing a lot of things to minimize the load to the GPU - I went the opposite route and simply passed the load off to the GPU because from what I could tell, teh cards have just gotten so fast and the drivers are smart enough that I was wasting a lot of time doing stuff that the nvidia driver was doing anyways. Don't know if you have a copy of VTune of IPEAK, but I'm sure you'll find a profile at that level will reveal some interesting bits as well (on Windows anyways).

She builds, she builds oh man
When she links, she links I go crazy
Cause she looks like good code but she's really a hack
I think I'll run upstairs and grab a snack!
Offline DavidYazel

Junior Devvie

Java games rock!

« Reply #2 - Posted 2003-07-16 10:29:33 »

Yes its no more than "interesting" at this point.  I am not pushing the card at all yet.  In fact as a test I doubled the number of triangles in the test object and the frame rate only dropped 1 percent.

Very shortly (as soon as I finish porting my ASE loader) I will be able to do more complex tests and see how things go.

It is true we are doing a lot of work to save the GPU and that is because a typical magicosm scene has a lot of objects surrounding the avatar and we need to effecively cull them.  As for state sorting, well, thats one of the strengths of a scenegraph renderer... that you can render in an order that is optimal for the card but makes no sense logically.

David Yazel
Xith3D Project Founder

It may look complicated, but in the end it is just a bunch of triangles
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline josgood

Senior Newbie

Nudge reality.

« Reply #3 - Posted 2003-07-20 16:39:01 »

I just profiled the current rev of the xith3d engine running on top of logl.

It has some interesting results.  The breakdown is somthing like this:


3% in WindowsGLContext.makeCurrent


Thanks for posting your findings.  It's good to keep an eye on this stuff.

Is your code using the Animator class?  

The makeCurrent stat is curious.  I'm not claiming I'm an expert on JOGL (nee Jungle), but I thought it invoked makeCurrent just once for each thread switch.  That would mean once when an Animator is started than once again when it's stopped (e.g. makeCurrent( NULL, NULL ) ).

I know, I should just look at your code.  My excuse is I'm prepping my house to be painted. Smiley
Pages: [1]
  ignore  |  Print  
You cannot reply to this message, because it is very, very old.

SHC (28 views)
2015-08-01 03:58:20

Jesse (19 views)
2015-07-29 04:35:27

Riven (40 views)
2015-07-27 16:38:00

Riven (21 views)
2015-07-27 15:35:20

Riven (24 views)
2015-07-27 12:26:13

Riven (14 views)
2015-07-27 12:23:39

BurntPizza (36 views)
2015-07-25 00:14:37

BurntPizza (46 views)
2015-07-24 22:06:39

BurntPizza (31 views)
2015-07-24 06:06:53

NoxInc (37 views)
2015-07-22 22:16:53
List of Learning Resources
by gouessej
2015-07-09 11:29:36

How Do I Expand My Game?
by bashfrog
2015-06-14 11:34:43

List of Learning Resources
by PocketCrafter7
2015-05-31 05:37:30

Intersection Methods
by Roquen
2015-05-29 08:19:33

List of Learning Resources
by SilverTiger
2015-05-05 10:20:32

How to: JGO Wiki
by Mac70
2015-02-17 20:56:16

2D Dynamic Lighting
by ThePixelPony
2015-01-01 20:25:42

How do I start Java Game Development?
by gouessej
2014-12-27 19:41:21 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!