Flickering artifacts in (animated) DOF areas #57109

Closed
opened 2018-10-08 23:30:15 +02:00 by Michael Klein · 28 comments

System Information
Win10 (1803) AMD Threadripper GTX 1080Ti
Nvidia Driver 397.64

Blender Version
Broken: 2.79.6 9a674a749b
Worked: n/a

Short description of error
Flickering artifacts in (animated) DOF areas.

Exact steps for others to reproduce the error
Please investigate the attached scene.

RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02.zip

**System Information** Win10 (1803) AMD Threadripper GTX 1080Ti Nvidia Driver 397.64 **Blender Version** Broken: 2.79.6 9a674a749b1 Worked: n/a **Short description of error** Flickering artifacts in (animated) DOF areas. **Exact steps for others to reproduce the error** Please investigate the attached scene. [RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02.zip](https://archive.blender.org/developer/F4991956/RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02.zip)
Author

Added subscriber: @Renderbicks

Added subscriber: @Renderbicks
Author
[RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02.mp4](https://archive.blender.org/developer/F4992035/RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02.mp4)
Member

Added subscribers: @LukasStockner, @lichtwerk

Added subscribers: @LukasStockner, @lichtwerk
Lukas Stockner was assigned by Philipp Oeser 2018-10-09 12:45:38 +02:00
Member

Seems like Denoiser artifacts (which can have a hard time in animated DOF/MBlur scenarios), so I wasnt sure if there is a bug involved here...
But as these are also apparent in 'in focus' areas I started rendering (still doing) and I'm actually having a hard time reproducing these (linux, 2.79 master build from buildbot, GPU rendering, 970m, 396.45 drivers, cuda 9.2)...
(will post the cropped border render sequence [kitchen sink area] in a bit)

But before adding too much uneducated blathering: @LukasStockner, mind having a look?

Seems like Denoiser artifacts (which can have a hard time in animated DOF/MBlur scenarios), so I wasnt sure if there is a bug involved here... But as these are also apparent in 'in focus' areas I started rendering (still doing) and I'm actually having a hard time reproducing these (linux, 2.79 master build from buildbot, GPU rendering, 970m, 396.45 drivers, cuda 9.2)... (will post the cropped border render sequence [kitchen sink area] in a bit) But before adding too much uneducated blathering: @LukasStockner, mind having a look?
Member

here is what I get with the file from the report
T57109_render.zip

Of course it has artifacts, but I don't see those very prominent bright blocks as in the video in that area

here is what I get with the file from the report [T57109_render.zip](https://archive.blender.org/developer/F4999456/T57109_render.zip) Of course it has artifacts, but I don't see those very prominent bright blocks as in the video in that area

Added subscriber: @SteffenD

Added subscriber: @SteffenD

I gave it a closer look and my initial thought also was that the denoiser freaks out. When you disable the denoiser you can see that there's a lot of noise in the rendered image (where it would be a miracle if any denoiser could properly resolve that BTW). But: it's not the denoiser's fault because the flickering artifacts are already present in the "raw" render!
I could reduce the whole scene to only 3 Lego bricks (around the sink) which still gave me the error. The artifacts don't appear if I override all materials with a simple Principled shader. So it looks like the (quite complex) materials (or at least one of them) is faulty or maybe some bump or normal shader doesn't play nicely with a scaling of 0.001 the whole scene is at. Plus I think that setting the render camera limits to 1mm - 2km doesn't help numerical precision either.
It might also be a combination of things that cause this, but the Denoiser is innocent.

I gave it a closer look and my initial thought also was that the denoiser freaks out. When you disable the denoiser you can see that there's a lot of noise in the rendered image (where it would be a miracle if any denoiser could properly resolve that BTW). But: it's not the denoiser's fault because the flickering artifacts are already present in the "raw" render! I could reduce the whole scene to only 3 Lego bricks (around the sink) which still gave me the error. The artifacts don't appear if I override all materials with a simple Principled shader. So it looks like the (quite complex) materials (or at least one of them) is faulty or maybe some bump or normal shader doesn't play nicely with a scaling of 0.001 the whole scene is at. Plus I think that setting the render camera limits to 1mm - 2km doesn't help numerical precision either. It might also be a combination of things that cause this, but the Denoiser is innocent.
Author

Yes, it's not a Denoiser issue. My above rendering isn't using the Denoiser and a sampling rate of 1024. I have an older video of the same scenes without artifacts but I can't say what build I used for it.

Yes, it's not a Denoiser issue. My above rendering isn't using the Denoiser and a sampling rate of 1024. I have an older video of the same scenes without artifacts but I can't say what build I used for it.
Author

Maybe an issue by the AMD Threadripper and/or GTX 1080Ti?

Maybe an issue by the AMD Threadripper and/or GTX 1080Ti?
Author

It also happens on my XPS with GTX 1050. I will test now CPU and GPU separately.

RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02_Artifacts.png

It also happens on my XPS with GTX 1050. I will test now CPU and GPU separately. ![RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02_Artifacts.png](https://archive.blender.org/developer/F4999822/RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02_Artifacts.png)
Author

Here's again the scene I used for the above video with the settings (1024 samples). The former upload was an older scene with different settings. Just to get sure.

RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02.zip

Here's again the scene I used for the above video with the settings (1024 samples). The former upload was an older scene with different settings. Just to get sure. [RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02.zip](https://archive.blender.org/developer/F4999843/RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02.zip)

Also happens under Linux Mint with a GTX 780 and with a Xeon / GTX 1080ti.

If I override all materials with a simple Principled all is fine. If I use the "mb:315:::" (mb_pearlescent) material from the sink to override all, the artifacts are back.

Also happens under Linux Mint with a GTX 780 and with a Xeon / GTX 1080ti. If I override all materials with a simple Principled all is fine. If I use the "mb:315:::" (mb_pearlescent) material from the sink to override all, the artifacts are back.
Author

It seems to be a GPU issue. Here's the CPU result. No artifacts.

RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02_CPU.png

It seems to be a GPU issue. Here's the CPU result. No artifacts. ![RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02_CPU.png](https://archive.blender.org/developer/F5000108/RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02_CPU.png)
Member

Added subscriber: @brecht

Added subscriber: @brecht
Member

OK, my bad.
Now I also noticed the difference CPU/GPU (no denoiser) Here is what I get [not getting the blocky stuff though...]:

master_buildbot_CPU.png

master_buildbot_GPU.png

In a 2.8 Debug build it asserts:
kernel_assert(isfinite(slope_x));

1   raise                                                                                                                                                         0x7ffff1737eab 
2   abort                                                                                                                                                         0x7ffff17225b9 
3   __assert_fail_base.cold.0                                                                                                                                     0x7ffff1722491 
4   __assert_fail                                                                                                                                                 0x7ffff1730612 
5   ccl::mf_sample_vndf                                                                                                          bsdf_microfacet_multi.h      90  0x47a6f03      
6   ccl::mf_eval_glossy                                                                                                          bsdf_microfacet_multi_impl.h 110 0x47a6f03      
7   ccl::bsdf_microfacet_multi_ggx_eval_reflect                                                                                  bsdf_microfacet_multi.h      437 0x47a6f03      
8   ccl::bsdf_eval                                                                                                               bsdf.h                       268 0x47e298d      
9   ccl::_shader_bsdf_multi_eval                                                                                                 kernel_shader.h              542 0x4881b9d      
10  ccl::shader_bsdf_eval                                                                                                        kernel_shader.h              603 0x4881b9d      
11  ccl::direct_emission                                                                                                         kernel_emission.h            119 0x48c537d      
12  ccl::kernel_path_surface_connect_light                                                                                       kernel_path_surface.h        253 0x494120d      
13  ccl::kernel_path_integrate                                                                                                   kernel_path.h                688 0x494120d      
14  ccl::kernel_path_trace                                                                                                       kernel_path.h                751 0x494120d      
15  ccl::kernel_cpu_avx2_path_trace                                                                                              kernel_cpu_impl.h            98  0x499535b      
16  ccl::CPUDevice::path_trace                                                                                                   device_cpu.cpp               694 0x3286e63      
17  ccl::CPUDevice::thread_render                                                                                                device_cpu.cpp               758 0x328770f      
18  ccl::CPUDevice::thread_run                                                                                                   device_cpu.cpp               445 0x3285a80      
19  std::__invoke_impl<void, void (ccl::CPUDevice:: *&)(ccl::DeviceTask *), ccl::CPUDevice *&, ccl::CPUDevice::CPUDeviceTask *&> invoke.h                     73  0x3294b15      
20  std::__invoke<void (ccl::CPUDevice:: *&)(ccl::DeviceTask *), ccl::CPUDevice *&, ccl::CPUDevice::CPUDeviceTask *&>            invoke.h                     95  0x3293973      
... <More> 

gcc version 8.1.1 20180712 [if that is of interest...]

Maybe @brecht can have a look, too (also confirming this as there is definitely something going on)?

OK, my bad. Now I also noticed the difference CPU/GPU (no denoiser) Here is what I get [not getting the blocky stuff though...]: ![master_buildbot_CPU.png](https://archive.blender.org/developer/F5000236/master_buildbot_CPU.png) ![master_buildbot_GPU.png](https://archive.blender.org/developer/F5000238/master_buildbot_GPU.png) In a 2.8 Debug build it asserts: `kernel_assert(isfinite(slope_x));` ``` 1 raise 0x7ffff1737eab 2 abort 0x7ffff17225b9 3 __assert_fail_base.cold.0 0x7ffff1722491 4 __assert_fail 0x7ffff1730612 5 ccl::mf_sample_vndf bsdf_microfacet_multi.h 90 0x47a6f03 6 ccl::mf_eval_glossy bsdf_microfacet_multi_impl.h 110 0x47a6f03 7 ccl::bsdf_microfacet_multi_ggx_eval_reflect bsdf_microfacet_multi.h 437 0x47a6f03 8 ccl::bsdf_eval bsdf.h 268 0x47e298d 9 ccl::_shader_bsdf_multi_eval kernel_shader.h 542 0x4881b9d 10 ccl::shader_bsdf_eval kernel_shader.h 603 0x4881b9d 11 ccl::direct_emission kernel_emission.h 119 0x48c537d 12 ccl::kernel_path_surface_connect_light kernel_path_surface.h 253 0x494120d 13 ccl::kernel_path_integrate kernel_path.h 688 0x494120d 14 ccl::kernel_path_trace kernel_path.h 751 0x494120d 15 ccl::kernel_cpu_avx2_path_trace kernel_cpu_impl.h 98 0x499535b 16 ccl::CPUDevice::path_trace device_cpu.cpp 694 0x3286e63 17 ccl::CPUDevice::thread_render device_cpu.cpp 758 0x328770f 18 ccl::CPUDevice::thread_run device_cpu.cpp 445 0x3285a80 19 std::__invoke_impl<void, void (ccl::CPUDevice:: *&)(ccl::DeviceTask *), ccl::CPUDevice *&, ccl::CPUDevice::CPUDeviceTask *&> invoke.h 73 0x3294b15 20 std::__invoke<void (ccl::CPUDevice:: *&)(ccl::DeviceTask *), ccl::CPUDevice *&, ccl::CPUDevice::CPUDeviceTask *&> invoke.h 95 0x3293973 ... <More> ``` gcc version 8.1.1 20180712 [if that is of interest...] Maybe @brecht can have a look, too (also confirming this as there is definitely something going on)?
Author

CPU and GPU are rendering different results. Here's the comparison.

Left: CPU
Middle: GPU
Right: Hybrid

CPU_GPU_Hybrid.png

CPU and GPU are rendering different results. Here's the comparison. Left: CPU Middle: GPU Right: Hybrid ![CPU_GPU_Hybrid.png](https://archive.blender.org/developer/F5000346/CPU_GPU_Hybrid.png)
Member

ahh, hybrid is the blocky stuff :)

ahh, hybrid is the blocky stuff :)
Member

I can also confirm the problem.

I've attached an extremely reduced version of the scene - just one brick, a simpler shader and no DoF. Setting subsurface to zero gets rid of the issue (while any weight above the threshold shows it), as does disconnecting the normal input. In the original scene, disabling subsurface does not fix the problem.

Also, as I expected once I saw the bump node, the issue is gone by commenting out the ensure_valid_reflection calls. @brecht, at this point I'd really suggest just reverting that commit until I can finally fix it properly.

Interestingly enough there are some differences left between CPU and CUDA in the full scene, but they look more like noise differences. Still, something to look into.

RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02_simplified.blend

I can also confirm the problem. I've attached an extremely reduced version of the scene - just one brick, a simpler shader and no DoF. Setting subsurface to zero gets rid of the issue (while any weight above the threshold shows it), as does disconnecting the normal input. In the original scene, disabling subsurface does not fix the problem. Also, as I expected once I saw the bump node, the issue is gone by commenting out the `ensure_valid_reflection` calls. @brecht, at this point I'd really suggest just reverting that commit until I can finally fix it properly. Interestingly enough there are some differences left between CPU and CUDA in the full scene, but they look more like noise differences. Still, something to look into. [RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02_simplified.blend](https://archive.blender.org/developer/F5007510/RB0105_MDH_Lecture_Emmets_Apartment_Anim_Focus_v02_simplified.blend)
Lukas Stockner was unassigned by Dalai Felinto 2019-12-23 16:35:56 +01:00

Added subscriber: @mano-wii

Added subscriber: @mano-wii

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

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

Is this problem still seen in the latest builds?
https://builder.blender.org/download/

Can the original report be edited and simplified so that more people can reproduce and identify the problem without resorting to comments?
Otherwise it is better to do another report.

Is this problem still seen in the latest builds? https://builder.blender.org/download/ Can the original report be edited and simplified so that more people can reproduce and identify the problem without resorting to comments? Otherwise it is better to do another report.

Added subscriber: @mont29

Added subscriber: @mont29

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

Changed status from 'Needs User Info' to: 'Archived'
Bastien Montagne self-assigned this 2020-02-24 12:51:58 +01:00

More than a week of inactivity, closing for now (we can always re-open should requested info be provided).

More than a week of inactivity, closing for now (we can always re-open should requested info be provided).
Author

In #57109#879045, @mont29 wrote:
More than a week of inactivity, closing for now (we can always re-open should requested info be provided).

The bug doesn't exist anymore in 2.82 and 2.83 Alpha. :-)

> In #57109#879045, @mont29 wrote: > More than a week of inactivity, closing for now (we can always re-open should requested info be provided). The bug doesn't exist anymore in 2.82 and 2.83 Alpha. :-)

Changed status from 'Archived' to: 'Resolved'

Changed status from 'Archived' to: 'Resolved'

thanks, considering it as solved then :)

thanks, considering it as solved then :)

Added subscriber: @Connor-Denning

Added subscriber: @Connor-Denning
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
7 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#57109
No description provided.