Will exceeding my video memory cause a violation_exception error

Hi,
I have submitted a help ticket but I was wondering if anyone else has had a similar experience. I have a 980Ti card with 6 GB of video memory. When I attempt to render a scene with two Genesis3 figures and one or two pieces of clothing (in DazStudio 4.8), the render crashes and produces an error message -- something along the lines of "violation_exception at memory address XXXXXXXX". From the log report everything seems to load okay, but before it actually renders an image it crashes.
If I hide one figure or one piece of clothing, the scene renders just fine. So I am thinking that somehow I'm exceeding my video memory size. Would this cause a crash? If this is true then how can a couple dozen 4 MB texture maps fill up 6GB video RAM. Any suggestions?
I have my rendering preference set for my video card. I do have 32 GB of RAM on my motherboard but haven't tried to use my CPU (i7 - 6 cores) for rendering.
Thanks.
Comments
yes it will in most cases. You can monitor with the Windows Task Manager is the easiest way...
If you exceed video card memory it will be kicked out to your CPU to render and if you still exceed OS available memory you often get errors like you mention.
As for the textures, 4MB is the compressed size. Uncompressed, which they need to be for working with them, they are much much larger.
Example 4k Texture:
4096 * 4096 * 32bit = 236.870.912 bits
236.870.912 bits / 8 = 67.108.864 bytes
67.108.864 bytes / 1024 = 65.536 kbytes
65.536 kbytes / 1024 = 64 Megabytes
So 64 Megabytes per Texture. Given that there are multiple textures per material (diffuse, specular, bump, SSS, normal, ...), it adds up very very quickly.
Note that when you increase the texture size by doubling it, the memory consumption will quadruple. Same the other way around, shrinking the texture to 50% will reduce the memory consumption to 25%:
2048 * 2048 * 32bit = 134.217.728 bits
134.217.728 bits / 8 = 16.777.216 bytes
16.777.216 bytes / 1024 = 16.384 kbytes
16.384 kbytes / 1024 = 16 Megabytes
So you might want to downscale the textures to e.g. 2048.
Also note that some materials may have insane huge maps - like 4k for Eyelashes or eyes in general.
That's more than overkill, check those, as you can easily shrink those without noticing.
In general, you have to take it easy when rendering on the GPU as it's memory is very limited and it cannot outsource (in theory it could, but it would receive a major performance hit).
One more edit: :)
I have a 8GB card and had a hard time rendering two G3 figures (with lux though) with a little bit of cloth and hair. I definitely need to downscale the textures then. 2048 is usually enough.
@nonescuh00 -- Thanks! I'll try using the Windows Task Manager to see how much of my resources are being used. I guess that I could always render the characters separately and then compose the two images together in Photoshop.
@mork -- Ouch! I'm shocked at how fast it adds up. So, if I count the conforming clothing as another character with its own texture maps then I am really looking at 3-4 characters with many maps that individually are around 64 MB each. I was naively thinking that a video card with 6 GB could handle such a scene. It is too bad that the "Scene Optimizer" by V3Digitimes isn't compatible with 4.8