Page MenuHome

Edit mesh fails to draw loose edges in 2.90x when working with high poly count objects
Closed, ResolvedPublicBUG

Description

Edit: Bisecting shows rBbf34b0c8f4b8 as the cause for the issue.

Also

Note that this isn't related to extrude, drawing any loose wire fails in the file provided, unless all faces are deleted (with only faces option).


System Information @Kent Davis (mac4kent)
Operating system: Darwin-19.6.0-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon Pro 575 OpenGL Engine ATI Technologies Inc. 4.1 ATI-3.10.6

System Information @Alaska (Alaska)
Operating system: Linux-5.4.0-7634-generic-x86_64-with-debian-bullseye-sid 64 Bits
Graphics card: GTX 1050Ti 440.82

Blender Version
Broken: version: 2.90.0 Alpha, branch: master, commit date: 2020-06-03 18:45, hash: rBb94ab93dfb82
Worked: Blender 2.82a, 2.83.0 release

Short description of error
Extruding a vertex on a sufficiently high poly mesh does not work and can appear to cause small graphical glitches in some cases.

Exact steps for others to reproduce the error

  1. Open Blender 2.90.
  2. Select the cube and sub-divide it a lot (I used a sub-division surface modifier with a level of 5 and applied it)
  3. Enter edit mode on the object and select a vertex.
  4. Attempt to extrude the vertex with E. This will not work. Attempting to do this on low poly objects, or with edges, or faces does not cause the issue.

Here's a .blend file with a high poly cube.


Original steps to reproduce:

Push the E key not work for Blender 2.90 June 3, 2020
Blender 2.83 it work push the E key I can see.

https://www.patreon.com/posts/3d-model-bugs-14969357
I did remove everything materials, texture, modifier (properties), rigging and thing complete.

See video
https://youtu.be/FcxkJDrOy9E

Revisions and Commits

Event Timeline

I can confirm the issue, but am having trouble pin pointing the issue.

Here's what I know so far:

  1. The issue does not occur in Blender 2.82a.
  2. The issue occurs in Blender 2.90 with the file provided.
  3. However, the issue only occurs with the objects in the file provided. Any new objects added to the scene can be extruded.
  4. If I copy one of the objects from the provided file to a new instance of Blender, it can't be edited, lining up with the cause being the objects.

I will continue to investigate to see if I can recreate the issue from a simple file or pin point the cause with the current model.

Yes correct. not matter vertex, edge cause problem on 2.90 I was work and make me frustrate start over, start over many times yesterday and today.

When open Blender 2.90 Alpha there cube is fine extruded.
I got download and clean up everything complete and extrude any edge and/or vertex cause bug of 2.90.

I've found the cause, updating the description to reflect this. I will also bisect the issue to find the commit.

Campbell Barton (campbellbarton) renamed this task from Push the E key have bug. to Edit mesh fails to draw loose edges in 2.90x in some cases.Jun 4 2020, 6:08 AM
Alaska (Alaska) renamed this task from Edit mesh fails to draw loose edges in 2.90x in some cases to Extruding a vertex on a sufficiently high poly mesh does not work (2.90).Jun 4 2020, 6:08 AM
Alaska (Alaska) updated the task description. (Show Details)

Note that this isn't related to extrude, drawing any loose wire fails in the file provided, unless all faces are deleted (with only faces option).

Alaska (Alaska) renamed this task from Extruding a vertex on a sufficiently high poly mesh does not work (2.90) to Edit mesh fails to draw loose edges in 2.90x when working with high poly count objects.Jun 4 2020, 6:09 AM

Changed the name back. Will start the bisect now unless you know the commit already @Campbell Barton (campbellbarton)

Alaska (Alaska) changed the task status from Needs Triage to Confirmed.Jun 4 2020, 6:28 AM

Bisect shows bf34b0c8f4b8 as the cause.

@Jeroen Bakker (jbakker), mind taking a look.

Updating the description to include the bisect information.

Alaska (Alaska) changed the subtype of this task from "Report" to "Bug".Jun 4 2020, 6:32 AM

Oh really. Good job. Thank you for fix correct english. My not good english I do know sign language.

I just test what you said very excellent correct answer yaaa ay.

Push the F key is bug while between from vertex to vertex too.

Alaska (Alaska) triaged this task as Unbreak Now! priority.Jun 5 2020, 4:05 AM
Alaska (Alaska) lowered the priority of this task from Unbreak Now! to High.Jun 5 2020, 5:04 AM
Jeroen Bakker (jbakker) claimed this task.EditedJun 8 2020, 8:36 AM

Comfirm. It could be related to my change. Not sure what the real cause is. as this part is single threaded.

diff --git a/source/blender/draw/intern/draw_cache_extract_mesh.c b/source/blender/draw/intern/draw_cache_extract_mesh.c
index 06462d5b9c5..ff54ab5827e 100644
--- a/source/blender/draw/intern/draw_cache_extract_mesh.c
+++ b/source/blender/draw/intern/draw_cache_extract_mesh.c
@@ -4674,11 +4674,8 @@ static void mesh_render_data_update_task_data_free(MeshRenderDataUpdateTaskData
   MEM_freeN(taskdata);
 }
 
-static void mesh_extract_render_data_node_exec(void *__restrict task_data)
+static void mesh_extract_render_data_node_exec(void *__restrict UNUSED(task_data))
 {
-  MeshRenderDataUpdateTaskData *update_task_data = task_data;
-  mesh_render_data_update(
-      update_task_data->mr, update_task_data->iter_type, update_task_data->data_flag);
 }
 
 static struct TaskNode *mesh_extract_render_data_node_create(struct TaskGraph *task_graph,
@@ -4688,6 +4685,7 @@ static struct TaskNode *mesh_extract_render_data_node_create(struct TaskGraph *t
 {
   MeshRenderDataUpdateTaskData *task_data = MEM_mallocN(sizeof(MeshRenderDataUpdateTaskData),
                                                         __func__);
+  mesh_render_data_update(mr, iter_type, data_flag);
   task_data->mr = mr;
   task_data->iter_type = iter_type;
   task_data->data_flag = data_flag;

Solves the issue. Means that the split of the mesh_render_data isn't working as expected. Will investigate.