John Mather

johnmather

About Me

EXPERTISE
Developer

Connect

LOCATION
Canada
WEBSITE

Houdini Skills

Availability

Not Specified

My Badges

SideFX Staff
Since Aug 2019

Recent Forum Posts

VEX: choose between operators (+ - * /) in the interface Oct. 29, 2025, 8:25 a.m.

tamte
you can make a function that combines masks and use it in for loop for each mask or whatever you are doing
If the number of loop iterations is high, you may get better performance by putting the conditional outside of multiple loops.

e.g., instead of:
for (int i = 0; i < 10000, i++)
{
if ( op == 0 ) out += mask1;
else if ( op == 1 ) out -= mask1;
else if ( op == 2 ) out *= mask1;
else if ( op == 3 ) out /= mask1;
}

It may be faster to do:
if (op == 0)
{
for (int i = 0; i < 10000, i++)
out += mask1;
}
else if (op == 1)
{
for (int i = 0; i < 10000, i++)
out -= mask1;
}
... etc

This reduces the number of conditions that need to be checked per iteration and can help the compiler optimize.

Note that I also replaced the if chain with an else-if chain. This allows the code to short-circuit, meaning that if one of the upper conditions is true, it doesn't need to check any of the lower conditions. e.g., if op == 0 is true, it doesn't need to check op == 1, op == 2 or op == 3, as op can only have a single value.

Crash cause of (supposedly) opened file count. Solaris USD Oct. 20, 2025, 11 a.m.

I see - so your list included a few thousand .tx files?

Please send this information to support so that it can be forwarded to the correct developer for investigation.

Crash cause of (supposedly) opened file count. Solaris USD Oct. 19, 2025, 10:25 p.m.

One thing you can do is run Process Informer: https://systeminformer.sourceforge.io/downloads [systeminformer.sourceforge.io]

Install and run it, then reproduce your issue in Houdini.

Once you start getting the "Too many open files" message, find Houdini in Process Informer, right click on it and choose Properties, then go to the Handles tab. Scroll down to where the Type column is File. This should show you all of the file handles that are currently open.