Page MenuHome

Crash loading demo flat-archiviz with 3.2 Alpha
Closed, DuplicatePublic

Description

System Information
Operating system: Linux - Ubuntu Ubuntu 20.04
Graphics card: Vega 56 - Running Linux native kernel drivers (not ROCm)

Blender Version
Broken: 3.2.0 Alpha - master @ d442782dbe5b
Worked: 3.1.2

Short description of error
Opening flat-archiviz.blend results in a segmentation fault
Unfortunately there isn't much in the backtrace:

cat /tmp/flat-archiviz.crash.txt 
# Blender 3.2.0, Commit date: 2022-04-29 09:49, Hash d442782dbe5b

# backtrace
./blender(BLI_system_backtrace+0x20) [0xc5f43f0]
./blender() [0x1208c0a]
/lib/x86_64-linux-gnu/libc.so.6(+0x430c0) [0x7f970225b0c0]

# Python backtrace
<EOF>

Exact steps for others to reproduce the error
Based on the default startup or an attached .blend file (as simple as possible).

Note the following warnings appear in 3.1.2 and 3.2.0 (so are likely unrelated):

ERROR (bke.modifier): source/blender/blenkernel/intern/modifier.c:456 BKE_modifier_set_error: Object: "Shelf.001", Modifier: "Weighted Normal", Enable 'Auto Smooth' in Object Data Properties
ERROR (bke.modifier): source/blender/blenkernel/intern/modifier.c:456 BKE_modifier_set_error: Object: "Shelf.002", Modifier: "Weighted Normal", Enable 'Auto Smooth' in Object Data Properties
ERROR (bke.modifier): source/blender/blenkernel/intern/modifier.c:456 BKE_modifier_set_error: Object: "Shelf.003", Modifier: "Weighted Normal", Enable 'Auto Smooth' in Object Data Properties
ERROR (bke.modifier): source/blender/blenkernel/intern/modifier.c:456 BKE_modifier_set_error: Object: "Shelf", Modifier: "Weighted Normal", Enable 'Auto Smooth' in Object Data Properties
ERROR (bke.modifier): source/blender/blenkernel/intern/modifier.c:456 BKE_modifier_set_error: Object: "Door", Modifier: "Weighted Normal", Enable 'Auto Smooth' in Object Data Properties
ERROR (bke.modifier): source/blender/blenkernel/intern/modifier.c:456 BKE_modifier_set_error: Object: "Door.008", Modifier: "Weighted Normal", Enable 'Auto Smooth' in Object Data Properties
ERROR (bke.modifier): source/blender/blenkernel/intern/modifier.c:456 BKE_modifier_set_error: Object: "Wall Basement Floor", Modifier: "Weighted Normal", Enable 'Auto Smooth' in Object Data Properties
ERROR (bke.modifier): source/blender/blenkernel/intern/modifier.c:456 BKE_modifier_set_error: Object: "Balcony", Modifier: "Weighted Normal", Enable 'Auto Smooth' in Object Data Properties

Event Timeline

Cannot confirm this. Both opening the file and rendering with CPU or GPU works fine here on MacOS (M1 Max) with latest master.

David Fair (DFair) added a comment.EditedApr 29 2022, 3:47 PM

This is my backtrace with a debug build, I'm happy to grab any other traces...etc. to help:

Thread 1 "blender" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00000000072f6d8e in OpenSubdiv::v3_4_4::Osd::GLVertexBuffer::allocate() ()
#2  0x00000000072f6e3c in OpenSubdiv::v3_4_4::Osd::GLVertexBuffer::Create(int, int, void*) ()
#3  0x000000000711b7f1 in blender::opensubdiv::VolatileEvalOutput<OpenSubdiv::v3_4_4::Osd::GLVertexBuffer, OpenSubdiv::v3_4_4::Osd::GLVertexBuffer, blender::opensubdiv::GLStencilTableSSBO, OpenSubdiv::v3_4_4::Osd::GLPatchTable, blender::opensubdiv::GLComputeEvaluator, void>::VolatileEvalOutput (this=0x7fffc6bd7880, vertex_stencils=0x7fffa25fc410, 
    varying_stencils=0x0, all_face_varying_stencils=std::vector of length 1, capacity 1 = {...}, face_varying_width=2, 
    patch_table=0x7fffa2305dc0, evaluator_cache=0x7fffa3109160, device_context=0x0)
    at /home/user/blender-git/blender/intern/opensubdiv/internal/evaluator/eval_output.h:348
#4  0x000000000711ae34 in blender::opensubdiv::GpuEvalOutput::GpuEvalOutput (this=0x7fffc6bd7880, 
    vertex_stencils=0x7fffa25fc410, varying_stencils=0x0, 
    all_face_varying_stencils=std::vector of length 1, capacity 1 = {...}, face_varying_width=2, 
    patch_table=0x7fffa2305dc0, evaluator_cache=0x7fffa3109160)
    at /home/user/blender-git/blender/intern/opensubdiv/internal/evaluator/eval_output_gpu.cc:59
