View Full Version : DrawCallMonitor
As a side product of the logic I made for ModelConverterX, I have now made a little tool that will display some statistics about a FSX MDL object. This help you to get an idea of how optimized your object is for performance.
The tool will show the amount of triangles, drawcalls and texture vertices for each LOD in your object. And if you show all details, then it can also show the amount of texture vertices and triangles per drawcall (and it shows the texture used if any, so that you get an idea which part of your object this is).
You can drag and drop your files on the tool to show their statistics or just use the open button. If there are any more suggestions (or bugs), please let me know.
Thanks a lot Arno, this will be a great help.
gh
Rats. I get an error when trying to load an FSX .mdl file:
System.IO.FileNotFoundException: Could not load file or assembly 'ObjectModel3D, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
EDIT: Never mind... Fr. Stupid forgot that he needed to install/register the parent program first... :tapedshut
mendiola_loyola
07 Mar 2008, 10:47
Dear n4gix:
Download the program ModelConverterX and copy the file ObjectModel3D.dll to the folder where is the program DrawCallMonitor.exe
Thanks.
Alfredo Mendiola Loyola
Lima, Perú
Hi Bill,
This is not your fault :), it was supposed to work without ModelConverterX. I will update the ZIP file to include the other DLL file as well.
New ZIP file uploaded now that contains all the needed files.
That is what I get from testing on my development PC that has more installed than the end user has :D.
owenhewitt
07 Mar 2008, 11:52
Fantastic news, Arno!! This will be an essential tool for future developments!
Regards,
Owen
FelixFFDS
07 Mar 2008, 12:01
Thanks, Arno,
Information reposted at FFDS with link to come to this thread.
lionheart
07 Mar 2008, 12:12
Many thanks Arno!
You are quite amazing, all the work and pioneering you have done in the FS world.
Bill
LHC
spotlope
07 Mar 2008, 12:25
Ah, now THAT is a useful tool! Arno, what would the FS dev world do without you? Thanks, mate. I'm off to measure my MDLs and weep now. ;-)
robby88
07 Mar 2008, 18:13
Thanks Arno :) Just what the doctor ordered.
Touradg
08 Mar 2008, 02:36
Very nice and usefull tool.i was looking for such tool for a long time.thanks
Burkhard
12 Mar 2008, 08:26
A nice tool, thanks for it.
I doubt what it calls drawcall is what MS calls a draw call. On an aircraft with 10 tires, each tire using the same material, it counts them as 10 drawcalls, while my understanding is that this is one only ( and the frames go down a far way when I used ten different textures for it ).
Best Burkhard
Indeed, Burkhard. Objects that use the exact same FSX Material & Material Properties are "batched together" into a single draw call.
However, it is still a very valuable tool as long as one compares one's own model against a similar default model.
Hi Burkhard,
Objects using one material don't have to be one drawcall. If they are animated for example, then they will probably be multiple drawcalls. And also the material is not only specified by the texture, but by all settings of your FSX material.
If there are some default files that have this same possible problem or if somebody has a testfile, let me know, then I can see if it is a bug in the tool.
Hi Folks
Arno -
Nice tool.
Please consider incorporating the following -
- Write full results to a text file, (including filename & path).
- Drawcalls for FS9 mdls.
- Drawcalls for scenery BGLs, (FSX & FS9).
This last item is where most FPS damage is being done.
That'd give us some ammunition for encouraging conversion.
HTH
ATB
Paul
Burkhard
13 Mar 2008, 08:53
The truth will be the batching - even when there are several draw calls, as long as it is the same material ( not only texture, but really material slots in GMAX as example ) its the more relevant number.
But the comparison is intersting. I wondered why it counts 50 drawcalls for the nearest LOD of my AI planes, but when I throw in the stock 738 it has 162 - so I do not wonder my planes are about 3 times faster.
Hi Burkhard,
Objects using one material don't have to be one drawcall. If they are animated for example, then they will probably be multiple drawcalls. And also the material is not only specified by the texture, but by all settings of your FSX material.
If there are some default files that have this same possible problem or if somebody has a testfile, let me know, then I can see if it is a bug in the tool.
Arno, let's ignore for the moment anything except say three objects, all of which use the exact same Material (i.e, all Properties are identical). FSX will 'batch' these three seperate objects into a single draw call, but your tool reports 3 draw calls.
Hi Folks
Arno -
Please could you look at the default - cruise_linerA_sm.mdl
located in - \SimObjects\Boats\cruise_linerA_sm\Model
Seeing dual sets of LODs
e.g. 25,50,75,100,25,50,75,100
I've no idea if it's -
- Correct/Wrong.
- The models themselves.
- DCM decoding them.
Occurs on several models.
HTH
ATB
Paul
Hi Bill,
Arno, let's ignore for the moment anything except say three objects, all of which use the exact same Material (i.e, all Properties are identical). FSX will 'batch' these three seperate objects into a single draw call, but your tool reports 3 draw calls.
I can not reproduce this. I made a simple scene in GMax with three objects, all using the same texture. After I export to MDL and open it in the tool is shows as one drawcall. This is because the exporter optimizes everything.
So when the tool shows multiple drawcalls, that means that inside the MDL there are multiple parts. If somebody can send me a MDL that shows multiple drawcalls for the same material, please send it to me so that I can debug the tool.
Hi Paul,
Please could you look at the default - cruise_linerA_sm.mdl
located in - \SimObjects\Boats\cruise_linerA_sm\Model
Seeing dual sets of LODs
e.g. 25,50,75,100,25,50,75,100
I've no idea if it's -
- Correct/Wrong.
- The models themselves.
- DCM decoding them.
I have seen this as well, I think it is related to animations or so, but I do not yet understand that part of the MDL file. What it means is that there are multiple LODE sections in the file with the same LOD value.
Hi Paul,
Please consider incorporating the following -
- Write full results to a text file, (including filename & path).
- Drawcalls for FS9 mdls.
- Drawcalls for scenery BGLs, (FSX & FS9).
This last item is where most FPS damage is being done.
That'd give us some ammunition for encouraging conversion.
Exporting to a filename is a good idea, I'll put that on my whislist.
About the FS9 MDL files, at the moment I have not yet made the reader for that for ModelConverterX, so that means I can not easily add it to DrawCallMonitor. Once I have that reader I will consider. On the other hand, in the FS9 MDL format the drawcalls are not so clearly identified, I could for example count material changes there.
What do you mean with drawcalls for BGL files? Are you talking about library BGL files with MDL files (in which case you could just count the MDL files and add them up) or do you mean some other BGL file? Also just counting the entire BGL might not be relevant, as it depends on what FS needs to draw on the screen at once for the total load.
Hi Folks
Arno -
Mean't to follow up earlier. :o
Reminded by a thread elsewhere.
The FSX default Aircreation trike's external model
won't load into DCM. :D
Is this related to Torgo's article - Let's blow up the exporter real good! (http://blogs.technet.com/torgo3000/archive/2008/01/24/let-s-blow-up-the-exporter-real-good.aspx) ?
(Sidenote - Article also confirms animated parts cause seperate drawcalls.)
DCM
Can the columns be made sortable please ?
(Maintain grouping by LOD).
re: BGLs
Low priority. :D
I was specifcally thinking of a bgl
containing a single model placement.
(In the context of comparing FS9/FSX impact).
FS9 MDLs
Whenever. :D
in the FS9 MDL format the drawcalls are not so clearly identified,
I could for example count material changes there.
As the mdl still has to be processed by FS,
maybe a question to the 'other place'
may identify what to look for.
HTH
ATB
Paul
Hi Paul,
The FSX default Aircreation trike's external model won't load into DCM. :D
Will check that, I guess it is just some sort of nasty bug in my code :).
Can the columns be made sortable please ?
(Maintain grouping by LOD).
Will check that, I would say that should be possible, but I will have to see if this is easy to implement with the control used now.
FS9 MDLs
Whenever. :D
OK, they are not so easy to read as in the FSX format but I will try to come up with something. Probably counting the SET_MATERIAL commands gets close :).
New version (http://www.fsdeveloper.com/forum/showthread.php?t=10953) is available now.
vBulletin® v3.8.3, Copyright ©2000-2013, Jelsoft Enterprises Ltd.