Maniphest T93627

Dithering Problem For 6-bit Displays
Confirmed, NormalBUG

Assigned To
None
Authored By
Ethan Hall (Ethan1080)
Dec 4 2021, 4:56 AM
Tags
  • BF Blender
  • User Interface
Subscribers
Brecht Van Lommel (brecht)
Ethan Hall (Ethan1080)
Harley Acheson (harley)
Jesse Yurkovich (deadpin)
Michael Hermann (245)
Nikhil Shringarpurey (Nikhil.Net)
Pablo Vazquez (pablovazquez)
1 More Subscribers

Description

System Information
Operating system: Windows-10-10.0.19042-SP0 64 Bits
Internal Display: 6-bit 1920x1080
External Display: 8-bit 1920x1080
Integrated Graphics card: Intel(R) HD Graphics 630 Intel 4.5.0 - Build 27.20.100.9664
Discrete Graphics card: NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 472.47 (Manages the HDMI output)

Blender Version
Broken: version: 3.0.0, branch: master, commit date: 2021-12-02 18:35, hash: rBf1cca3055776
Worked: Unknown

Short description of error
In Blender 3.0.0, there is an obvious dither pattern resulting from the vignette in the viewport when using my laptop's internal display.
I suspect Blender's algorithm for dithering is not compatible or optimized to work with 6-bit displays.

-Partial Fix-
Changing the theme (as @Jesse Yurkovich (deadpin) suggested) makes this issue have far less of an impact.

Preferences -> Themes -> 3D Viewport -> Theme Space (way at the bottom) -> Gradient Colors -> Background Type : set to Single Color

When Blender is using the integrated GPU (with the vignette background type):

  • Dithering pattern is clearly visible.
  • Moving the entire application window causes the dithered region to flicker.
  • When Blender is displayed on the external monitor, the issue is not present.

When Blender is using the discrete GPU (with the vignette background type):

  • Dithering pattern is clearly visible.
  • Moving the entire application window causes the dithered region to flicker.
  • Moving the mouse across the editor windows causes the dithered region to flicker.
  • When Blender is displayed on the external monitor, the issue is not present.

Exact steps for others to reproduce the error
Use Blender with a 6-bit display (with the vignette background type enabled in the theme settings).

Event Timeline

Ethan Hall (Ethan1080) created this task.Dec 4 2021, 4:56 AM
Ethan Hall (Ethan1080) edited projects, added BF Blender (3.0); removed BF Blender.
Jesse Yurkovich (deadpin) added a subscriber: Jesse Yurkovich (deadpin).Dec 4 2021, 5:51 AM

This is probably the theme. Try the following:
Preferences -> Themes -> 3D Viewport -> Theme Space (way at the bottom) -> Gradient Colors -> Background Type : set to Single Color

Ethan Hall (Ethan1080) renamed this task from Dithering Error On 6-bit Laptop Display to Dithering Problem For 6-bit Displays.Dec 4 2021, 5:57 AM
Ethan Hall (Ethan1080) updated the task description.
Ethan Hall (Ethan1080) added a comment.Dec 4 2021, 6:10 AM
In T93627#1264508, @Jesse Yurkovich (deadpin) wrote:

This is probably the theme. Try the following:
Preferences -> Themes -> 3D Viewport -> Theme Space (way at the bottom) -> Gradient Colors -> Background Type : set to Single Color

Indeed, simply changing the theme makes the issue far less of an annoyance. I suspect the issue has always been present, but the new default for the theme has brought it to my attention.

Ethan Hall (Ethan1080) updated the task description.Dec 4 2021, 6:24 AM
Ethan Hall (Ethan1080) updated the task description.Dec 4 2021, 6:32 AM
Ethan Hall (Ethan1080) added a comment.Dec 4 2021, 4:17 PM

Should vignette be enabled for the default themes?

I suspect that many others will face this issue and potentially think their computer has an issue or that Blender is bugged.
The fact that the setting to disable vignette is buried in the preferences menu further confounds this problem.

