This week has proven to be exceptionally difficult. My excitement about everything working in the new version of 3ds Max at the end of last week was quickly dashed.
It is true that my scripts worked, and the scenes, as built, functioned. But they were still set to the legacy methods. The texture baking script was using the “Render to Texture (Legacy)” tool, not the new, and highly improved, “Bake to Texture” tool, so it needed to be upgraded. The Viewport FPS needed to be updated because the new default viewport behaves differently (and much, much better). This also required me to change shaders to better take advantage of the new workflow. Same goes for my rendering tests.
This isn’t bad in itself. I was using a bunch of workarounds to get Max running in a more modern workflow. But since Autodesk finally updated Max to have those workflows as default, it just meant I had to undo those workarounds. The good news is that if you have a project in Max 2020 and upgrade to 2021, it should work just fine. As long as you don't try to change everything to Max 2021’s defaults.
That's when things started to break. While trying to set up the texture baking scene, I kept getting a lot of crashes. First, Max would just exit, then my whole system would blue screen. Everytime I tried to bake a texture, it would blue screen. Unfortunately my home computer is not a Puget Systems computer, just something I had thrown together a couple years ago. I don't have as much computer knowledge as my co-workers, but then again, most people don’t. I was brought into Labs because of my experience with 3D/gamedev software. And trying to diagnose a crashing system isn’t easy. It's not like I have extra parts laying around that I can just swap out to see what the issue is. And if a component dies, I’m on my own for warranty.
I was able to ask our repair technician if he has seen this problem, and he helped run me through some things to check. He had me check my temps and CPU voltages, both were on the high side for my CPU. He suspected it was a stability issue caused by overclocking, or a bad processor. I assured him that the system wasn’t overclocked, but that I’d check in the BIOS. Turns out that when I last updated the BIOS, it re-enabled Asus’s “multi-core enhancement”, which is a form of overclocking. It was enough of an overclock that it made the system unstable when I pushed it as hard as rendering does. (games don’t push a CPU nearly that hard so I hadn’t seen the issue before). Disabling MCE dropped my CPU temps during a render by over 15 degrees, and I haven’t seen a crash since. Crisis averted. Thank goodness for Customer Support. (Here is a Youtube video about MCE if you'd like to know more.)
Unfortunately, while that fixed the system crashing, it still left me with some issues with the Bake to Texture test. There are still some stability issues with Max (some things never change), and some programming issues with setting up the test, launching the baker, etc. After discussing it with Matt and William, I’ve decided to pull this test from my suite for now. I wanted this test because it is a real work action that a lot of people use quite often. The goal of any benchmark we make at Puget Systems is to make it as close to real workflows as possible. However, the texture baking tool is just a macro that customizes the scanline renderer to render a texture instead of scene. So the results of my rendering test will be very representative of the result the baking tool would have. In the future I’ll be able to get the texture baking to work reliably, but for now I’ll just have to live with what works. Because of the work I did in making the scripts more modular, it is easy for me to drop it now, and will be really easy for me to add it back once it’s ready.
All in all, I didn’t get much progress in the benchmark this week. It’s pretty discouraging. Add in the difficulties of working from home (more on that in a separate post coming soon), and this week really just stunk. On the bright side, my PC isn’t dead yet, and the weekend is coming up. Here’s to a better next week.