Cycles CPU Preview Artifact #80736

Closed
opened 2 years ago by Cyclotron · 24 comments

System Information
Operating system: Xubuntu 19.10
Graphics card: GeForce RTX 2070 SUPER

Blender Version
Broken: 2.90.0, branch: master, 2.91.0 alpha
Worked: 2.83.5

Short description of error
Posing the rig with Rendered Display Viewport Shading causes artifacts to appear.

Exact steps for others to reproduce the error
Load attached file
Switch to Rendered Display preview mode.
Grab/move the T_Arm.L target bone.

  The Skin_Arm_lwr meshes will vanish and/or deform.

Switch to any other Viewport Shading mode.
Switch back to Rendered Display.
The meshes will be correctly displayed.

Other:
There is a hexagonal ngon in Mech_Arm.L. Delete it, and the artifacts go away.
(I applied Grid Fill to the ngon as a test, but no change)
I've simplified the rig considerably to isolate a possible cause.
In the full rig, the artifacts appear all over: arms, legs, torso, head.
Full render is not apparently affected (only preview).

The original project files were created with Blender 2.67, and worked through 2.83.5

B290_cycles_preview_artifact.png
B290_cycles_preview_artifact.blend
system-info.txt

**System Information** Operating system: Xubuntu 19.10 Graphics card: GeForce RTX 2070 SUPER **Blender Version** Broken: 2.90.0, branch: master, 2.91.0 alpha Worked: 2.83.5 **Short description of error** Posing the rig with Rendered Display Viewport Shading causes artifacts to appear. **Exact steps for others to reproduce the error** Load attached file Switch to Rendered Display preview mode. Grab/move the T_Arm.L target bone. ``` The Skin_Arm_lwr meshes will vanish and/or deform. ``` Switch to any other Viewport Shading mode. Switch back to Rendered Display. The meshes will be correctly displayed. Other: There is a hexagonal ngon in Mech_Arm.L. Delete it, and the artifacts go away. (I applied Grid Fill to the ngon as a test, but no change) I've simplified the rig considerably to isolate a possible cause. In the full rig, the artifacts appear all over: arms, legs, torso, head. Full render is not apparently affected (only preview). The original project files were created with Blender 2.67, and worked through 2.83.5 ![B290_cycles_preview_artifact.png](https://archive.blender.org/developer/F8869568/B290_cycles_preview_artifact.png) [B290_cycles_preview_artifact.blend](https://archive.blender.org/developer/F8869561/B290_cycles_preview_artifact.blend) [system-info.txt](https://archive.blender.org/developer/F8869570/system-info.txt)
Poster

Added subscriber: @Cyclotron

Added subscriber: @Cyclotron

Added subscriber: @NRH_BEATS

Added subscriber: @NRH_BEATS

435.21 very outdated driver, this branch not supported anymore.
Install xUbuntu 20.04.1 LTS with perfect and latest 450.66 driver out of box.
https://xubuntu.org/download

435.21 very outdated driver, this branch not supported anymore. Install xUbuntu 20.04.1 LTS with perfect and latest 450.66 driver out of box. https://xubuntu.org/download
iss commented 2 years ago
Collaborator

Added subscriber: @iss

Added subscriber: @iss
iss commented 2 years ago
Collaborator

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
iss commented 2 years ago
Collaborator

There is corrupted mesh ID3220 but that doesn't seem to be cause of this issue

There is corrupted mesh `ID3220` but that doesn't seem to be cause of this issue
Alaska commented 2 years ago

Added subscriber: @Alaska

Added subscriber: @Alaska
Alaska commented 2 years ago

@iss I am able to reproduce a bug like this in different scenarios, here are the steps for reproducing. I should note that the issue seems to show up in different places when comparing Blender 2.90.1 and 2.91. I have marked each guide with the versions it shows up in.

System Information:
Operating system: Windows-10-10.0.19041-SP0 64 Bits
CPU: Ryzen 9 3900X
Graphics card: RTX 2060 SUPER 456.38

It should be noted that on Linux I can only reproduce test 3 based on testing so far.
Linux Kernal version: Linux-5.8.0-2-amd64-x86_64-with-debian-bullseye