#5  0x000000000710b2b3 in openSubdiv_createEvaluatorInternal (topology_refiner=0x7fffc63ceb88, 
    evaluator_type=OPENSUBDIV_EVALUATOR_GLSL_COMPUTE, evaluator_cache_descr=0x7fffc2ea7b88)
    at /home/user/blender-git/blender/intern/opensubdiv/internal/evaluator/evaluator_impl.cc:530
#6  0x0000000007109b41 in openSubdiv_createEvaluatorFromTopologyRefiner (topology_refiner=0x7fffc63ceb88, 
    evaluator_type=OPENSUBDIV_EVALUATOR_GLSL_COMPUTE, evaluator_cache=0x7fffc2ea7b68)
    at /home/user/blender-git/blender/intern/opensubdiv/internal/evaluator/evaluator_capi.cc:246
#7  0x00000000041b0532 in BKE_subdiv_eval_begin (subdiv=0x7fffc63cec48, 
    evaluator_type=SUBDIV_EVALUATOR_TYPE_GLSL_COMPUTE, evaluator_cache=0x7fffc2ea7b68)
    at /home/user/blender-git/blender/source/blender/blenkernel/intern/subdiv_eval.c:59
#8  0x00000000041b0b30 in BKE_subdiv_eval_begin_from_mesh (subdiv=0x7fffc63cec48, mesh=0x7fffca87e008, 
    coarse_vertex_cos=0x0, evaluator_type=SUBDIV_EVALUATOR_TYPE_GLSL_COMPUTE, evaluator_cache=0x7fffc2ea7b68)
    at /home/user/blender-git/blender/source/blender/blenkernel/intern/subdiv_eval.c:188
#9  0x0000000004dc9dad in draw_subdiv_create_requested_buffers (scene=0x7ffff17b6008, ob=0x7ffff18eee08, 
    mesh=0x7fffca87e008, batch_cache=0x7ffecdbfa408, mbc=0x7ffecdbfa408, is_editmode=false, is_paint_mode=false, 
    is_mode_active=false, obmat=0x7ffff18ef0e4, do_final=true, do_uvedit=false, ts=0x7fff92c21c08, 
    evaluator_cache=0x7fffc2ea7b68)
    at /home/user/blender-git/blender/source/blender/draw/intern/draw_cache_impl_subdivision.cc:1928
#10 0x0000000004dca667 in DRW_create_subdivision (scene=0x7ffff17b6008, ob=0x7ffff18eee08, mesh=0x7fffca87e008, 
    batch_cache=0x7ffecdbfa408, mbc=0x7ffecdbfa408, is_editmode=false, is_paint_mode=false, is_mode_active=false, 
    obmat=0x7ffff18ef0e4, do_final=true, do_uvedit=false, use_subsurf_fdots=false, ts=0x7fff92c21c08, use_hide=false)
    at /home/user/blender-git/blender/source/blender/draw/intern/draw_cache_impl_subdivision.cc:2109
#11 0x0000000004ea9ddf in DRW_mesh_batch_cache_create_requested (task_graph=0x7fffca760a80, ob=0x7ffff18eee08, 
    me=0x7fffca87e008, scene=0x7ffff17b6008, is_paint_mode=false, use_hide=false)
    at /home/user/blender-git/blender/source/blender/draw/intern/draw_cache_impl_mesh.c:2170
#12 0x0000000004e5cb9d in drw_batch_cache_generate_requested (ob=0x7ffff18eee08)
    at /home/user/blender-git/blender/source/blender/draw/intern/draw_cache.c:3343
#13 0x0000000004dcd3dc in drw_engines_cache_populate (ob=0x7ffff18eee08)
    at /home/user/blender-git/blender/source/blender/draw/intern/draw_manager.c:1069
#14 0x0000000004dcefc3 in DRW_draw_render_loop_ex (depsgraph=0x7fffcb2f8a08, engine_type=0x7fffcb01a948, 
    region=0x7fff92bfa288, v3d=0x7fff92bf3c08, viewport=0x7fffbd24a088, evil_C=0x7ffff3f48028)
    at /home/user/blender-git/blender/source/blender/draw/intern/draw_manager.c:1683
#15 0x0000000004dcead6 in DRW_draw_view (C=0x7ffff3f48028)
    at /home/user/blender-git/blender/source/blender/draw/intern/draw_manager.c:1593
#16 0x000000000625ce1a in view3d_draw_view (C=0x7ffff3f48028, region=0x7fff92bfa288)
    at /home/user/blender-git/blender/source/blender/editors/space_view3d/view3d_draw.c:1540
#17 0x000000000625cec9 in view3d_main_region_draw (C=0x7ffff3f48028, region=0x7fff92bfa288)
    at /home/user/blender-git/blender/source/blender/editors/space_view3d/view3d_draw.c:1562
#18 0x00000000053f2590 in ED_region_do_draw (C=0x7ffff3f48028, region=0x7fff92bfa288)
    at /home/user/blender-git/blender/source/blender/editors/screen/area.c:542
#19 0x0000000004a408ea in wm_draw_window_offscreen (C=0x7ffff3f48028, win=0x7fff92bfd008, stereo=false)
    at /home/user/blender-git/blender/source/blender/windowmanager/intern/wm_draw.c:729
