TextureFX performance optimization

i would like to add some optimization to the TextureFX format. there is this infamous Info (EX9.Texture) performance problem and with 10-15 filters in a chain can result some ugly high numbers in debug mode. i’ve tried the good old performer trick (NIL + switch + s+h + bang) after the info node in Blend (EX9.Texture filter) and i’ve got a huge performance gain. unfortunately i couldn’t solve it without a separate “Update Info” pin so you have to bang it from patch on texture resolution change-
demonstration and optimized template in attachment.
any opinions?

OptimizeTextureFX.zip (10.4 kB)


here is a screenshot of a test. I don’t notice anything special here, but let me know if it has to be tested in some more hardcore environment.

As I use Texture FX all the time, if there is a way for optimization, I’m definitely interested to contribute.

Thanks for the tricks.

out of curiosity: do you only get high numbers in debug mode or do you actually see a performance drop in terms of fps?

well there is a difference in fps too:P
lecloneur: it’s important when you have a lot of rendertargets or filters connected in an effect chain. if it’s used with only one filter or mixer after one rendertarget or directly on a dynamic/file texture then this kind of “optimization” has nearly no effect

Ok thanks.

great. i’ll just saw the difference in debug mode!
As soon as i’ve time i’ll make fps tests. thanks for finding and posting this. Didn’t know about the “good old performer trick”. What is happening there?

wow thats awesome! i experienced the perfomance lags as well but with this trick is just 1/10 of the normal performance. GREAT!

Would be interested in “whats going on” as well.

this is the trick by majortom Need your smartest tricks for my Wiki and diki made the module of it called performer diki modules so basically this optimization turns Info (EX9.Texture) off when it’s not needed to work.
unfortunately when i’ve tried this for the shared handle in /dx9ex mode the set+holded handle didn’t seem to work but i have to check that again

i got finally time to check the microdee idea.
I took my one quite heavy patch with lots of FXchains.
It uses to have it on GTX670 with 60 fps “filtered” quite stable by 50-70 % load.
but on my laptop with old QuadroFX 37000M i could get only jumping 11-20 fps by 100% load
first i changed Blend+SetAlpha: two nodes i use very often and i could get stable frame rate of 16 fps
then I changed almost all FX nodes and i could get stable 34 fps