Page MenuHome

Screw modifier crashes blender
Closed, ResolvedPublic

Description

System Information
Operating system: Windows-7-6.1.7601-SP1 64 Bits
Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 442.50

Blender Version
Broken: version: 2.83 (sub 11), branch: master, commit date: 2020-03-30 22:07, hash: rBb555b8dedce0
Worked: blender-2.83-a103d09df485

Short description of error
Screw modifier instantly crashes blender to desktop

Exact steps for others to reproduce the error
Add screw modifier to object - instant crash

Event Timeline

This bug was introduced in commit rBcf258b02f4494089d512ecc5185bba9cc9db576e @Jeroen Bakker (jbakker) .

extract_pos_nor_loop_mesh(const MeshRenderData * mr, int l, const MLoop * mloop, int UNUSED_p, const MPoly * mpoly, void * _data) Line 1520	C
mesh_extract_iter(const MeshRenderData * mr, const eMRIterType iter_type, int start, int end, const MeshExtract * extract, void * user_data) Line 4485	C
extract_run(TaskPool * UNUSED_pool, void * taskdata, int UNUSED_threadid) Line 4511	C
extract_task_create(TaskPool * task_pool, const Scene * scene, const MeshRenderData * mr, const MeshExtract * extract, void * buf, int * task_counter) Line 4590	C
mesh_buffer_cache_create_requested(MeshBatchCache * cache, MeshBufferCache mbc, Mesh * me, const bool is_editmode, const float[4] * obmat, const bool do_final, const bool do_uvedit, const bool use_subsurf_fdots, const DRW_MeshCDMask * cd_layer_used, const Scene * scene, const ToolSettings * ts, const bool use_hide) Line 4688	C
DRW_mesh_batch_cache_create_requested(Object * ob, Mesh * me, const Scene * scene, const bool is_paint_mode, const bool use_hide) Line 1412	C
drw_batch_cache_generate_requested(Object * ob) Line 3539	C
drw_engines_cache_populate(Object * ob) Line 1019	C
DRW_draw_render_loop_ex(Depsgraph * depsgraph, RenderEngineType * engine_type, ARegion * region, View3D * v3d, GPUViewport * viewport, const bContext * evil_C) Line 1482	C
DRW_draw_view(const bContext * C) Line 1400	C
view3d_draw_view(const bContext * C, ARegion * region) Line 1603	C
view3d_main_region_draw(const bContext * C, ARegion * region) Line 1628	C
ED_region_do_draw(bContext * C, ARegion * region) Line 539	C
wm_draw_window_offscreen(bContext * C, wmWindow * win, bool stereo) Line 669	C
wm_draw_window(bContext * C, wmWindow * win) Line 795	C
wm_draw_update(bContext * C) Line 997	C
WM_main(bContext * C) Line 454	C
main(int argc, const unsigned char * * UNUSED_argv_c) Line 526	C
Robert Guetzkow (rjg) changed the task status from Needs Triage to Confirmed.Mar 31 2020, 12:35 PM
Robert Guetzkow (rjg) triaged this task as High priority.

Similar to other code, there should be a check if mr->v_origindex is NULL. This needs to be fixed in the following functions in draw_cache_extract_mesh.c:

  • extract_pos_nor_loop_mesh
  • extract_lnor_hq_loop_mesh
  • extract_lnor_loop_mesh
  • vert_set_mesh

unless it's otherwise guaranteed that it won't be NULL when calling these functions.

Robert Guetzkow (rjg) changed the task status from Duplicate to Resolved.Mar 31 2020, 8:16 PM