Also, those screen recording Blender will now have color banding present in their videos due to the video compression removing the dithering. (Compare Blender Guru's 3.0 donut tutorial to his 2.X donut tutorial)

Russell Williams (LucidGamer137) added a subscriber: Russell Williams (LucidGamer137).Dec 7 2021, 12:23 AM

Yep, I installed 3.0 and found this quickly after messing around for a bit. Although, I didn't notice the dithering/flickering issue until my laptop crashed shortly after installing; I had loaded up one of the scenes used for a previous version's splash screen, mostly just to admire it and try to glean a few tidbits from digging through it (I'm very new to Blender) and when I tried to render, I realized the default render settings on the .blend file/project were set to render basically the entire image at once (way outside of my laptop's capabilities) and when I went to cancel the render, realizing this would be way too taxing, my whole laptop hard locked. When I booted back up and reopened Blender, I that's when I noticed the flickering first, or at least most prominently. At first I thought it had something to do with the updated Cycles algorithm before I realized it was far more obvious in Solid and Material Preview shading. Changing the background fixes it, but seems like this is a pretty minor if obvious bug of some sort. Figured I would provide some extra details I noticed personally and just add an extra voice of notice.

Nikhil Shringarpurey (Nikhil.Net) added a subscriber: Nikhil Shringarpurey (Nikhil.Net).Dec 8 2021, 4:47 PM

Just to add my 2 cents here, while the gradient does make it look nice, there should be some very clearly visible guidance for disabling for people with low color-space displays or people recording video (as mentioned above).

The problem is, the current theming guidelines place that option 3 levels down in a place no one without specific knowledge would look (Themes Tab -> 3D View -> Theme Space ???? -> Gradient). The very naming of "theme space" is counterintuitive and doesn't make sense, and feels like a hack due to not having a better name.

Ideally, this would be surfaced as a top-level preference, but then it violates the design rules for theme settings. Not sure if there is a good solution here, but perhaps creating an "Enable Gradients" global option could be added that would affect any theme elements using gradients.

Brecht Van Lommel (brecht) added a subscriber: Brecht Van Lommel (brecht).Dec 8 2021, 5:50 PM

If you save a screenshot of Blender as PNG and display that in an image viewing application, does it have the same problem? What I'm wondering is if it fundamentally is an issue where these monitors have problems displaying such gradients, and the only practical solution is to not have such gradients in the theme?

It's not clear to me how we would change the dithering algorithm to work better for 6 bit. My understanding is that 6 bit + FRC monitors take 8 bit input and use temporal dithering to emulate the missing 2 bits. If we would dither to 6 bits, that would seriously degrade image quality, as FRC works fine for most things. If there is some change to the dithering algorithm that we can do to avoid conflicting with the monitor temporal dithering, it's not clear to me what that would be.

Brecht Van Lommel (brecht) edited projects, added BF Blender; removed BF Blender (3.0).Dec 9 2021, 3:35 PM
Ray Molenkamp (LazyDodo) added a subscriber: Ray Molenkamp (LazyDodo).Dec 9 2021, 3:48 PM

I saw similar issues being reported on twitter by the tutorial makers, apparently the gradient messes with the video encoding process as well, either way the problem seems to extend beyond 6 bit monitors. As for a solution, while improving dithering may fix the issue for 6 bit monitors, video encoding will likely still throw a fit, we could remove the gradient from the default theme, or add a theme that looks like the default theme but without gradients, i have no strong feelings in either direction, it's up to the UI team what they want to do here.

Brecht Van Lommel (brecht) added a subscriber: Pablo Vazquez (pablovazquez).Dec 9 2021, 3:57 PM

@Pablo Vazquez (pablovazquez), I think we should remove the gradient in the default theme. I don't think there's a good alternative solution and it's a serious enough issue.

Brecht Van Lommel (brecht) changed the task status from Needs Triage to Confirmed.Dec 9 2021, 3:57 PM
Brecht Van Lommel (brecht) changed the subtype of this task from "Report" to "Bug".
Brecht Van Lommel (brecht) added a project: User Interface.
Michael Hermann (245) added a subscriber: Michael Hermann (245).Dec 4 2022, 7:01 PM

Any chance we can still squeeze this into the 3.4 release?
It's been a year.

On my displays this is really bad. And I'm not on a 6 bit display. (This is the one I'm looking at https://www.eizo.eu/flexscan/ev2785-bk/technical-specifications/)

Please see the video below. It's actually a lot worse in real life because the video noise mixes with the flickering a bit.
Every time I want to check something with Factory Settings, this hits me in the face.

Harley Acheson (harley) added a subscriber: Harley Acheson (harley).Dec 4 2022, 7:28 PM

I agree that we should remove the default vignetting @Pablo Vazquez (pablovazquez)

Michael Hermann (245) added a comment.Dec 4 2022, 9:54 PM

Ok, this caused me to do some more digging. (Which, admittedly I should have done before posting here.) My -personal- issue with this is resolved now. Turns out that my display actually seems to have an issue. (It's a relatively new replacement.) It turns into a 6-bit display when connected via DisplayPort. Then nvidia's dithering kicks in and causes this. (Also why I wasn't seeing banding everywhere) (Different display, but seems to be the same problem: https://www.eizoglobal.com/support/information/radiforce_201507/index.html)

Once connected via HDMI, it's all fine now.

Until the vignette is removed other people have two options:

  • Remove the vignette manually from the theme (see above) - But it'll still be there for Factory Settings
  • In nvidia settings use Dithering Mode "Static 2x2" or "Temporal" (Dynamic 2x2 is causes the flickering. And it is also the default.)