Hey guys, we are having a situation where a scene with dozens of file nodes, calling dozens of UDIM tiles, performs better when loading non mipmapped images (.tiff) than when loading mipmapped images (.tx)
By default we have our pipeline produce tiled images of all our publish textures, regardless of the overall RAM consumption, and although we understand that there might be a slight difference in performance, this seems problematic.
Below are some render times for some tests we did (render times are average of several renders)
Progressive
Min Shd Rate 12
Min\Max Samples 1-100
Threshold 0.05
GI Brute force both engines
TIFF render time 14:18
TX render time 21:22 - 149.5% of TIFF render time
However, we noticed that if we switch the secondary engine to Light Cache, the behavior changes, making the scene with TX files render faster
Progressive
Min Shd Rate 12
Min\Max Samples 1-100
Threshold 0.1
GI Brute Force - Light Cache
TIFF render time 3:08
TX render time 2:01 - 64.24% of TIFF render time
We tried the same test with non tiled images and tiled EXRs and the results were similar, so I assume that is something to do with the bitmap buffer rather than the image format per se.
Can someone explain to me this behavior? Is this expected? an almost 50% of render time increase seem a bit drastic.
It would be interesting to repeat those tests with the beta version of V-Ray Next - we have done some performance improvements specifically for tiled files.
As for the numbers with V-Ray 3.60, it’s a bit hard to say what is going on without the scene. If the tiled texture memory limit is reached, this will have an impact when using tiled .tx files vwv non-tiled. This case is one of the things that we optimized for V-Ray Next.
When using the light cache, V-Ray is often able to shade secondary hits completely from the light cache, without having to evaluate any shaders or to read any textures, which would explain why it is faster in that case (the texture cache works better since it has mostly primary hits to deal with during final rendering).
This is just a theory though, there might be other factors (f.e. tiled textures need to read smaller chunks from disk/network, which can affect performance too). In any case, does increasing the tiled texture cache help?
We did run some tests in Vray next, and the results were more what we would have expected (similar render times between TIFF and TX). Unfortunately, Vray Next is not a viable option for us, since switching Vray version in the middle of production could be chaotic.
The first thing I tried was the increasing the tiled texture cache size, and this presented no change.
Ok, so this leaves the question of what to do. I’m not sure I will be able to merge the change into a 3.6 build although I will try. I suppose there’s no possibility of providing an example scene for profiling? Maybe there is something else that can be done.