• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

FSX Drawcall "batching" in FSX SP2

hcornea

Resource contributor
Messages
2,388
Country
australia
I have a question, relating to planning scenery for a largish project.

From SP2 we are told that FSX batches drawcalls, so that materials that are "exactly the same" will involve a single drawcall - with all the efficiencies that implies.

I am considering using a single Material type (single diffuse textures) for the building roofs (mainly corrugated iron) - single diffuse texture, with detail and bump mapping. The building sides would have their own texture and material. (diffuse,spec and LM)

So, in essence - per building we would have 2 drawcalls.

If batch processing applies across the whole scenery area - this would be more efficient (assuming the same material is used) - but if it is only intra-MDL batch processing, then it would be preferable to design each MDL with a single drawcall and single material ( ie include the roof for each building on its own texture sheet)

SO, the question is:

Is batching of drawcalls intra-MDL (ie only within a single MDL file, or iterations of it) - or does it apply to all identical materials (name and properties) being rendered by FSX at the time.
 
Last edited:
Hi,

As far as I know it is between any object in the scene that uses exactly the same material (identical to the last checkbox in your FlightSimX material). It does not matter in which MDL file they are.
 
Thanks for the reply Arno.

In that case, I think I'll opt for a single roof texture sheet, with the same detail,bump etc. Which should add a single batch of drawcalls to the whole scenery - rather than an extra one per model.

Many thanks.
 
i m pretty confident that the steps described herein are enough, BUT.....is there any possible way that one can actually make sure that draw-call batching actually happens in-game....?!?!? :confused:
 
Hi,

No, there are no settings in FSX to turn the drawcall batching on or off. And there are also no statistics or so to see it working. So just make sure you have the same material and have no LODs or animations in the object is enough to get drawcall batching.

You will see that it is working by the increased performance :).
 
Sorry for digging up this thread. But it seem to me that the questions are not finally answered.
hcornea, how do you find what you do for drawcall batching. Is it work as assumed?
 
Last edited:
So, even we used the same material through a lot of models, (The same material means all the settings are the same) we still need to put mdl through ModelConverter to make draw call batching.

Normally, I merge the model of the same material into the new scene, I delete the model and use only material and apply to the new model.
Is that make draw call the same? Or I need to put it through model converter?
Still confusing.
 
If you use Gmax, then you need to pass the mdl files through ModelConverterX.

You can use the batch conversion process if that is easier.
 
Hi,

Drawcall batching is always between different MDL files, so if you merge them into one MDL we are not talking about drawcall batching anymore, but about minimizing the amount of drawcalls in a MDL. In that case just make sure the material settings are the same. DrawCallMonitor can show you how many drawcalls you have in your MDL.

To get working drawcall batching with GMax you always need to edit the file with ModelConverterX.
 
I think he is only merging in the old model to get the material, not merging the models into the scene.

It's indeed similar to what I do. Mdl files are set to open with ModelconverterX on double-clicking.

;)


Sent from my mobile .. words substituted by iPhone at will.
 
Interesting!

I though when I used the same identical material to different MDL that use the same texture, draw call should be minimized already.

So you recommend puting all mdl's from Gmax through Model converterX and output to FSXmdl's before compile with XML to bglcomp.
 
No, just using the same material will not give drawcall batching because gmax exports with an empty xanim file. That prevents the batching. It's a pity you can't choose in gmax.
 
This is really interesting indeed.

I'll try an experiment and I'll come back to tell the result later.

If this is something that must be done in every project, there should be something about drawcall batching on wiki.
 
Hi,

I guess it is a good idea to put this on the Wiki. There is some page about performance already, not sure how well it explains the drawcall batching.
 
The page that I read months ago not mention about this.
It only stated that the material in FSX should be identical even a minor change in specular power cause a new draw call.

But there are pros and cons too. Since LODs will not work after drawcall batching. The total effect might difficult to estimate between the effect of LOD and drawcall. But I think draw call has more effect than LODs, just only my thought.
 
Hi,

In general drawcall batching is indeed better. Only when objects have a lot of triangles lods are better for performance.

And of course if the object and material is only used on one object, you better use a lod as well.
 
Hi Guys,
I did the experiment already and the fps is much better. If they were the same, I would buy the one after drawcall batching since I can see all the trees together.

Before ModelConverter for drawcall batching.
VTSMbeforeConverter.jpg


After ModelConverter
VTSMafterConverter.jpg


This is amazing, Arno. You should put this in Wiki as well. Let's all of us know about this.
I wonder if this is also true for FS2004 mdl as well.

Like Arno said, it should be done in small objects that use the same texture such as custom made trees.
But it is not good for large object with a lot of polygon which placed only once, since LODs can work better.
Small object that only one model place many times like taxi light is not good too.
 
Last edited:
Hi,

Those are interesting results! I will try to write some more information on the Wiki soon.

FS2004 does not have the drawcall batching functionality, but minimizing the amount of drawcalls you use will also improve performance in FS2004.
 
Back
Top