Daz Studio doesn't render, piece of kit seems to cause vague memory issue. (SOLVED)
So I have a problem rendering with the dForce Sweet Winter Outfit for Genesis 8 Females and Spartan Armor for Genesis 3 and 8 Female(s) kits. I have 4GB VRAM and even in very modest test scenes (Base Genesis 8.1 figure, auto headlamp only, and the earlier mentioned pieces of kit), Daz Studio doesn't even start rendering and the logs (see attachments) report a memory problem. BTW I am using Daz Studio 4.15.02. and have attached some relevant files just in case.
These are the only kits I have this problem with, has anyone else ran into these issues or a solution around this? Any help would be greatly appreciated.
On a side note: I opened a ticket for this issue, but the confirmation email mentioned a turn-around time between four and six weeks, too late to make use of the return policy, hence me opening this topic.
Comments
Your scene is to large to fit on just the GPU and CPU fallback is disabled.
2021-03-01 15:11:51.046 CPU Fallback: disabled
2021-03-01 15:14:33.522 WARNING: ..\..\..\..\..\src\pluginsource\DzIrayRender\dzneuraymgr.cpp(359): Iray [ERROR] - IRAY:RENDER :: 1.2 IRAY rend error: Unable to allocate 64.000 MiB from 29.873 MiB of available device memory
2021-03-01 15:34:38.722 WARNING: ..\..\..\..\..\src\pluginsource\DzIrayRender\dzneuraymgr.cpp(359): Iray [WARNING] - IRAY:RENDER :: 1.5 IRAY rend warn : CUDA device 0 (GeForce GTX 1050 Ti) ran out of memory and is temporarily unavailable for rendering
Thanks for your reaction. I understand that is what the log says, however a scene with just the autohead lamp (no additional lights), the base Genesis 8.1 figure (no morphs or textures applied) and the Sweet Winter Outfit is not enough to fill 4GB of Vram under normal circunstances (see the TestSweetWinterOutfit.duf file attached, that is literally the scene which caused the error). Still when I render with this outfit memory usages seems to explode, with the failure as a result. I have rendered far more complex scenes without any issue.
So I do not think it's the amount of memory available, but a bug that somehow blows-up memory usage. Any suggestions how to circumvent this would be great.
Does anyone know if this is a known bug, at least it would give some peace of mind?
1. You are using a GTX card and the latest versions of DS/Iray are using more memory with GTX cards, since the missing RTX instructions/functions must be replaced with software solutions.
2. You are using Genesis 8.1 figure that has higher SubD that G8 figures and therefore uses more memory unless SubD is lowered.
3. 4GB is really not that much, download GPU-Z (https://www.techpowerup.com/gpuz/) to check how much VRAM you have available at different stages of the process (before opening DS, after opening DS and after loading your scene)
So I downloaded GPU-Z and did some tests.
Before opening Daz: 75 MB VRAM usage, after opening Daz: 127 MB VRAM usage, after loading scene (Gen8.1 base, no textures, only auto-headlamp, Sweet Winter outfit, no poses or morphs) : 204 MB VRAM usage. After hittng the render button it first goes to 3146 MB and peaks at 3543 MB, after which it says "Finished Rendering", which it obviously didn't do.
So to compare, I loaded a scene with 3 clothed, fully textured Gen 8.1 figures with hair and three spotlights and dome to render, right after without exiting Daz Studio. After loading this scene 237 MB VRAM was in use, and after hitting the render button memory usage climbed to a peak of 3706 MB, and the scene rendered without any issues.
So you might see why I'm at a bit of a loss here, and blame the outfit.
I like your signature btw.
Keep in mind that Windows keeps some of your VRAM reserved for just in case you plug ia monitor into every single output on your GPU.
There was probably more asset components waiting to alocate, but not enough avalible VRAM.
Lets say for example Windows is reserving 90MB per output and your card has 4 outputs. 4096MB of VRAM - 4 outputs @ 90MB each = 3736MB of avalible VRAM
In this instance you may not have had enough avalible VRAM to finish lodading the scene.
Well, I did some further testing by rendering, at the very end, just the boots of the outfit, which seemed to cause the issue. Are you really telling me 4 GB of VRAM is not enough to render a pair of boots?
I don't get how three fully equiped and textured Gen 8.1 figures with complete scene lights render without an issue, but a pair of Gen 8 boots, just the boots, with the auto-headlamp would need more memory. There is nothing more to allocate.
Here's an important line in your Daz Log file.
"2021-03-01 15:11:51.416 Iray [INFO] - IRAY:RENDER :: 1.0 IRAY rend info : CUDA device 0 (GeForce GTX 1050 Ti): compute capability 6.1, 4.000 GiB total, 3.309 GiB available"
Daz Studio is only going to use 3.309 GB without erroring out your GTX 1050 Ti.
Ok, I am clearly not getting it. I mean get your remark,..but,....how do just a pair of boots eat up over 3.309 GB? I really do not understand how that is works.
One indication is the size of the installation file for Sweet Winter Outfit, was it in 200-300MB range or way bigger?
If the size of the installation file was way bigger, it means the product is not kind to lower spec. systems.
The product page says; "131 Textures, normal, metallic, roughness, displacement maps (4096X4096)", which would mean that each surface of the boots reserves 250MB:s of memory (5 images per surface at 4096X4096px, 48MB/image) for textures alone.
The G8 and G8.1 figures are relatively easy on the system if you don't go crazy with SubD, but there are no quaranties for clothing and/or props, I have seen thumb-size props that are heavier on the system than G8/G8.1.
I don't have that product, so I can't test it on my 16GB GPU to see how much memmory it actualy wants to use.
The installation files together are 909 mb, but I'm guessing that is mainly due to the amount textures it comes with for all the different items. I had bigger installation files for outfits that render just fine. But your remark gave me an idea so I did another test, I replaced the textures of all surfaces of the boots with one shader from Everyday Fabric Shaders Iray, and,....renders without a problem. It still required 1254 mb of VRAM which I think is a lot for just a pair of boots. Does this mean you're right?
Is there a way for me to check the files of the boots somehow? I am dying to understand what make these boots so special that they need 3GB, also so I can identify similar issues in the future. And is there a way for me to perhaps reduce the size of the original textures in GIMP manually, so I can use those?
Never thought a pair of boots would keep me this occupied.
I have an idea, since you said that the boots are taking 1254 with just one simple shader...
Check the subdivision level on the boots? If it's above 1 drop it down to 1 and try rendering.
If it uses less VRAM, restart DAZ and load the boots from scratch and only lower the SubD level to 1 and see if they render.
Your idea worked, still required 2916 MB, but it worked with the original textures (did not dare to put a Gen8 figure in it just yet). Is there anyway to reduce those textures, by hand if need be, in GIMP for instance. Or would something like Scene Optimizer be of any use in this case, or is there another product you could recommend to tackle these issues?
If the UV mapping is done 'right', you can use for example Irfanview to batch-convert the textures smaller without noticeable difference, but the size of the installation file gives reason to think that UV mapping and texturing has been done without much thought... 909MB:s with just 131 textures, considering that the graphic files are compressed as they are and everything is again compressed inside a zip-file... The size of the installation files is at least 5 times bigger than it needed to be.
If the UV mapping is not done 'right', there is very little to do... The attached pic shows a sample of one of the worst UV:s I have come across, that one resulted in one relatively small and insignificant surface eating up 960MB:s of memory instead of the 20MB.s that would have been enough for exactly the same level of detail if UV mapping was done 'right'.
The product mentions the use of diplacement maps. Are they in use on the boots? and if so, is there a large subd displacement level? That might bloat vram usage. I have a rope prop that would crash my 1080ti if more than half a dozen were used in a scene, it turned out that the shader uses diplacement maps and the subd level was set at 9 and was the cause of the vram overload.
I am too much of a noob to get everything you guys are saying, so I tried to educate myself today on UV maps and displacement maps, but am still quite unsure of everything,...so please bear with me, cheers:
I exported the UV map of the Sweet Winter Boots and compared it with the UV map of another pair of boots (LOboots) I use regularly and saw that the mesh was way more dense. Also the texture sizes are quite different compared between the two pairs. Could the dense mesh or the big textures, or a combination of the two cause the issue?
Regarding the displacement maps, how do I determine if displacement maps are used on the boots? Lowering the subd displacement level (from 4 to 1) allows the boots to render but with the use of nearly 3 GB VRAM, which I feel is excessive for a pair of boots .Does this mean a displacement map was used?
Displacement stuff is in the Geometry section of the Surfaces tab for each material zone. If you want, you can set Displacement Strength to zero and that will disable it. It shouldn't be necessary to remove the map, but you can do that too.
Yeah... Looks like the creator of the package used both the belt and the suspenders and didn't even settle for any light duty ones...
The geometry is way too dense, and using SubD 4 multiplies the effect and gets the memory footprint for the geometry through the roof...
There are 8 normal maps with file sizes from 0.4 to 23MB:s... If these were different maps for different looks, one could wonder why the sizes deviate so much from one to another, which gives reason to believe they are all used for different material zones, which would add up to insane amounts of textures and maps to be loaded for something that's relatively insignificant (unless you have a fetish)
The layout of the UV map doesn't look bad, but the question remains, has the creator of the boots included all those UV islands in one and the same texture file (and related maps) or has he/she created several material zones for different UV islands with their own texture files and maps, which would be the ultimate icing on the cake...
As far as I can see all UV Islands are included on the texture files, and the displacement parameter is set at 0.0 with the "Choose Map" message. So I guess no displacement maps were used. I rendered the boots with the lightest normal map option (SWBootsHDNormal01.png), still required 3451 MB, and 2887 MB with SubD reduced to 1. I hoped setting Resolution Level to Base would help, but that only made 31 MB difference, not sure if that helped at all.
What would be the best way to make these lighter boots in terms of VRAM use? Is there a process for this?
Use Irfanview to reduce the resolution of the texture files from 4092x4092 to 2048x2048, you can do it in a batch so all the files get processed in one go and the memory footprint of the textures and maps gets down to quarter of the original. (https://www.irfanview.com/)
Getting the vertex count of the geometry down would need something like the Decimator (https://www.daz3d.com/decimator-for-daz-studio)
Don't forget iray uses about a lot of vram just by itself (render an empty sun & sky scene to see how much it uses on your system). It seems to use 2gb on mine *shocked face*
Great suggestions, I will start working on those, thank you so much!
I saw decimator was pretty pricey and the opinions on the forum are quite divided to say the least, I found this free solution, MeshLab, I will experiment with. I thought you might appreciate a link to a free alternative.
There is also this product currently available in the DAZ store:
https://www.daz3d.com/scene-optimizer
Yes, but doesn't reduce vertex count of the geometry and the rest can be done with Irfanview and the standard tools in DS