Page MenuHome

Render crash on GPU - glass with bump map via displacement input - High poly object
Open, NormalPublic

Description

System Information
Windows 10 - GPU GTX 970 - CPU 5820K

Blender Version
Latest master built on own machine 2018-03-13
Same problem on 2.78c - check for consistency

Short description of error
Have been having this problem with a scene of mine for past few weeks. Decided I would make simplified version of the problem for debugging (attached).

Blender crashes when I render the attached scene (nearly) every time (render never completes - occasionally get CUDA error - see * below).

Scene has just one high poly object in it. Material rendering with bump rather than displacement but using material displacement input.

If I alter the atatched scene in the following ways

When displacement not connected - no crash 
When diffuse connected and not glass as surface - no crash
When not GPU used - no crash
When displacement and glass reconnected - crash

Also

When using low poly object - no crash

Memory use on renders which don't crash Mem 2034 Peak 2058/Mem 1907 - Peak 1931 depending on whether bump used or not - either way should not be a problem for the CPU.

*Rather than crash a few times I have had CUDA errors appear. I have tried to change my TDr_level to 60 seconds (from usual 15) as a way to combat this - but still could not get it to render. Although it did not crash 30 mins later it was still at 1% render complete (other renders for example diffuse take on average 30 seconds).

I am not using microdisplacement as I definitely don't have room on graphics card for that.

Exact steps for others to reproduce the error
Load the scene and hit render.

Details

Type
Bug

Event Timeline

Brecht Van Lommel (brecht) triaged this task as Needs Information from User priority.

Does changing the glass from Multiscatter GGX to GGX work around the problem for you?

Rob Hughes (RevDr) added a comment.EditedMar 15 2018, 4:33 PM

Hi,

It doesn't crash with GGX.

However, one major plus with multiscatter (and why I want to use it and makes the others unsuable) is that it does not suffer from the black artifacts with bump mapping glass shader object issue that other glass shader modes suffer from.

Thanks

Rob Hughes (RevDr) added a comment.EditedMar 15 2018, 4:44 PM

Whilst I am sure you know what I mean by "black artifacts with bump mapping glass shader" objects issue, I have attached the two images which highlights the significantly better image generated with multiscatter which clearly does not suffer from the artifacts.

Thanks

You probably know this already - but just in case - I tested it with the Principled shader and the same problem occurs with multiscatter GGX with that shader too.

Philipp Oeser (lichtwerk) raised the priority of this task from Needs Information from User to Needs Triage by Developer.

Some additional info is given

Brecht Van Lommel (brecht) triaged this task as Normal priority.Apr 6 2018, 11:33 AM

I spent a little time playing with the 'black artifacts with bump mapping and GGX shader yesterday.

You may be aware of this already - but thought it worth sharing, just in case it helps.

The black artifacts seem to be caused when there is

  1. A front facing poly
  2. Which has a bump map which causes the normal of the point being rendered to be back facing

If this is tested for it is possible to use a mix shader to switch between the glass shader with bump and the glass shader without bump to remove the black artifacts.

However at this point the image seems a little dark. A further to test to check for....

  1. A back facing poly
  2. Which has a bump map which causes it to be front facing

...and again switching between the two forms of glass shader seems to improve this situation (although I can't quite get my head round if this test should or should not be done - it certainly visually seems to help)

So some images....

GGX glass with no fix

GGX glass with original fix (front facing polys - with bumped back facing normal check)

GGX glass with additional check (back facing poly - with bumped forward facing normal)

Here is the node network I am using

So although not part of the original bug report - this is a workaround to the suggested workaround to produce images without artifacts. Also I hope it helps solve the underlying code issue with GGX and anyone else who hits this issue before a fix is released.