#20 0x0000000004a40ed3 in wm_draw_window (C=0x7ffff3f48028, win=0x7fff92bfd008)
    at /home/user/blender-git/blender/source/blender/windowmanager/intern/wm_draw.c:882
#21 0x0000000004a41529 in wm_draw_update (C=0x7ffff3f48028)
    at /home/user/blender-git/blender/source/blender/windowmanager/intern/wm_draw.c:1087
#22 0x0000000004a3c5dc in WM_main (C=0x7ffff3f48028)
    at /home/user/blender-git/blender/source/blender/windowmanager/intern/wm.c:629
#23 0x0000000003f8a33f in main (argc=1, argv=0x7fffffffdc88)
    at /home/user/blender-git/blender/source/creator/creator.c:547

And the local vars of the last non-library call Blender makes :

(gdb) frame
#3  0x000000000711b7f1 in blender::opensubdiv::VolatileEvalOutput<OpenSubdiv::v3_4_4::Osd::GLVertexBuffer, OpenSubdiv::v3_4_4::Osd::GLVertexBuffer, blender::opensubdiv::GLStencilTableSSBO, OpenSubdiv::v3_4_4::Osd::GLPatchTable, blender::opensubdiv::GLComputeEvaluator, void>::VolatileEvalOutput (this=0x7fffc6bd7880, vertex_stencils=0x7fffa25fc410, 
    varying_stencils=0x0, all_face_varying_stencils=std::vector of length 1, capacity 1 = {...}, face_varying_width=2, 
    patch_table=0x7fffa2305dc0, evaluator_cache=0x7fffa3109160, device_context=0x0)
    at /home/david/blender-git/blender/intern/opensubdiv/internal/evaluator/eval_output.h:348
348         src_data_ = SRC_VERTEX_BUFFER::Create(3, num_total_vertices, device_context_);

(gdb) info locals
num_total_vertices = 6635
face_varying_channel = -1570782624
num_total_vertices = <optimised out>
face_varying_channel = <optimised out>
face_varying_stencils = <optimised out>
__for_range = <optimised out>
__for_begin = <optimised out>
__for_end = <optimised out>
(gdb)

My guess would be rB3d877c8a0d06: Select Engine: port shader to use 'GPUShaderCreateInfo' is responsible. There have been two follow up commits to fix improper casts involving subdivided GPU vertex buffers.
rB1d9c050188ad: Fix wrong cast from uint to int (2)
rBa323ada7010c: Fix wrong cast from uint to int

Do those fix the issue?

Evan Wilson (EAW) changed the task status from Needs Triage to Needs Information from User.Apr 29 2022, 4:28 PM

I've grabbed a more recent master (5d84d9b0d6ad114109d60cf3d0ddcd9bb1a5de13) including the above commit(s) and cherry-picked them in to make sure that they're in the tree
Doing a clean build I'm still getting the segmentation fault so no dice.

I'm slowly working through a bisect to see where this appeared.....

David Fair (DFair) changed the task status from Needs Information from User to Needs Triage.EditedApr 30 2022, 1:55 AM

So this was one of the more painful bisects, but it's related to a bump in dependencies for 3.2.x here https://developer.blender.org/T95206

Using SVN to grab the dependencies from https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_centos7_x86_64 and master I get the following results:

Works: r62866
Fails: r62892

This SVN checkout (and all subsequent) will cause the segmentation fault:

r62892 | sybren | 2022-04-25 16:27:36 +0100 (Mon, 25 Apr 2022) | 45 lines
Linux: upgrade libraries for Blender 3.2

Note that some of these are build-time dependencies only. Since they
do impact the contents of the committed libraries, they are mentioned
here anyway.

New:
fmt 8.0.0
level_zero v1.7.15
pystring v1.1.3
robinmap v0.6.2
webp 1.2.2

Updated:
alembic 1.8.3
blosc 1.21.1
boost 1.78.0
embree 3.13.3
ffmpeg 5.0
fftw 3.3.10
flac 1.3.4
imath 3.1.4
ispc v1.17.0
jpeg 2.1.3
ogg 1.3.5
openimagedenoise 1.4.3
openal 1.21.1
opencolorio 2.1.1
openexr 3.1.4
openimageio v2.3.13.0
openjpeg 2.4.0
opensubdiv v3_4_4
openvdb 9.0.0
osl 1.11.17.0
sdl 2.0.20
tbb 2020_u3
tiff 4.3.0
usd 22.03
vorbis 1.3.7
vpx 1.11.0
x264 35fe20d1b
zlib 1.2.12

Ref T95206

I'm happy to test with install_deps.sh but I'm not sure which dependencies to roll-back / check locally

Pratik Borhade (PratikPB2123) changed the task status from Needs Triage to Needs Information from User.EditedMay 2 2022, 12:52 PM

Hi, can you disable GPU subdivision and then load the file?: EditPreferencesViewportSubdivisionGPU Subdivision
Perhaps same issue as in T97737: GPU Subdivision: Crash after opening particular files