Enabling "Steroscopy" in the viewport camera causes graphical glitches with anti-aliasing enabled. #76874

Closed
opened 3 years ago by Alaska · 32 comments
Alaska commented 3 years ago

System Information:
Operating system: Linux-5.4.0-7626-generic-x86_64-with-debian-bullseye-sid 64 Bits
Graphics card: GeForce GTX 1050 Ti 440.82

Blender Version:
Broken: 2.83 ff7a30d92884 (2020-05-18 23:31), 2.90 7bd07c9f5adf (2020-05-18 23:33)
Worked: 2.82a

Short description of error:
This isn't a new issue, it just seems it was missed during 365e9cb6aa. This task was created as an extension of #74243 because #74243 was closed.
Screenshot from 2020-05-19 17-27-50.png

Edit: This may also be related: 5593efec01

Exact steps for others to reproduce the error:

  1. Open Blender with default settings and a default startup scene.
  2. Change to "Active Camera" view (Numberpad 0).
  3. In the properties editor select the "Output" tab and enable "Stereoscopy".
  4. Now the viewport should have the glitch shown in the above screenshot. If you then go to user preferences and in the "viewport" section change the anti-aliasing method to "none" or "single pass" the issue goes away. All other anti-aliasing settings have the issue.

Note 1: This issue only occurs in solid mode. The issue also seems to disappear if you change to "Material Preview" or "EEVEE rendered" mode at anytime while having that Blender instance open. E.G. Open Blender, switch to "Material Preview" mode, switch back to "Solid" mode then enable "Stereoscopy" and go the the active camera. Now the issue won't occur. Load factory defaults, enable "Stereoscopy", switch to active camera, the issue won't occur. I have to close Blender and re-open it to get the issue to occur again.

Note 2: I have tested to ensure the issue described in #74243 hasn't returned. So far I'm only seeing the issue with stereoscopy. The issues with weight paint and wireframes hasn't returned as far as I can tell.

Workaround:
Change shading to material mode once and the issue is gone.

**System Information:** Operating system: Linux-5.4.0-7626-generic-x86_64-with-debian-bullseye-sid 64 Bits Graphics card: GeForce GTX 1050 Ti 440.82 **Blender Version:** Broken: 2.83 `ff7a30d92884` (2020-05-18 23:31), 2.90 `7bd07c9f5adf` (2020-05-18 23:33) Worked: 2.82a **Short description of error:** This isn't a new issue, it just seems it was missed during 365e9cb6aa. This task was created as an extension of #74243 because #74243 was closed. ![Screenshot from 2020-05-19 17-27-50.png](https://archive.blender.org/developer/F8542456/Screenshot_from_2020-05-19_17-27-50.png) Edit: This may also be related: 5593efec01 **Exact steps for others to reproduce the error:** 1. Open Blender with default settings and a default startup scene. 2. Change to "Active Camera" view (Numberpad 0). 3. In the properties editor select the "Output" tab and enable "Stereoscopy". 4. Now the viewport should have the glitch shown in the above screenshot. If you then go to user preferences and in the "viewport" section change the anti-aliasing method to "none" or "single pass" the issue goes away. All other anti-aliasing settings have the issue. Note 1: This issue only occurs in solid mode. The issue also seems to disappear if you change to "Material Preview" or "EEVEE rendered" mode at anytime while having that Blender instance open. E.G. Open Blender, switch to "Material Preview" mode, switch back to "Solid" mode then enable "Stereoscopy" and go the the active camera. Now the issue won't occur. Load factory defaults, enable "Stereoscopy", switch to active camera, the issue won't occur. I have to close Blender and re-open it to get the issue to occur again. Note 2: I have tested to ensure the issue described in #74243 hasn't returned. So far I'm only seeing the issue with stereoscopy. The issues with weight paint and wireframes hasn't returned as far as I can tell. **Workaround:** Change shading to material mode once and the issue is gone.
Alaska commented 3 years ago
Poster

Added subscriber: @Alaska

Added subscriber: @Alaska
Collaborator

#83873 was marked as duplicate of this issue

#83873 was marked as duplicate of this issue
Collaborator

#79351 was marked as duplicate of this issue

#79351 was marked as duplicate of this issue
Alaska commented 3 years ago
Poster

