Cycles denoise tile display on Windows 10 after recent change #65927

Closed
opened 2019-06-19 16:15:08 +02:00 by Gavin Scott · 12 comments

System Information
Operating system: Windows-10-10.0.17134 64 Bits
Graphics card: GeForce GTX 1060/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 419.17

Blender Version
Broken: version: 2.80 (sub 74), branch: master (modified), commit date: 2019-06-19 13:06, hash: 72690bbeca
Worked: Builds made yesterday.

Short description of error
Based on one simple benchmark it previously looked like there was a performance regression but after more extensive testing that appears not to be the case.

At least on Windows 10 / Nvidia 1060, when rendering in Cycles normal tiled mode with denoising on, all tiles which have completed rendering show as rendering (orange tile corners) while they are waiting for the availability of adjacent tile data.

Exact steps for others to reproduce the error
Open the attached Copper Dragon Quick Benchmark.blend
or simply switch to Cycles and enable de-noise. Hit F12.
In progress render looks like:
image.png

**System Information** Operating system: Windows-10-10.0.17134 64 Bits Graphics card: GeForce GTX 1060/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 419.17 **Blender Version** Broken: version: 2.80 (sub 74), branch: master (modified), commit date: 2019-06-19 13:06, hash: `72690bbeca` Worked: Builds made yesterday. **Short description of error** Based on one simple benchmark it previously looked like there was a performance regression but after more extensive testing that appears not to be the case. At least on Windows 10 / Nvidia 1060, when rendering in Cycles normal tiled mode with denoising on, all tiles which have completed rendering show as rendering (orange tile corners) while they are waiting for the availability of adjacent tile data. **Exact steps for others to reproduce the error** Open the attached [Copper Dragon Quick Benchmark.blend](https://archive.blender.org/developer/F7267963/Copper_Dragon_Quick_Benchmark.blend) or simply switch to Cycles and enable de-noise. Hit F12. In progress render looks like: ![image.png](https://archive.blender.org/developer/F7268320/image.png)
Author

Added subscriber: @GavinScott

Added subscriber: @GavinScott

Added subscriber: @brecht

Added subscriber: @brecht

What is the effect on GPU rendering only, without CPU?

What is the effect on GPU rendering only, without CPU?
Author

Trying CPU only vs. GPU only, CPU is now 1:49 where GPU is 1:57 (GPU has never been slower than CPU before). In the new build. I overwrote yesterday's build after doing the first benchmark as I wasn't expecting problems.

Trying CPU only vs. GPU only, CPU is now 1:49 where GPU is 1:57 (GPU has never been slower than CPU before). In the new build. I overwrote yesterday's build after doing the first benchmark as I wasn't expecting problems.

Also, what happens without denoising enabled?

Also, what happens without denoising enabled?
Author

Looks like denoise is a major part of the issue.

Turning off denoise eliminates the border tile mark issue.

CPU only without denoise drops from 1:49 to 0:57
GPU only without denoise drops from 1:57 to 0:30 (!)
CPU+GPU without denoise drops from 1:07 to 0:25.

Looks like denoise is a major part of the issue. Turning off denoise eliminates the border tile mark issue. CPU only without denoise drops from 1:49 to 0:57 GPU only without denoise drops from 1:57 to 0:30 (!) CPU+GPU without denoise drops from 1:07 to 0:25.

Added subscriber: @machieb

Added subscriber: @machieb

I tested a production scene of mine with todays build and the build from the day before yesterday.
Build: e73647bf5b (today)
GPU+CPU with denoise: 9:23
GPU+CPU without denoise: 8:43

Build: 12da679fa0 (17.06.2019)
GPU+CPU with denoise: 10:02
GPU+CPU without denoise: 9:36

So in my tests the todays build renders 6,9% fasterwith denoise on and 9,5% faster without denoise.
The difference between denoise on and off is about 40sec in the todays build.
The difference between denoise on and off is about 26sec in the build from the 17.06.2019.
Visual in the renderview there is one difference with the renderbuckets. If you have denoise on the buckets are also shown and disapear after the bucket is denoised. So a better visual feedback.
From may side no complaints.

My computer specs are:
Windows 10 Pro
Geforce GTX 1080 Ti
AMD Threadripper 1950X 16Cores 64GB RAM

I tested a production scene of mine with todays build and the build from the day before yesterday. Build: **e73647bf5b44 (today)** GPU+CPU with denoise: **9:23** GPU+CPU without denoise: **8:43** Build: 12da679fa094 (17.06.2019) GPU+CPU with denoise: **10:02** GPU+CPU without denoise: **9:36** So in my tests the todays build renders **6,9% faster**with denoise on and **9,5% faster** without denoise. The difference between denoise on and off is about 40sec in the todays build. The difference between denoise on and off is about 26sec in the build from the 17.06.2019. Visual in the renderview there is one difference with the renderbuckets. If you have denoise on the buckets are also shown and disapear after the bucket is denoised. So a better visual feedback. From may side no complaints. My computer specs are: Windows 10 Pro Geforce GTX 1080 Ti AMD Threadripper 1950X 16Cores 64GB RAM
Brecht Van Lommel self-assigned this 2019-06-19 18:10:19 +02:00
Gavin Scott changed title from Cycles performance and tile display on Windows 10 after recent change to Cycles denoise tile display on Windows 10 after recent change 2019-06-20 00:52:03 +02:00
Author

Ok, thanks to Ray's secret build stash I was able to get a build from a couple of days ago and do a proper test with my quick benchmark file, and the upshot is that the recent changes had absolutely no effect on performance in Cycles for this simple scene on my system here.

I also rendered the standard BMW test scene and it did show a significant improvement with the new changes. I tried to render the Classroom benchmark but the version I have is incompatible with 2.80 (all the chair instances get deleted when you open it etc.)

So I apologize for the false alarm on the performance regression.

The issue of the queued up denoise tiles remains, and is confusing because you can't tell if a tile is still actually rendering or simply waiting for its data dependency on adjacent tile data to be fulfilled. I suppose it's not terrible the way it is now, it was just a bit surprising to see. I think it still makes more sense to only highlight the tile when the task is actually ready to run.

I don't suppose we could color the tile corners differently for render tasks and denoise tasks? Like, have green corners for denoise vs. the orange render ones? That would be super cool.

Just for completeness, here's the result of the performance tests. There are two runs for each test for each Blender version.

Old: 2.80 (sub 74), branch: HEAD, commit date: 2019-06-17 18:32, hash: 28b06b6a05
New: 2.80 (sub 74), branch: master, commit date: 2019-06-19 13:06, hash: 72690bbeca

the tests were all with the attached file and show no significant change between versions, apart from the last two which were using the BMW scene from the benchmark suite.

Test			Old 1	Old 2	New 1	New 2
GPU + Denoise		1:56.66	1:55.94	1:54.87	1:55.36
GPU			0:29.36	0:29.45	0:29.28	0:29.19
CPU + GPU + Denoise	1:09.21	1:07.98	1:07:43	1:08.53
CPU + GPU		0:23.36	0:24.96	0:24.56	0:24.65
CPU + Denoise		1:50.94	1:47.32	1:45.92	1:44.70
CPU 			0:56.36	0:56.76	0:58.12	0:56.41

BMW CPU+GPU		2:42.27		2:04.53	
BMW GPU			3:05.96		2:19.02	

Ok, thanks to Ray's secret build stash I was able to get a build from a couple of days ago and do a proper test with my quick benchmark file, and the upshot is that the recent changes had absolutely no effect on performance in Cycles for this simple scene on my system here. I also rendered the standard BMW test scene and it did show a significant improvement with the new changes. I tried to render the Classroom benchmark but the version I have is incompatible with 2.80 (all the chair instances get deleted when you open it etc.) So I apologize for the false alarm on the performance regression. The issue of the queued up denoise tiles remains, and is confusing because you can't tell if a tile is still actually rendering or simply waiting for its data dependency on adjacent tile data to be fulfilled. I suppose it's not terrible the way it is now, it was just a bit surprising to see. I think it still makes more sense to only highlight the tile when the task is actually ready to run. I don't suppose we could color the tile corners differently for render tasks and denoise tasks? Like, have green corners for denoise vs. the orange render ones? That would be super cool. Just for completeness, here's the result of the performance tests. There are two runs for each test for each Blender version. Old: 2.80 (sub 74), branch: HEAD, commit date: 2019-06-17 18:32, hash: `28b06b6a05` New: 2.80 (sub 74), branch: master, commit date: 2019-06-19 13:06, hash: `72690bbeca` the tests were all with the attached file and show no significant change between versions, apart from the last two which were using the BMW scene from the benchmark suite. ``` Test Old 1 Old 2 New 1 New 2 GPU + Denoise 1:56.66 1:55.94 1:54.87 1:55.36 GPU 0:29.36 0:29.45 0:29.28 0:29.19 CPU + GPU + Denoise 1:09.21 1:07.98 1:07:43 1:08.53 CPU + GPU 0:23.36 0:24.96 0:24.56 0:24.65 CPU + Denoise 1:50.94 1:47.32 1:45.92 1:44.70 CPU 0:56.36 0:56.76 0:58.12 0:56.41 BMW CPU+GPU 2:42.27 2:04.53 BMW GPU 3:05.96 2:19.02 ```
Author

If you setup Cycles to do a 10,000x10,000 pixel render with 8x8 tiles, then pretty soon things go wrong (with the render view) when the number of active tiles becomes very large due to all the pending denoise operations. It starts displaying a semi-random assortment of the active tiles, some blink on and off, etc. Example:

image.png

Edit: the render of 1.5 million tiles finished in about 90 minutes and as far as I can see all the denoise tasks completed successfully.

If you setup Cycles to do a 10,000x10,000 pixel render with 8x8 tiles, then pretty soon things go wrong (with the render view) when the number of active tiles becomes very large due to all the pending denoise operations. It starts displaying a semi-random assortment of the active tiles, some blink on and off, etc. Example: ![image.png](https://archive.blender.org/developer/F7443605/image.png) Edit: the render of 1.5 million tiles finished in about 90 minutes and as far as I can see all the denoise tasks completed successfully.

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'

Tile display should now be the same again after 037956f13f.

Tile display should now be the same again after 037956f13f.
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
3 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#65927
No description provided.