Blender Version:
Broken: version: Tested 2.90.1 and 2.91.0 Alpha 7ab8d7c939 (2020-10-09 21:39)

Exact steps to reproduce (Test 1 - Reproducible in Blender 2.90.1 and 2.91):

  1. Change your render engine to Cycles and set the rendering device to CPU.
  2. Select the default cube and give it a Particle System set to type Hair.
  3. Give the cube a sub-division surface modifier.
  4. Enter rendered viewport mode then apply the sub-division surface modifier. Now the cube should have some artifacting or missing geometry (depends on sub-division level).
Expected result Actual result
#80736 -2.PNG #80736 -1.PNG

Exact steps to reproduce (Test 2 - Reproducible in Blender 2.91):

  1. Change your render engine to Cycles and set the rendering device to CPU.
  2. Select the default cube and give it a Particle System set to type Hair.
  3. Select the cube and give it a sub-division surface modifier with the Viewport level set to 4.
  4. Apply the sub-division surface modifier.
  5. Enter rendered viewport mode.
  6. In the property panels for the hair system, change the length from 4 to 1. Notice the artifacts or missing geometry.
Expected result Actual result
#80736 - 4.PNG #80736 - 3.PNG

Exact steps to reproduce (Test 3 - Reproducible in Blender 2.90.1 and 2.91):

  1. Download the .blend file found below (This file is a modification of the owl file produced by user Gholm on blendswap released under CC-0)
  2. Enter rendered viewport mode.
  3. Select the armature Owl.arm and move it around. You should notice artifacts on the owl mesh.
Expected result Actual result
#80736 - 6.PNG #80736 - 5.PNG

#80736 - Owl.blend


