Page MenuHome

Generative modifiers in editmode display vertex group weights incorrectly (or assert)
Closed, ResolvedPublic

Description

System Information
Fedora 28, 970m, 396.45 drivers

Blender Version
Broken: rB547d31c8da1fcb938e91887909c5e2f3b3d180d5
Worked: 2.79

Short description of error
Any generative modifier (that has a show_in_editmode setting) will show the weights on the generated geometry incorrectly.

  • In release builds this will either draw only parts of the mesh (with garbled weights)
  • or prevent the generated faces to be drawn at all
  • spotted while investigating T57283
  • in Debug builds this asserts:
1  raise                                                                                   0x7ffff1c93eab 
2  abort                                                                                   0x7ffff1c7e5b9 
3  __assert_fail_base.cold.0                                                               0x7ffff1c7e491 
4  __assert_fail                                                                           0x7ffff1c8c612 
5  GPU_batch_vertbuf_add_ex                                    gpu_batch.c            193  0x25ce62b      
6  DRW_mesh_batch_cache_get_triangles_with_normals_and_weights draw_cache_impl_mesh.c 4734 0x2619682      
7  DRW_cache_mesh_surface_weights_get                          draw_cache.c           3093 0x268be70      
8  EDIT_MESH_cache_populate                                    edit_mesh_mode.c       636  0x2636cf1      
9  drw_engines_cache_populate                                  draw_manager.c         979  0x2624a27      
10 DRW_draw_render_loop_ex                                     draw_manager.c         1469 0x2625c02      
11 DRW_draw_view                                               draw_manager.c         1406 0x26258c5     
12 view3d_draw_view                                            view3d_draw.c          1259 0x1b41789

Exact steps for others to reproduce the error

  • open blend
  • select any of the objects (all have a generative modifier on them with show_in_editmode turned on)
  • go into editmode
  • enable Overlays > Vertex Group Weights

Event Timeline

Philipp Oeser (lichtwerk) triaged this task as Confirmed, Medium priority.

Will look into it myself for a bit [already have something working using the hack from here]
If that doesnt succeed, I'll pass on to @Alexander Gavrilov (angavrilov)...

This sounds like the same problem that I noticed weeks ago. Probably the fix wasn't completed/committed:

[Wednesday, October 10, 2018] [1:12:57 PM MSK] <hypersomniac> angavrilov: https://hastebin.com/ubarexijid.php
[Wednesday, October 10, 2018] [1:13:19 PM MSK] <hypersomniac> angavrilov: but this needs to be done better

Yep, sounds like exactly what I figured in D3827, sorry for the duplicated efforts...
Not sure why this was postponed [as the hack is used elsewhere as well - see above]

Will let fclem decide whats to be done here...

I also noticed today that the vertex weights wouldn't show up with a subsurf modifier visible in edit mode as well. If you untick the visible box, the weights appear, just like with the mirror modifier.