PVT
I’ve been debugging crashes on an older Macbook Air sporting an Intel HD 3000. Took me two days to setup and test - while working on other stuff simultaneously - OSX, Windows over Parallels (which ruled out driver issues) and then Windows 7 x64, which was the crash target. The internal SSD drive was too small for our project so that caused a few problems, and running it from an external HDD is slooooow.
To any of you having problems running on this hardware, please be assured that we’re very close to be able to do something about it. I was able to track it down to Intel GPU driver issues and are preparing a minimal reproducible project to send over to both Intel and Unity for analysis. In the meantime, however, I was able to get it working and *might* be able to work around the bug. No promises, however.
At the beginning of this week I got Helk up my ass regarding terrible PVT performance on high-end hardware. We’re talking drops from 100 Fps to 25 Fps. This was most definitely not supposed to happen, but it did. Sorry guys.
I was able to replicate it and figure out why it was happening. It seems to happen mostly on NVIDIA GPUs, I believe because of their particular cache architecture. In case you’re wondering why I’ve been pressing so much for this feature, here’s an example of the performance improvement when it does work properly:
Rendering the
terrain only, at 2326x909, maxxed anisotropy and parallax on a NVIDIA GT 750M and considering only the terrain timings: top is running without PVT at ~34 Fps; middle is running the current implementation (with a few improvements already) at ~104 Fps; and bottom is running with the new compressed cache at ~238 Fps. Of course, these values will change depending on a lot of factors, like how much of the terrain you see, how far away you are from it, your aniso and parallax and, finally, everything else that’s running on the GPU.
Based on these numbers, I believe it was important to halt everything and get this fixed as soon as possible. Not only because it was affecting your gaming, but also because it’s a really important optimization that affects most mid-range machines and high-end machines running at high resolutions or maxed anisotropy and parallax mapping. I’m also taking the opportunity to add real-time PVT cache compression to reduce VRAM footprint by around 65% while simultaneously improving performance. If these latest changes don’t fix it for everybody, I will fold. Also, I’m not done with them so they’re not on any branch yet.
Regardless I took the opportunity to add back this option:
Just keep it disabled for now, unless it actually improves your framerate. It’s also now disabled by default.
Shaders
Yesterday I started revamping the standard Rust shaders to add support for masked tinting and microfiber-based fuzz, aimed at cloth and fabric materials:
Also fixed a water2 bug on NVIDIA cards running in DX9, showing some weird random lines instead of an opaque layer of water.
I hope all this technical mumbo-jumbo doesn’t turn you off. I’ll go straight to the point next time. Speaking of that, next week I'll finish the outstanding tasks and get back on track.