Render crash on GPU - glass with bump map via displacement input - High poly object #54318

Closed
opened 2018-03-14 15:13:49 +01:00 by Rob Hughes · 14 comments

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.
bumpDB3.blend

**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. [bumpDB3.blend](https://archive.blender.org/developer/F2443896/bumpDB3.blend)
Author

Added subscriber: @RevDr

Added subscriber: @RevDr

Added subscriber: @brecht

Added subscriber: @brecht

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

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

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

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
Author

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.

DB_Multiscatter.png

DB_NoMultiscatter.png

Thanks

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. ![DB_Multiscatter.png](https://archive.blender.org/developer/F2444883/DB_Multiscatter.png) ![DB_NoMultiscatter.png](https://archive.blender.org/developer/F2444885/DB_NoMultiscatter.png) Thanks
Author

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.

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.
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

Some additional info is given

Some additional info is given
Author

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
NormalGlassBump.PNG

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

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

Here is the node network I am using
NormalGlassFixNodeGraph.PNG

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.

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 ![NormalGlassBump.PNG](https://archive.blender.org/developer/F2950894/NormalGlassBump.PNG) GGX glass with original fix (front facing polys - with bumped back facing normal check) ![NormalGlassBumpFixNoBackFace.PNG](https://archive.blender.org/developer/F2950902/NormalGlassBumpFixNoBackFace.PNG) GGX glass with additional check (back facing poly - with bumped forward facing normal) ![NormalGlassBumpFixBackFaceTest.PNG](https://archive.blender.org/developer/F2950918/NormalGlassBumpFixBackFaceTest.PNG) Here is the node network I am using ![NormalGlassFixNodeGraph.PNG](https://archive.blender.org/developer/F2950938/NormalGlassFixNodeGraph.PNG) 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.

Added subscriber: @iss

Added subscriber: @iss

Changed status from 'Confirmed' to: 'Needs User Info'

Changed status from 'Confirmed' to: 'Needs User Info'

Got no issues with openCL.

Can you please check if this is still an issue in latest build?
https://builder.blender.org/download/

Got no issues with openCL. Can you please check if this is still an issue in latest build? https://builder.blender.org/download/
Author

Hi,

I can confirm that there are no problems with the latest build.

Thanks

Hi, I can confirm that there are no problems with the latest build. Thanks
Member

Changed status from 'Needs User Info' to: 'Resolved'

Changed status from 'Needs User Info' to: 'Resolved'
Aaron Carlisle self-assigned this 2020-02-10 22:22:13 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#54318
No description provided.