It should be noted that in all these tests doing at least one of these things seems to resolve the issue and stop it from re-occuring:

  • Setting the rendering device to GPU fixes the issue (suggests it might be caused by Embree).
  • Exiting and re-entering rendered view also solves the issue.
  • Enabling Cycles debugging and setting the BVH to BVH2 rather than Embree also solves the issue (another suggestion it may be caused by Embree).
  • Enabling Cycles debugging and changing Viewport BVH type to Static also seems to solve the issue (Probably narrows it down to Embree's BVH refitting).
@iss I am able to reproduce a bug **like this** in **different scenarios**, here are the steps for reproducing. I should note that the issue seems to show up in different places when comparing Blender 2.90.1 and 2.91. I have marked each guide with the versions it shows up in. **System Information:** Operating system: Windows-10-10.0.19041-SP0 64 Bits CPU: Ryzen 9 3900X Graphics card: RTX 2060 SUPER 456.38 It should be noted that on Linux I can only reproduce test 3 based on testing so far. Linux Kernal version: Linux-5.8.0-2-amd64-x86_64-with-debian-bullseye **Blender Version:** Broken: version: Tested 2.90.1 and 2.91.0 Alpha `7ab8d7c939` (2020-10-09 21:39) **Exact steps to reproduce (Test 1 - Reproducible in Blender 2.90.1 and 2.91):** 1. Change your render engine to `Cycles` and set the rendering device to `CPU`. 2. Select the default cube and give it a `Particle System` set to type `Hair`. 3. Give the cube a `sub-division surface` modifier. 4. Enter rendered viewport mode then apply the `sub-division surface` modifier. Now the cube should have some artifacting or missing geometry (*depends on `sub-division` level*). | Expected result | Actual result| | -- | -- | |![#80736 -2.PNG](https://archive.blender.org/developer/F8975962/T80736_-2.PNG)|![#80736 -1.PNG](https://archive.blender.org/developer/F8975946/T80736_-1.PNG)| --- **Exact steps to reproduce (Test 2 - Reproducible in Blender 2.91):** 1. Change your render engine to `Cycles` and set the rendering device to `CPU`. 2. Select the default cube and give it a `Particle System` set to type `Hair`. 3. Select the cube and give it a `sub-division surface` modifier with the `Viewport level` set to 4. 4. Apply the `sub-division surface` modifier. 5. Enter rendered viewport mode. 6. In the property panels for the hair system, change the length from 4 to 1. Notice the artifacts or missing geometry. | Expected result | Actual result| | -- | -- | |![#80736 - 4.PNG](https://archive.blender.org/developer/F8976097/T80736_-_4.PNG)|![#80736 - 3.PNG](https://archive.blender.org/developer/F8976092/T80736_-_3.PNG)| --- **Exact steps to reproduce (Test 3 - Reproducible in Blender 2.90.1 and 2.91):** 1. Download the .blend file found below (This file is a modification of the owl file produced by user Gholm on [blendswap ](https://www.blendswap.com/blend/7951) released under CC-0) 2. Enter rendered viewport mode. 3. Select the armature `Owl.arm` and move it around. You should notice artifacts on the owl mesh. | Expected result | Actual result| | -- | -- | |![#80736 - 6.PNG](https://archive.blender.org/developer/F8976414/T80736_-_6.PNG)|![#80736 - 5.PNG](https://archive.blender.org/developer/F8976406/T80736_-_5.PNG)| [#80736 - Owl.blend](https://archive.blender.org/developer/F8976373/T80736_-_Owl.blend) --- It should be noted that in all these tests doing at least one of these things seems to resolve the issue and stop it from re-occuring: - Setting the rendering device to `GPU` fixes the issue (suggests it might be caused by Embree). - Exiting and re-entering rendered view also solves the issue. - Enabling Cycles debugging and setting the BVH to BVH2 rather than Embree also solves the issue (another suggestion it may be caused by Embree). - Enabling Cycles debugging and changing `Viewport BVH type` to `Static` also seems to solve the issue (Probably narrows it down to Embree's BVH refitting).
EAW commented 2 years ago

Added subscriber: @EAW

Added subscriber: @EAW
EAW commented 2 years ago

That owl’s corruption looks similar to my Suzanne’s in #81587.

That owl’s corruption looks similar to my Suzanne’s in #81587.
Alaska commented 2 years ago

In #80736#1031829, @EAW wrote:
That owl’s corruption looks similar to my Suzanne’s in #81587.

I took a look at your file in that task and played around. Crashing is less frequent on my CPU (Ryzen 9 3900X), however in many cases I'll end up in situations like the "corruption" you've shown in your Suzanne and I've shown in the owl.

Note: I am unable to reproduce crashing in your task (#81587) on Linux (based on testing so far).

Also, while playing around with the owl scene, your Suzanne, my hair scene, I see common crashes like in this report #81102. Might be related?

> In #80736#1031829, @EAW wrote: > That owl’s corruption looks similar to my Suzanne’s in #81587. I took a look at your file in that task and played around. Crashing is less frequent on my CPU (Ryzen 9 3900X), however in many cases I'll end up in situations like the "corruption" you've shown in your Suzanne and I've shown in the owl. Note: I am unable to reproduce crashing in your task (#81587) on Linux (based on testing so far). Also, while playing around with the owl scene, your Suzanne, my hair scene, I see common crashes like in this report #81102. Might be related?
EAW commented 2 years ago

#81102 is very similar. My crash log used to be almost identical, but there was a commit in the last two or three days that caused some of the TBB calls to change. Thanks for looking into mine and letting me know about #81102 @Alaska!

#81102 is very similar. My crash log used to be almost identical, but there was a commit in the last two or three days that caused some of the TBB calls to change. Thanks for looking into mine and letting me know about #81102 @Alaska!
EAW commented 2 years ago

Added subscriber: @brecht

Added subscriber: @brecht
EAW commented 2 years ago

FYI @Alaska ,@iss, and @brecht,
Test 1 & Test 2 from @Alaska's comment have been fixed by 6d8e03ddd9.
Test 3 is not fixed.
T80736_Owl_Not_fixedl.png


Tested using e4728d0a16 as a control, All three tests produced the artifacts.
Tested using 390b28e338, with the fix, only Test 3 showed artifacts.
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce GTX 470/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 391.35

FYI @Alaska ,@iss, and @brecht, Test 1 & Test 2 from @Alaska's [comment](https://developer.blender.org/T80736#1031794) have been fixed by 6d8e03ddd9. Test 3 is not fixed. ![T80736_Owl_Not_fixedl.png](https://archive.blender.org/developer/F9069640/T80736_Owl_Not_fixedl.png) --- Tested using e4728d0a16 as a control, All three tests produced the artifacts. Tested using 390b28e338, with the fix, only Test 3 showed artifacts. Operating system: Windows-10-10.0.18362-SP0 64 Bits Graphics card: GeForce GTX 470/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 391.35
brecht commented 2 years ago
Owner

I can't reproduce the issue with Test 3. Does it happen reliably or randomly?

I can't reproduce the issue with Test 3. Does it happen reliably or randomly?
iss commented 2 years ago
Collaborator

I also can't reproduce issues with test 3. I rendered on CPU with openCL

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: Radeon RX550/550 Series ATI Technologies Inc. 4.5.14736 Core Profile Context 20.8.3 27.20.12027.1001

I also can't reproduce issues with test 3. I rendered on CPU with openCL **System Information** Operating system: Windows-10-10.0.19041-SP0 64 Bits Graphics card: Radeon RX550/550 Series ATI Technologies Inc. 4.5.14736 Core Profile Context 20.8.3 27.20.12027.1001
Alaska commented 2 years ago

In #80736#1041636, @brecht wrote:
I can't reproduce the issue with Test 3. Does it happen reliably or randomly?

In #80736#1042273, @iss wrote:
I also can't reproduce issues with test 3. I rendered on CPU with openCL

I am also unable to reproduce the issue with Blender 2.92.0 Alpha 7872bcafa0 (2020-11-02 14:36)

I am also unable to reproduce the artifacts shown in the original report for this task (#80736).
Maybe it's an issue with older CPUs? as @EAW does have an older Intel CPU. Note sure.

> In #80736#1041636, @brecht wrote: > I can't reproduce the issue with Test 3. Does it happen reliably or randomly? > In #80736#1042273, @iss wrote: > I also can't reproduce issues with test 3. I rendered on CPU with openCL I am also unable to reproduce the issue with Blender 2.92.0 Alpha `7872bcafa0` (2020-11-02 14:36) I am also unable to reproduce the artifacts shown in the original report for this task (#80736). Maybe it's an issue with older CPUs? as @EAW does have an older Intel CPU. Note sure.
brecht commented 2 years ago
Owner

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

Changed status from 'Confirmed' to: 'Needs User Info'
brecht commented 2 years ago
Owner

I doubt this is related to CPU architecture. Maybe @EAW made a mistake in testing?

I doubt this is related to CPU architecture. Maybe @EAW made a mistake in testing?
EAW commented 2 years ago

2.92_Nov_4_2020_fixed.png
Reran test 3 with:
version: 2.92.0 Alpha, branch: master, commit date: 2020-11-04 17:16, hash: 331614e09b, type: Release
build date: 2020-11-04, 17:45:49
platform: Windows

The issue is gone @brecht .

![2.92_Nov_4_2020_fixed.png](https://archive.blender.org/developer/F9210541/2.92_Nov_4_2020_fixed.png) Reran test 3 with: version: 2.92.0 Alpha, branch: master, commit date: 2020-11-04 17:16, hash: 331614e09be2, type: Release build date: 2020-11-04, 17:45:49 platform: Windows The issue is gone @brecht .
brecht commented 2 years ago
Owner

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

Changed status from 'Needs User Info' to: 'Resolved'
brecht closed this issue 2 years ago
brecht self-assigned this 2 years ago
brecht commented 2 years ago
Owner

Ok, great.

Ok, great.
EAW commented 2 years ago

Added subscriber: @howardt

Added subscriber: @howardt
EAW commented 2 years ago

Out of curiosity, I git bisected the commit that fixed Test 3.

commit b37c40a575663ea42d397d57d3ef902b4d9777ec
Author: Brecht Van Lommel <brecht@blender.org>
Date:   Fri Oct 23 18:54:45 2020 +0200

Fix Cycles unnecessary overhead cancelling finished task pool


 intern/cycles/util/util_task.cpp | 15 ++++++++++-----
 intern/cycles/util/util_task.h   |  4 ++--
 2 files changed, 12 insertions(+), 7 deletions(-)```

Seems reasonable to me as my report #81587 had task pool calls earlier in the stack when mesh corruption occurred.
It looks like I jumped the gun testing 390b28e338 instead of 23eaf3117c, which was commited 30 minutes later. 

Just something interesting I noticed: {b37c40a575663ea42d397d57d3ef902b4d9777ec} on Oct 24 is a re-push (not sure if that's the proper term) by @howardt of 
{23eaf3117c68} from Oct 23.
{594f47ecd2d5} is between those two commits, and still had artifacts when I tested it as a git bisect revision.  I wonder if the "re-push" changed the way the git bisect algorithm sees the git commit history, in effect making the task pool fix only appear to the git bisect algorithm once, and that being the later one on the 24th.  🤷‍♂️

Out of curiosity, I git bisected the commit that fixed Test 3. ```b37c40a575663ea42d397d57d3ef902b4d9777ec is the first new commit commit b37c40a575663ea42d397d57d3ef902b4d9777ec Author: Brecht Van Lommel <brecht@blender.org> Date: Fri Oct 23 18:54:45 2020 +0200 ``` Fix Cycles unnecessary overhead cancelling finished task pool ``` intern/cycles/util/util_task.cpp | 15 ++++++++++----- intern/cycles/util/util_task.h | 4 ++-- 2 files changed, 12 insertions(+), 7 deletions(-)``` Seems reasonable to me as my report #81587 had task pool calls earlier in the stack when mesh corruption occurred. It looks like I jumped the gun testing 390b28e338 instead of 23eaf3117c, which was commited 30 minutes later. Just something interesting I noticed: {b37c40a575663ea42d397d57d3ef902b4d9777ec} on Oct 24 is a re-push (not sure if that's the proper term) by @howardt of {23eaf3117c68} from Oct 23. {594f47ecd2d5} is between those two commits, and still had artifacts when I tested it as a git bisect revision. I wonder if the "re-push" changed the way the git bisect algorithm sees the git commit history, in effect making the task pool fix only appear to the git bisect algorithm once, and that being the later one on the 24th. 🤷‍♂️
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/Collada
Interest/Compositing
Interest/Core
Interest/Cycles
Interest/Dependency Graph
Interest/Development Management
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/Modeling
Interest/Modifiers
Interest/Motion Tracking
Interest/Nodes & Physics
Interest/Overrides
Interest/Performance
Interest/Performance
Interest/Physics
Interest/Pipeline, Assets & I/O
Interest/Platforms, Builds, Tests & Devices
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
legacy module/Animation & Rigging
legacy module/Core
legacy module/Development Management
legacy module/Eevee & Viewport
legacy module/Grease Pencil
legacy module/Modeling
legacy module/Nodes & Physics
legacy module/Pipeline, Assets & IO
legacy module/Platforms, Builds, Tests & Devices
legacy module/Python API
legacy module/Rendering & Cycles
legacy module/Sculpt, Paint & Texture
legacy module/Triaging
legacy module/User Interface
legacy module/VFX & Video
legacy project/1.0.0-beta.2
legacy project/Asset Browser (Archived)
legacy project/BF Blender: 2.8
legacy project/BF Blender: After Release
legacy project/BF Blender: Next
legacy project/BF Blender: Regressions
legacy project/BF Blender: Unconfirmed
legacy project/Blender 2.70
legacy project/Code Quest
legacy project/Datablocks and Libraries
legacy project/Eevee
legacy project/Game Animation
legacy project/Game Audio
legacy project/Game Data Conversion
legacy project/Game Engine
legacy project/Game Logic
legacy project/Game Physics
legacy project/Game Python
legacy project/Game Rendering
legacy project/Game UI
legacy project/GPU / Viewport
legacy project/GSoC
legacy project/Infrastructure: Websites
legacy project/LibOverrides - Usability and UX
legacy project/Milestone 1: Basic, Local Asset Browser
legacy project/Nodes
legacy project/OpenGL Error
legacy project/Papercut
legacy project/Pose Library Basics
legacy project/Retrospective
legacy project/Tracker Curfew
legacy project/Wintab High Frequency
Meta/Good First Issue
Meta/Papercut
migration/requires-manual-verification
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 & Devices
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 Information 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
6 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#80736
Loading…
There is no content yet.