Removed subscriber: @Alaska

Removed subscriber: @Alaska
Alaska commented 3 years ago
Poster

Added subscriber: @Alaska

Added subscriber: @Alaska
fclem was assigned by Alaska 3 years ago
Alaska commented 3 years ago
Poster

@fclem I have assigned you to this task as you worked on the fix for the other issue. Sorry if this task should be assigned to someone else.

@fclem I have assigned you to this task as you worked on the fix for the other issue. Sorry if this task should be assigned to someone else.
Collaborator

Added subscriber: @Blendify

Added subscriber: @Blendify
Collaborator

I cannot reproduce on windows.

I cannot reproduce on windows.
Alaska commented 3 years ago
Poster

Looks like it may end up like #74243. A Nvidia only, Linux only issue. Will need more investigation to confirm this.

Looks like it may end up like #74243. A Nvidia only, Linux only issue. Will need more investigation to confirm this.
Collaborator

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Collaborator

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

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

I can confirm actually

System Information
Operating system: Linux-5.5.13-200.fc31.x86_64-x86_64-with-fedora-31-Thirty_One 64 Bits
Graphics card: GeForce GTX 970M/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 440.64
version: 2.90 (sub 2), branch: master, commit date: 2020-05-19 03:31, hash: 1151bcd53d

I can confirm actually **System Information** Operating system: Linux-5.5.13-200.fc31.x86_64-x86_64-with-fedora-31-Thirty_One 64 Bits Graphics card: GeForce GTX 970M/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 440.64 version: 2.90 (sub 2), branch: master, commit date: 2020-05-19 03:31, hash: `1151bcd53d`
Owner

Added subscribers: @Jeroen-Bakker, @dfelinto

Added subscribers: @Jeroen-Bakker, @dfelinto
Owner

@fclem @Jeroen-Bakker I can reproduce this on Linux btw using GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 440.44.

@Alaska for the record, refrain from tagging your own report as 2.83. The tag means the issue is planned to be tackled by 2.83, not that it happens in 2.83. But for now leave it as it is, since I hope this can be fixed for 2.83.

@fclem @Jeroen-Bakker I can reproduce this on Linux btw using `GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 440.44`. @Alaska for the record, refrain from tagging your own report as 2.83. The tag means the issue is planned to be tackled by 2.83, not that it happens in 2.83. But for now leave it as it is, since I hope this can be fixed for 2.83.
Alaska commented 3 years ago
Poster

In #76874#934497, @dfelinto wrote:
@Alaska for the record, refrain from tagging your own report as 2.83. The tag means the issue is planned to be tackled by 2.83, not that it happens in 2.83.

I will keep that in mind for future reports.

> In #76874#934497, @dfelinto wrote: > @Alaska for the record, refrain from tagging your own report as 2.83. The tag means the issue is planned to be tackled by 2.83, not that it happens in 2.83. I will keep that in mind for future reports.
Collaborator

@fclem: Probably again something along the lines of the following?

P1403: T76874_snippet



diff --git a/source/blender/draw/engines/overlay/overlay_extra.c b/source/blender/draw/engines/overlay/overlay_extra.c
index af54e524445..0143c07e697 100644
--- a/source/blender/draw/engines/overlay/overlay_extra.c
+++ b/source/blender/draw/engines/overlay/overlay_extra.c
@@ -1140,6 +1140,12 @@ void OVERLAY_camera_cache_populate(OVERLAY_Data *vedata, Object *ob)
   const bool look_through = (is_active && (rv3d->persp == RV3D_CAMOB));
 
   const bool is_multiview = (scene->r.scemode & R_MULTIVIEW) != 0;
+
+  /* this works, but of course this doesnt really detect the CHANGE / UPDATE! */
+  if (is_multiview) {
+    rv3d->rflag |= RV3D_GPULIGHT_UPDATE;
+  }
+
   const bool is_stereo3d_view = (scene->r.views_format == SCE_VIEWS_FORMAT_STEREO_3D);
   const bool is_stereo3d_display_extra = is_active && is_multiview && (!look_through) &&
                                          ((v3d->stereo3d_flag) != 0);
