Dashed geometry nodes field link too hard to see on macOS #102919

Closed
opened 2022-12-02 18:11:53 +01:00 by Kent Davis · 39 comments

System Information
Operating system: macOS-13.1-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon Pro 575 OpenGL Engine ATI Technologies Inc. 4.1 ATI-4.9.51

Blender Version
Broken: version: 3.5.0 Alpha, branch: master, commit date: 2022-11-30 21:55, hash: 4aac5b92c1
Worked: (newest version of Blender that worked as expected)

Short description of error
Break line (I don't know word) see picture

Exact steps for others to reproduce the error
Only for Mac. Do not use Windows.
image.png

image.png

See my picture on my iMac there.
image.png

Browser to show picture.
https://imgur.com/0q6NTJs

image.png

Theme on Nodes "Dashed Lines Opacity"
image.png

**System Information** Operating system: macOS-13.1-x86_64-i386-64bit 64 Bits Graphics card: AMD Radeon Pro 575 OpenGL Engine ATI Technologies Inc. 4.1 ATI-4.9.51 **Blender Version** Broken: version: 3.5.0 Alpha, branch: master, commit date: 2022-11-30 21:55, hash: `4aac5b92c1` Worked: (newest version of Blender that worked as expected) **Short description of error** Break line (I don't know word) see picture **Exact steps for others to reproduce the error** Only for Mac. Do not use Windows. ![image.png](https://archive.blender.org/developer/F13986121/image.png) ![image.png](https://archive.blender.org/developer/F13986133/image.png) See my picture on my iMac there. ![image.png](https://archive.blender.org/developer/F13986119/image.png) Browser to show picture. https://imgur.com/0q6NTJs ![image.png](https://archive.blender.org/developer/F13986176/image.png) Theme on Nodes "Dashed Lines Opacity" ![image.png](https://archive.blender.org/developer/F13986184/image.png)
Author

Added subscriber: @Kent-Davis

Added subscriber: @Kent-Davis
Member

Added subscriber: @Harley

Added subscriber: @Harley
Member

It would be so nice to be able to fix this. Especially since this is a serious accessibility problem.

This issue is caused because our "dotted line" shader, unlike the rest, does not support custom line widths. Instead it always just uses the GL line width. Unfortunately GL line widths above 1 is optional for the driver. And on many Macs they cannot do greater than 1 pixel wide. Couple that with a Retina display and you end up with dashed lines that are less than a normal pixel wide. Terrible if you also have vision difficulties.

It would be so nice to be able to fix this. Especially since this is a serious accessibility problem. This issue is caused because our "dotted line" shader, unlike the rest, does not support custom line widths. Instead it always just uses the GL line width. Unfortunately GL line widths above 1 is optional for the driver. And on many Macs they cannot do greater than 1 pixel wide. Couple that with a Retina display and you end up with dashed lines that are less than a normal pixel wide. Terrible if you also have vision difficulties.

Added subscriber: @mod_moder

Added subscriber: @mod_moder

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

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

In that case, I'll confirm this issue. Also, from the explanation @Harley it looks like something with a high priority.

In that case, I'll confirm this issue. Also, from the explanation @Harley it looks like something with a high priority.
Member

I personally consider it a high priority, since it is accessibility-related. However, it is also a very long-standing problem. It used to be that all of our shaders created invisible lines on some Macs with Retina displays, but over time they were all improved with just this one remaining. Of course even one like this is too many for those with difficulty seeing them.

I personally consider it a high priority, since it is accessibility-related. However, it is also a very long-standing problem. It used to be that **all** of our shaders created invisible lines on some Macs with Retina displays, but over time they were all improved with just this one remaining. Of course even one like this is too many for those with difficulty seeing them.
Hans Goudey changed title from Geometry Nodes Diamond line unable to see. December 2, 2022 to Dashed geometry nodes field link to hard to see on macOS 2022-12-02 19:47:41 +01:00
Hans Goudey changed title from Dashed geometry nodes field link to hard to see on macOS to Dashed geometry nodes field link too hard to see on macOS 2022-12-02 19:47:53 +01:00
Member

Added subscriber: @HooglyBoogly

Added subscriber: @HooglyBoogly
Member

Actually I don't think this is the same problem. Node links aren't drawn with the same shader as the other dashed links. They actually change thickness as you zoom in and out, just like regular links. Maybe a solution is to make the line width UI option affect the node link width.

Actually I don't think this is the same problem. Node links aren't drawn with the same shader as the other dashed links. They actually change thickness as you zoom in and out, just like regular links. Maybe a solution is to make the line width UI option affect the node link width.
Member

@HooglyBoogly - Actually I don't think this is the same problem

No, I think you are right. My bad. I am just so used to our dashed-line shader affecting Kent that I jumped to the wrong conclusion.

This looks to be made with the GPU_SHADER_2D_NODELINK shader. And it looks like it isn't scaling correctly. Kent's capture had to be shown full-screen (its 3720 x 1081 since it is on a high-DPI monitor) to really see what is going on. He is indicating that the gaps between the sections of that line are only a pixel wide. So when shown on his monitor those gaps are subpixel in size. Actually the gaps seem to be between 1 and 2 pixels in size.

{F13987310,width=100%}

With a High DPI screen and his UI scale set to 2.0 and thick lines turned on he should have a U.pixelsize of 6 I think. So we really shouldn't have any features smaller than than 6 pixels. Instead we have a gaps that are smaller than the eye can discern on a high-dpi monitor.

> @HooglyBoogly - Actually I don't think this is the same problem No, I think you are right. My bad. I am just so used to our dashed-line shader affecting Kent that I jumped to the wrong conclusion. This looks to be made with the GPU_SHADER_2D_NODELINK shader. And it looks like it isn't scaling correctly. Kent's capture had to be shown full-screen (its 3720 x 1081 since it is on a high-DPI monitor) to really see what is going on. He is indicating that the gaps between the sections of that line are only a pixel wide. So when shown on his monitor those gaps are subpixel in size. Actually the gaps seem to be between 1 and 2 pixels in size. {[F13987310](https://archive.blender.org/developer/F13987310/image.png),width=100%} With a High DPI screen and his UI scale set to 2.0 and thick lines turned on he should have a U.pixelsize of 6 I think. So we really shouldn't have any features smaller than than 6 pixels. Instead we have a gaps that are smaller than the eye can discern on a high-dpi monitor.
Author

You can see " Resolution: Retina 5K (5120 x 2880) " on below.

Screenshot is 6400 px X 3200 px
You can see picture is very largest.
Screenshot 2022-12-03 at 7.21.09 AM.png

Radeon Pro 575:

Chipset Model:	Radeon Pro 575
Type:	GPU
Bus:	PCIe
PCIe Lane Width:	x16
VRAM (Total):	4 GB
Vendor:	AMD (0x1002)
Device ID:	0x67df
Revision ID:	0x00c4
ROM Revision:	113-D000AA-931
VBIOS Version:	113-D0001A1P-025
EFI Driver Version:	01.00.931
Metal Support:	Metal 2
Displays:

iMac:

Display Type:	Built-In Retina LCD
Resolution:	Retina 5K (5120 x 2880)
Framebuffer Depth:	30-Bit Color (ARGB2101010)
Main Display:	Yes
Mirror:	Off
Online:	Yes
Automatically Adjust Brightness:	No
Connection Type:	Internal
You can see " Resolution: Retina 5K (5120 x 2880) " on below. Screenshot is 6400 px X 3200 px You can see picture is very largest. ![Screenshot 2022-12-03 at 7.21.09 AM.png](https://archive.blender.org/developer/F13989215/Screenshot_2022-12-03_at_7.21.09_AM.png) Radeon Pro 575: ``` Chipset Model: Radeon Pro 575 Type: GPU Bus: PCIe PCIe Lane Width: x16 VRAM (Total): 4 GB Vendor: AMD (0x1002) Device ID: 0x67df Revision ID: 0x00c4 ROM Revision: 113-D000AA-931 VBIOS Version: 113-D0001A1P-025 EFI Driver Version: 01.00.931 Metal Support: Metal 2 Displays: ``` iMac: ``` Display Type: Built-In Retina LCD Resolution: Retina 5K (5120 x 2880) Framebuffer Depth: 30-Bit Color (ARGB2101010) Main Display: Yes Mirror: Off Online: Yes Automatically Adjust Brightness: No Connection Type: Internal ```
Author

Don't forget about iMac will come soon will be RETINA DISPLAY 10,000 px come soon because of iPad Pro already have 10,000 px too.

Please check my previous ticket many times. I was wait too long to fix on Blender for Mac Accessibility everything menu, 3D Viewer, and etc.

Don't forget about iMac will come soon will be RETINA DISPLAY 10,000 px come soon because of iPad Pro already have 10,000 px too. Please check my previous ticket many times. I was wait too long to fix on Blender for Mac Accessibility everything menu, 3D Viewer, and etc.

Added subscriber: @Michael-Parkin-White-Apple

Added subscriber: @Michael-Parkin-White-Apple
Author

I am still wait for you to fix.
Not only EEVEE.
Only focus Geometry on break line.
image

I am still wait for you to fix. Not only EEVEE. Only focus Geometry on break line. ![image](/attachments/5153c8e2-dfa9-4a0a-9835-3c105903ec7b)

Hello. I don't think this is a bug that you can do anything about.

  • It would be possible to replace the cyrves by polylines in link drawing, so that using polylines, have a uniform density. If this is your problem?
  • Or we can add the line step width to the theme settings.
Hello. I don't think this is a bug that you can do anything about. - It would be possible to replace the cyrves by polylines in link drawing, so that using polylines, have a uniform density. If this is your problem? - Or we can add the line step width to the theme settings.
Author

@mod_moder
Do you have your own Macintosh iMac?

@mod_moder Do you have your own Macintosh iMac?

no

no
Author

@mod_moder
Then you should not do that without your own Mac. They do fix code for Mac only.
I am wait for them to fix code make sure Dashed Line correct.

@mod_moder Then you should not do that without your own Mac. They do fix code for Mac only. I am wait for them to fix code make sure Dashed Line correct.
Author

@PratikPB2123 Would you like to put Mac notification?

@PratikPB2123 Would you like to put Mac notification?
Member

What I'm not seeing (yet) in the shader is control over the length of each dash segment. But we can control the proportion between dash and non-dash. And the line width.

This is what the dashed line looks like by default:

image

But if we do the following:

diff --git a/source/blender/editors/space_node/drawnode.cc b/source/blender/editors/space_node/drawnode.cc
index 4eb1dffd880..bc22b8e422a 100644
--- a/source/blender/editors/space_node/drawnode.cc
+++ b/source/blender/editors/space_node/drawnode.cc
@@ -2044,11 +2044,11 @@ static NodeLinkDrawConfig nodelink_get_draw_config(const bContext &C,
 
   const bool field_link = node_link_is_field_link(snode, link);
 
-  draw_config.dash_factor = field_link ? 0.75f : 1.0f;
+  draw_config.dash_factor = field_link ? 0.5f : 1.0f;
 
   const float scale = UI_view2d_scale_get_x(&v2d);
   /* Clamp the thickness to make the links more readable when zooming out. */
-  draw_config.thickness = max_ff(scale, 1.0f) * (field_link ? 0.7f : 1.0f);
+  draw_config.thickness = max_ff(scale, 1.0f);
   draw_config.highlighted = link.flag & NODE_LINK_TEMP_HIGHLIGHT;
   draw_config.drawarrow = ((link.tonode && (link.tonode->type == NODE_REROUTE)) &&
                            (link.fromnode && (link.fromnode->type == NODE_REROUTE)));

And then the user (and/or us) changes the "Dashed Lines Opacity" to 0:

image

we then get this, which might be enough to help Kent:

image

What I'm not seeing (yet) in the shader is control over the length of each dash segment. But we can control the proportion between dash and non-dash. And the line width. This is what the dashed line looks like by default: ![image](/attachments/c6cdfa8d-75ad-4e3e-a1ff-9547b6f8c6c2) But if we do the following: ``` diff --git a/source/blender/editors/space_node/drawnode.cc b/source/blender/editors/space_node/drawnode.cc index 4eb1dffd880..bc22b8e422a 100644 --- a/source/blender/editors/space_node/drawnode.cc +++ b/source/blender/editors/space_node/drawnode.cc @@ -2044,11 +2044,11 @@ static NodeLinkDrawConfig nodelink_get_draw_config(const bContext &C, const bool field_link = node_link_is_field_link(snode, link); - draw_config.dash_factor = field_link ? 0.75f : 1.0f; + draw_config.dash_factor = field_link ? 0.5f : 1.0f; const float scale = UI_view2d_scale_get_x(&v2d); /* Clamp the thickness to make the links more readable when zooming out. */ - draw_config.thickness = max_ff(scale, 1.0f) * (field_link ? 0.7f : 1.0f); + draw_config.thickness = max_ff(scale, 1.0f); draw_config.highlighted = link.flag & NODE_LINK_TEMP_HIGHLIGHT; draw_config.drawarrow = ((link.tonode && (link.tonode->type == NODE_REROUTE)) && (link.fromnode && (link.fromnode->type == NODE_REROUTE))); ``` And then the user (and/or us) changes the "Dashed Lines Opacity" to 0: ![image](/attachments/a7b79327-c46c-4df0-a517-aad4bf4ef11a) we then get this, which *might* be enough to help Kent: ![image](/attachments/1ee0784f-82cf-486b-a133-15e86e80e305)
Author

Sigh you still don't understand. I saw youtube for Windows Dash.
Mac need fix Blender code. I show you picture.
image

Sigh you still don't understand. I saw youtube for Windows Dash. Mac need fix Blender code. I show you picture. ![image](/attachments/b4718b81-03d5-4a91-9e3d-f98ea0f3c797)
795 KiB
Member

I understand. I would like you to evaluate the following build I made for you to test:

https://builder.blender.org/download/patch/PR106725/

I understand. I would like you to evaluate the following build I made for you to test: https://builder.blender.org/download/patch/PR106725/
Author

Sureeeeeeeeee of course I can take test and show video on my own youtube

Sureeeeeeeeee of course I can take test and show video on my own youtube
Author

@Harley

See my youtube to show you.
https://youtu.be/xHWDpk1HtPw

3.6.zip there for " /Users/kentdavis/Library/Application\ Support/Blender/3.6 "

@Harley See my youtube to show you. https://youtu.be/xHWDpk1HtPw 3.6.zip there for " /Users/kentdavis/Library/Application\ Support/Blender/3.6 "
598 KiB
Member

I can't tell from your video if my changes help you at all. I was hoping it would be a little more legible. Is it a little better, worse, or the same?

I can't tell from your video if my changes help you at all. I was hoping it would be a little more legible. Is it a little better, worse, or the same?
Author

The same.

The same.
Author

I don't know where find code Dash line on Blender.Can you tell me where code this dash?

I don't know where find code Dash line on Blender.Can you tell me where code this dash?
Member

Whoops, sorry didn't mean to close.

Whoops, sorry didn't mean to close.
Blender Bot added
Status
Archived
and removed
Status
Confirmed
labels 2023-04-09 03:13:52 +02:00
Blender Bot added
Status
Needs Triage
and removed
Status
Archived
labels 2023-04-09 03:14:17 +02:00
Author

allright

allright
Member

I don't know where find code Dash line on Blender.Can you tell me where code this dash?

In the code you will see them referred to as GPU_SHADER_2D_NODELINK and GPU_SHADER_2D_NODELINK_INST', used in blender\source\blender\editors\space_graph\graph_draw.c. The actual shaders are a pair of files like gpu_shader_2D_nodelink_frag.glslandgpu_shader_2D_nodelink_vert.glsl`.

I think the central issue is that we can't pass a "length" parameter to specify the size of a dash unit. We can specify the width, the relative difference between the gap and non-gap, the opacity of the gap, colors, etc.

Fairly certain I see what we need. "gpu_shader_2D_nodelink_frag.glsl" has a define for a DASH_WIDTH as 10.0 which looks to be the length that we need to pass into it.

> I don't know where find code Dash line on Blender.Can you tell me where code this dash? In the code you will see them referred to as `GPU_SHADER_2D_NODELINK` and `GPU_SHADER_2D_NODELINK_INST', used in `blender\source\blender\editors\space_graph\graph_draw.c`. The actual shaders are a pair of files like `gpu_shader_2D_nodelink_frag.glsl` and `gpu_shader_2D_nodelink_vert.glsl`. I _think_ the central issue is that we can't pass a "length" parameter to specify the size of a dash unit. We can specify the width, the relative difference between the gap and non-gap, the opacity of the gap, colors, etc. Fairly certain I see what we need. "gpu_shader_2D_nodelink_frag.glsl" has a define for a DASH_WIDTH as 10.0 which looks to be the length that we need to pass into it.
Author

Oh I see GPU Allright.
There for Mac "Show Package Contents"
Youtube: https://youtu.be/5UlNs70JtIo

That different for windows:
blender\source\blender\editors\space_graph\graph_draw.c

Oh I see GPU Allright. There for Mac "Show Package Contents" Youtube: https://youtu.be/5UlNs70JtIo That different for windows: blender\source\blender\editors\space_graph\graph_draw.c
Member

Sorry, these things are not in the Blender packages that are installed on users' computers for any platform. These things are in the blender source code that is edited by developers. If you had an interest in editing and compiling the Blender source code, and the applicable programming knowledge, you would start that journey here: https://wiki.blender.org/wiki/Building_Blender/Mac

Sorry, these things are not in the Blender packages that are installed on users' computers for any platform. These things are in the blender source code that is edited by developers. If you had an interest in editing and compiling the Blender source code, and the applicable programming knowledge, you would start that journey here: https://wiki.blender.org/wiki/Building_Blender/Mac
Author

Thank you for send me link and I got it understand about xCode.app I know very little and I have fail to use xCode many times and I giveup myself long time ago.
No problem thank you for your discuss with me smile.

Thank you for send me link and I got it understand about xCode.app I know very little and I have fail to use xCode many times and I giveup myself long time ago. No problem thank you for your discuss with me smile.
Member

@PratikPB2123 Would you like to put Mac notification?

Hi, I don't think this is a MAC only issue. I'm able to redo it on Windows also.

> @PratikPB2123 Would you like to put Mac notification? Hi, I don't think this is a MAC only issue. I'm able to redo it on Windows also.
Pratik Borhade added
Status
Confirmed
and removed
Status
Needs Triage
labels 2023-04-09 04:45:08 +02:00
Author

Allright @PratikPB2123 I get you.

Allright @PratikPB2123 I get you.
Member

With my limited shader knowledge I'm having no luck with this.

In a nutshell if we have the Resolution Scale set to 1x we have a nice display of the dashed lines at any 2D zoom. But as we increase Resolution scale we should see a decrease in the dash frequency but instead we get an increase. So effectively the dashes get smaller and the distance between decreases as Resolution scale increases, which is backwards, resulting in this issue for high-resolution displays like on Retina.

With my limited shader knowledge I'm having no luck with this. In a nutshell if we have the Resolution Scale set to 1x we have a nice display of the dashed lines at any 2D zoom. But as we increase Resolution scale we _should_ see a decrease in the dash frequency but instead we get an increase. So effectively the dashes get smaller and the distance between decreases as Resolution scale increases, which is backwards, resulting in this issue for high-resolution displays like on Retina.
Author

Yes me too I knowledge very limit about xCode.app
My iMac have Retina Display.
I did download everything complete on build Blender.xcodeproj

Yes me too I knowledge very limit about xCode.app My iMac have Retina Display. I did download everything complete on build Blender.xcodeproj
Author

Blender 4.1.0 is resolve see picture on my iMac MacOS
image
You can inspect there on your iMac or MacBook or MacBook Pro before close a ticket.

Blender 4.1.0 is resolve see picture on my iMac MacOS ![image](/attachments/bb9cd62f-268c-4975-978d-7e8f0d2d44b3) You can inspect there on your iMac or MacBook or MacBook Pro before close a ticket.
5.5 MiB
Member

Yes, looks better compared to 3.5. Closing then.

Thanks @Kent-Davis

Yes, looks better compared to 3.5. Closing then. Thanks @Kent-Davis
Blender Bot added
Status
Archived
and removed
Status
Confirmed
labels 2024-02-20 04:46:06 +01:00
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
6 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#102919
No description provided.