diff --git a/source/blender/draw/engines/workbench/workbench_data.c b/source/blender/draw/engines/workbench/workbench_data.c
index 7b08e97ac31..891c6383ca6 100644
--- a/source/blender/draw/engines/workbench/workbench_data.c
+++ b/source/blender/draw/engines/workbench/workbench_data.c
@@ -188,6 +188,14 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd)
       draw_ctx->object_edit, draw_ctx->obact, draw_ctx->object_mode);
 
   wpd->preferences = &U;
+
+  /* Tried this, but apparently wpd->scene is not ensure to be valid here? */
+  const bool wpd_multiview = wpd->scene ? (wpd->scene->r.scemode & R_MULTIVIEW) != 0 : false;
+  const bool scene_multiview = (scene->r.scemode & R_MULTIVIEW) != 0;
+  if (wpd_multiview != scene_multiview) {
+    wpd->view_updated = true;
+  }
+
   wpd->scene = scene;
   wpd->sh_cfg = draw_ctx->sh_cfg;
 
@fclem: Probably again something along the lines of the following? [P1403: T76874_snippet](https://archive.blender.org/developer/P1403.txt) ``` diff --git a/source/blender/draw/engines/overlay/overlay_extra.c b/source/blender/draw/engines/overlay/overlay_extra.c index af54e524445..0143c07e697 100644 --- a/source/blender/draw/engines/overlay/overlay_extra.c +++ b/source/blender/draw/engines/overlay/overlay_extra.c @@ -1140,6 +1140,12 @@ void OVERLAY_camera_cache_populate(OVERLAY_Data *vedata, Object *ob) const bool look_through = (is_active && (rv3d->persp == RV3D_CAMOB)); const bool is_multiview = (scene->r.scemode & R_MULTIVIEW) != 0; + + /* this works, but of course this doesnt really detect the CHANGE / UPDATE! */ + if (is_multiview) { + rv3d->rflag |= RV3D_GPULIGHT_UPDATE; + } + const bool is_stereo3d_view = (scene->r.views_format == SCE_VIEWS_FORMAT_STEREO_3D); const bool is_stereo3d_display_extra = is_active && is_multiview && (!look_through) && ((v3d->stereo3d_flag) != 0); diff --git a/source/blender/draw/engines/workbench/workbench_data.c b/source/blender/draw/engines/workbench/workbench_data.c index 7b08e97ac31..891c6383ca6 100644 --- a/source/blender/draw/engines/workbench/workbench_data.c +++ b/source/blender/draw/engines/workbench/workbench_data.c @@ -188,6 +188,14 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd) draw_ctx->object_edit, draw_ctx->obact, draw_ctx->object_mode); wpd->preferences = &U; + + /* Tried this, but apparently wpd->scene is not ensure to be valid here? */ + const bool wpd_multiview = wpd->scene ? (wpd->scene->r.scemode & R_MULTIVIEW) != 0 : false; + const bool scene_multiview = (scene->r.scemode & R_MULTIVIEW) != 0; + if (wpd_multiview != scene_multiview) { + wpd->view_updated = true; + } + wpd->scene = scene; wpd->sh_cfg = draw_ctx->sh_cfg; ```

Added subscriber: @ZsoltStefan

Added subscriber: @ZsoltStefan

I can confirm this also happens on Windows. I get a red/cyan checkerboard pattern in the upper part of the screen. If there are more 3D views open, and one is in camera view, then the other viewports also get the glitch even if they are not in camera view. Switching to Material Preview and back to solid shading solves the problem.

Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce RTX 2080 with Max-Q Design/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 442.19
Broken: version: 2.90 (sub 2), branch: master, commit date: 2020-05-18 09:05, hash: f3edff2d7d

I can confirm this also happens on Windows. I get a red/cyan checkerboard pattern in the upper part of the screen. If there are more 3D views open, and one is in camera view, then the other viewports also get the glitch even if they are not in camera view. Switching to Material Preview and back to solid shading solves the problem. Operating system: Windows-10-10.0.18362-SP0 64 Bits Graphics card: GeForce RTX 2080 with Max-Q Design/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 442.19 Broken: version: 2.90 (sub 2), branch: master, commit date: 2020-05-18 09:05, hash: `f3edff2d7d`
Alaska commented 3 years ago
Poster

Removing the Linux project as @ZsoltStefan can reproduce the issue on Windows.

I am also able to reproduce the issue where other viewports get corrupted when one is in the camera view.

Removing the Linux project as @ZsoltStefan can reproduce the issue on Windows. I am also able to reproduce the issue where other viewports get corrupted when one is in the camera view.
Owner

In the end this is a driver issue. And with a workaround (change once to material mode, and the issue is gone once you go back to solid). Moving this to known issue.

In the end this is a driver issue. And with a workaround (change once to material mode, and the issue is gone once you go back to solid). Moving this to known issue.
fclem was unassigned by Alaska 3 years ago
Alaska commented 3 years ago
Poster

Added subscriber: @fclem

Added subscriber: @fclem
Alaska commented 3 years ago
Poster

Added subscriber: @Rogo

Added subscriber: @Rogo
Alaska commented 2 years ago
Poster

Added subscriber: @sundriftproductions

Added subscriber: @sundriftproductions
Collaborator

Removed subscriber: @Blendify

Removed subscriber: @Blendify
Collaborator

Added subscriber: @pmoursnv

Added subscriber: @pmoursnv
Collaborator

This has been fixed with the r460 driver releases (Windows 460.79+, Linux 460.27.04+). Please try again and let me know if it can be closed.

This has been fixed with the r460 driver releases (Windows 460.79+, Linux 460.27.04+). Please try again and let me know if it can be closed.

@pmoursnv -- I installed driver version 460.89 for RTX/Quatro on Windows (https://www.nvidia.com/Download/driverResults.aspx/167756/en-us ) and the problem appears to have been fixed with this driver version.

I don't know if the problem is also resolved on Linux systems.

@pmoursnv -- I installed driver version 460.89 for RTX/Quatro on Windows (https://www.nvidia.com/Download/driverResults.aspx/167756/en-us ) and the problem appears to have been fixed with this driver version. I don't know if the problem is also resolved on Linux systems.
Alaska commented 1 year ago
Poster

I just thought I would update on this since it's been a while. I am still able to produce this bug, or something similar, with the setup below:

Rendering artifacts on Nvidia GPU.png

System Information
Operating system: Linux-5.15.0-1-amd64-x86_64-with-glibc2.32 64 Bits
Graphics card: NVIDIA GeForce RTX 3090/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 495.44

Blender Version 3.1.0

I just thought I would update on this since it's been a while. I am still able to produce this bug, or something similar, with the setup below: ![Rendering artifacts on Nvidia GPU.png](https://archive.blender.org/developer/F11979371/Rendering_artifacts_on_Nvidia_GPU.png) **System Information** Operating system: Linux-5.15.0-1-amd64-x86_64-with-glibc2.32 64 Bits Graphics card: NVIDIA GeForce RTX 3090/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 495.44 Blender Version 3.1.0
Owner

The problem is also still here on:
Operating system: Linux-5.11.0-40-generic-x86_64-with-glibc2.31 64 Bits
Graphics card: GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 460.91.03

The problem is also still here on: Operating system: Linux-5.11.0-40-generic-x86_64-with-glibc2.31 64 Bits Graphics card: GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 460.91.03
Collaborator

Turns out this was accidentally only fixed on Windows, not Linux. I'll bring it up internally.

Turns out this was accidentally only fixed on Windows, not Linux. I'll bring it up internally.
Alaska commented 1 year ago
Poster

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Alaska closed this issue 1 year ago
Alaska self-assigned this 1 year ago
Alaska commented 1 year ago
Poster

Linux Nvidia GPU driver 510.47.03 has this in the changelog:

Added an application profile to avoid an image corruption issue in Blender, as described at https://developer.blender.org/T76874
Source: https://www.nvidia.com/Download/driverResults.aspx/186156/en-us

And updating to GPU driver 510.47.03 does indeed fix the issue for me. As such I will be closing this report.

Linux Nvidia GPU driver 510.47.03 has this in the changelog: > Added an application profile to avoid an image corruption issue in Blender, as described at https://developer.blender.org/T76874 > Source: https://www.nvidia.com/Download/driverResults.aspx/186156/en-us And updating to GPU driver 510.47.03 does indeed fix the issue for me. As such I will be closing this report.
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
8 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

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