Crash in sculpt mode using "Smooth" brush and tab with tablet stylus #89164

Closed
opened 2021-06-15 09:08:58 +02:00 by Balazs Oszvald · 26 comments

System Information
Operating system: Windows 10
Graphics card: GTX 1050Ti (latest studio driver)
Other: Wacom Intuos 5 (latest driver, wireless)

Blender Version
Broken: All versions after 2.90.1
Worked: 2.90.1

Caused by 3e5431fdf4

Short description of error
Crash in sculpt mode with the Draw brush and smoothing (pressing {key Shift}) when using a tablet.

The issue is that ss->cache->detail_directions is NULL in do_enhance_details_brush_task_cb_ex.

Exact steps for others to reproduce the error

  • File > New > Sculpting
  • choose the Smooth brush
  • set Radius to 4px
  • enable Strength Pressure sensitivity (should be ON by default though)
  • use tablet (not mouse) and tap with the stylus, don't drag, repeatedly
  • crash

Original report:

  • Open the attached file
  • Select the Draw brush, hold {key Shift} and tap with the stylus, don't drag, repeatedly on the area shown in the screenshot below.

crash.jpg
crash.blend

Stack trace 3.0.0 Alpha, branch: master, commit date: 2021-06-24 07:12, hash: 6570159929

madd_v3_v3v3fl(float * r, const float * a, const float * b, float f) Line 720	C
do_enhance_details_brush_task_cb_ex(void * userdata, const int n, const TaskParallelTLS * tls) Line 249	C
BLI_task_parallel_range(const int start, const int stop, void * userdata, void(*)(void *, const int, const TaskParallelTLS *) func, const TaskParallelSettings * settings) Line 140	C++
SCULPT_enhance_details_brush(Sculpt * sd, Object * ob, PBVHNode * * nodes, const int totnode) Line 291	C
SCULPT_do_smooth_brush(Sculpt * sd, Object * ob, PBVHNode * * nodes, int totnode) Line 401	C
do_brush_action(Sculpt * sd, Object * ob, Brush * brush, UnifiedPaintSettings * ups) Line 6017	C
do_tiled(Sculpt * sd, Object * ob, Brush * brush, UnifiedPaintSettings * ups, void(*)(Sculpt *, Object *, Brush *, UnifiedPaintSettings *) action) Line 6469	C
do_symmetrical_brush_actions(Sculpt * sd, Object * ob, void(*)(Sculpt *, Object *, Brush *, UnifiedPaintSettings *) action, UnifiedPaintSettings * ups) Line 6552	C
sculpt_stroke_update_step(bContext * C, PaintStroke * UNUSED_stroke, PointerRNA * itemptr) Line 7929	C
paint_brush_stroke_add_step(bContext * C, wmOperator * op, const float * mouse_in, float pressure) Line 637	C
paint_space_stroke(bContext * C, wmOperator * op, const float * final_mouse, float final_pressure) Line 873	C
paint_stroke_modal(bContext * C, wmOperator * op, const wmEvent * event) Line 1553	C
wm_handler_operator_call(bContext * C, ListBase * handlers, wmEventHandler * handler_base, wmEvent * event, PointerRNA * properties, const unsigned char * kmi_idname) Line 2080	C
wm_handlers_do_intern(bContext * C, wmEvent * event, ListBase * handlers) Line 2909	C
wm_handlers_do(bContext * C, wmEvent * event, ListBase * handlers) Line 2957	C
wm_event_do_handlers(bContext * C) Line 3377	C
WM_main(bContext * C) Line 650	C
main(int argc, const unsigned char * * UNUSED_argv_c) Line 562	C

Original crash log
crash_logs.zip

**System Information** Operating system: Windows 10 Graphics card: GTX 1050Ti (latest studio driver) Other: Wacom Intuos 5 (latest driver, wireless) **Blender Version** Broken: All versions after 2.90.1 Worked: 2.90.1 Caused by 3e5431fdf4 **Short description of error** Crash in sculpt mode with the *Draw* brush and smoothing (pressing {key Shift}) when using a tablet. The issue is that `ss->cache->detail_directions` is `NULL` in `do_enhance_details_brush_task_cb_ex`. **Exact steps for others to reproduce the error** - File > New > Sculpting - choose the `Smooth` brush - set `Radius` to 4px - enable `Strength Pressure` sensitivity (should be ON by default though) - use tablet (not mouse) and tap with the stylus, don't drag, repeatedly - crash --- Original report: - Open the attached file - Select the *Draw* brush, hold {key Shift} and tap with the stylus, don't drag, repeatedly on the area shown in the screenshot below. ![crash.jpg](https://archive.blender.org/developer/F10192787/crash.jpg) [crash.blend](https://archive.blender.org/developer/F10192789/crash.blend) Stack trace 3.0.0 Alpha, branch: master, commit date: 2021-06-24 07:12, hash: `6570159929` ``` madd_v3_v3v3fl(float * r, const float * a, const float * b, float f) Line 720 C do_enhance_details_brush_task_cb_ex(void * userdata, const int n, const TaskParallelTLS * tls) Line 249 C BLI_task_parallel_range(const int start, const int stop, void * userdata, void(*)(void *, const int, const TaskParallelTLS *) func, const TaskParallelSettings * settings) Line 140 C++ SCULPT_enhance_details_brush(Sculpt * sd, Object * ob, PBVHNode * * nodes, const int totnode) Line 291 C SCULPT_do_smooth_brush(Sculpt * sd, Object * ob, PBVHNode * * nodes, int totnode) Line 401 C do_brush_action(Sculpt * sd, Object * ob, Brush * brush, UnifiedPaintSettings * ups) Line 6017 C do_tiled(Sculpt * sd, Object * ob, Brush * brush, UnifiedPaintSettings * ups, void(*)(Sculpt *, Object *, Brush *, UnifiedPaintSettings *) action) Line 6469 C do_symmetrical_brush_actions(Sculpt * sd, Object * ob, void(*)(Sculpt *, Object *, Brush *, UnifiedPaintSettings *) action, UnifiedPaintSettings * ups) Line 6552 C sculpt_stroke_update_step(bContext * C, PaintStroke * UNUSED_stroke, PointerRNA * itemptr) Line 7929 C paint_brush_stroke_add_step(bContext * C, wmOperator * op, const float * mouse_in, float pressure) Line 637 C paint_space_stroke(bContext * C, wmOperator * op, const float * final_mouse, float final_pressure) Line 873 C paint_stroke_modal(bContext * C, wmOperator * op, const wmEvent * event) Line 1553 C wm_handler_operator_call(bContext * C, ListBase * handlers, wmEventHandler * handler_base, wmEvent * event, PointerRNA * properties, const unsigned char * kmi_idname) Line 2080 C wm_handlers_do_intern(bContext * C, wmEvent * event, ListBase * handlers) Line 2909 C wm_handlers_do(bContext * C, wmEvent * event, ListBase * handlers) Line 2957 C wm_event_do_handlers(bContext * C) Line 3377 C WM_main(bContext * C) Line 650 C main(int argc, const unsigned char * * UNUSED_argv_c) Line 562 C ``` Original crash log [crash_logs.zip](https://archive.blender.org/developer/F10171996/crash_logs.zip)
Author

Added subscriber: @BalazsOszvald

Added subscriber: @BalazsOszvald
Member

Added subscriber: @PratikPB2123

Added subscriber: @PratikPB2123
Author

Same crash produced on Windows 10 21H1, Ryzen 2600x, 64Gb, GTX 1060 (Studio Driver 462.59), Wacom Intuos 3, Blender 2.93.0
crash.zip

Same crash produced on Windows 10 21H1, Ryzen 2600x, 64Gb, GTX 1060 (Studio Driver 462.59), Wacom Intuos 3, Blender 2.93.0 [crash.zip](https://archive.blender.org/developer/F10187477/crash.zip)

Added subscriber: @mano-wii

Added subscriber: @mano-wii

Changed status from 'Needs Triage' to: 'Needs User Info'

Changed status from 'Needs Triage' to: 'Needs User Info'

All crash-logs show that the crash happens in do_enhance_details_brush_task_cb_ex.
But without reproducible steps, unfortunately we can't triage this as a complete bug report.

For the development team to be able to help, there needs to be reproducible steps (start blender, press this, then that and crash).

All crash-logs show that the crash happens in `do_enhance_details_brush_task_cb_ex`. But without reproducible steps, unfortunately we can't triage this as a complete bug report. For the development team to be able to help, there needs to be reproducible steps (start blender, press this, then that and crash).

Added subscriber: @rjg

Added subscriber: @rjg

Likely the same underlying issue as #85135

Likely the same underlying issue as #85135
Author

All crash-logs show that the crash happens in do_enhance_details_brush_task_cb_ex.

Can you direct me what kind of function it is? I would be more than happy to catch this bug.

> All crash-logs show that the crash happens in `do_enhance_details_brush_task_cb_ex`. Can you direct me what kind of function it is? I would be more than happy to catch this bug.

The crash happens in this function: https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/sculpt_paint/sculpt_smooth.c$213
But we still don't know what the source of the problem is.

The crash happens in this function: https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/sculpt_paint/sculpt_smooth.c$213 But we still don't know what the source of the problem is.
Author

The crash happens in this function: https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/sculpt_paint/sculpt_smooth.c$213

Thank you, that is valuable help for me!

> The crash happens in this function: https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/sculpt_paint/sculpt_smooth.c$213 Thank you, that is valuable help for me!
Author

Ok, so the crash happened for me always when using smoothing with the basic "draw" brush. I managed to create a .blend where the crash can be reproduced constantly and without too much effort .
Load the attached .blend, hold down SHIFT and do a few rapid dots (NOT strokes!) with your stylus (NOT mouse) over the area marked in the image.
crash.jpg
crash.blend
I have reproduced it on different Windows systems using Blender 2.93.0, with different Wacom tablets (Intuos 3, Intuos, Cintiq).

Ok, so the crash happened for me always when using smoothing with the basic "draw" brush. I managed to create a .blend where the crash can be reproduced constantly and without too much effort . Load the attached .blend, hold down SHIFT and do a few rapid dots (NOT strokes!) with your stylus (NOT mouse) over the area marked in the image. ![crash.jpg](https://archive.blender.org/developer/F10192787/crash.jpg) [crash.blend](https://archive.blender.org/developer/F10192789/crash.blend) I have reproduced it on different Windows systems using Blender 2.93.0, with different Wacom tablets (Intuos 3, Intuos, Cintiq).

Changed status from 'Needs User Info' to: 'Confirmed'

Changed status from 'Needs User Info' to: 'Confirmed'
Robert Guetzkow changed title from EXCEPTION_ACCESS_VIOLATION in sculpt mode to Crash in sculpt mode using "Draw" brush and holding Shift 2021-06-24 11:27:05 +02:00
Author

2.93.2 RC still crashes but 3.0.0 alpha seems to be stable! I'll probably move to 3.0.0 right away and test it more deeply. Kudos to the one who did the magic :)

2.93.2 RC still crashes but 3.0.0 alpha seems to be stable! I'll probably move to 3.0.0 right away and test it more deeply. Kudos to the one who did the magic :)

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Germano Cavalcante self-assigned this 2021-08-02 15:00:16 +02:00

Thanks for the update :)

Closing since it was fixed.

If the problem persists, please let us know so we can re-open the report. Don't forget to mention the specific version you tested again.

Thanks for the update :) Closing since it was fixed. If the problem persists, please let us know so we can re-open the report. Don't forget to mention the specific version you tested again.
Author

It seems, it only solved the problem in the case of the attached crash.blend . In my actual daytime job I got the same crash with the same smooth brush :/ (Blender 3.0.0 Alpha - fb87d236ed) dl_walls.crash.txt

It seems, it only solved the problem in the case of the attached crash.blend . In my actual daytime job I got the same crash with the same smooth brush :/ (Blender 3.0.0 Alpha - fb87d236edb7) [dl_walls.crash.txt](https://archive.blender.org/developer/F10264486/dl_walls.crash.txt)
Member

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

Changed status from 'Resolved' to: 'Needs Triage'
Member

In my actual daytime job I got the same crash with the same smooth brush :/ (Blender 3.0.0 Alpha - fb87d236ed)

Reopening then.

> In my actual daytime job I got the same crash with the same smooth brush :/ (Blender 3.0.0 Alpha - fb87d236edb7) Reopening then.
Germano Cavalcante was unassigned by Philipp Oeser 2021-09-28 16:17:31 +02:00
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

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

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

Can confirm the crash.

Happens mostly with a very small brush.
Can also be reproduced from the default sculpting template, setting the brush size to 4px, smooth brush (Strength Pressure sensitivity ON), use tablet and hit a few dots (not strokes)

Can confirm the crash. Happens mostly with a very small brush. Can also be reproduced from the default sculpting template, setting the brush size to 4px, smooth brush (Strength Pressure sensitivity ON), use tablet and hit a few dots (not strokes)
Philipp Oeser changed title from Crash in sculpt mode using "Draw" brush and holding Shift to Crash in sculpt mode using "Smooth" brush with small radius and tab with tablet stylus 2021-09-28 16:38:49 +02:00
Philipp Oeser self-assigned this 2021-09-28 17:46:51 +02:00
Member

Caused by 3e5431fdf4

Issue is that sculpting could start with using SCULPT_smooth and (because of the Pressure sensitivity dropping to zero) code would switch to SCULPT_enhance_details_brush at stregth zero.
Issue with this though is that this can be in the middle or end of a stroke and the necessary ss->cache->detail_directions are only initialized for the first brush step (see SCULPT_stroke_is_first_brush_step in SCULPT_enhance_details_brush). With these missing, it could only go downhill from there.

Suggest to prevent the "mode-flip" from SCULPT_smooth to SCULPT_enhance_details_brush (happening solely because of pressure strength) by changing the condition.
Now do SCULPT_enhance_details_brush only if strength is below zero and SCULPT_smooth only if strength is above zero.
Skipping exactly zero should be fine since with an influence of zero, the brush step would not do anything anyways.

I think this can happen quite often actually (first assumption of this happening only with small brush radius is wrong -- can happen with all sizes), so will dare setting this to High prio.
Fix incomming.

Caused by 3e5431fdf4 Issue is that sculpting could start with using `SCULPT_smooth` and (because of the Pressure sensitivity dropping to zero) code would switch to `SCULPT_enhance_details_brush` at stregth zero. Issue with this though is that this can be in the middle or end of a stroke and the necessary `ss->cache->detail_directions` are only initialized for the first brush step (see `SCULPT_stroke_is_first_brush_step` in `SCULPT_enhance_details_brush`). With these missing, it could only go downhill from there. Suggest to prevent the "mode-flip" from `SCULPT_smooth` to `SCULPT_enhance_details_brush` (happening solely because of pressure strength) by changing the condition. Now do `SCULPT_enhance_details_brush` only if strength is **below** zero and `SCULPT_smooth` only if strength is **above** zero. Skipping exactly zero should be fine since with an influence of zero, the brush step would not do anything anyways. I think this can happen quite often actually (first assumption of this happening only with small brush radius is wrong -- can happen with all sizes), so will dare setting this to High prio. Fix incomming.
Philipp Oeser changed title from Crash in sculpt mode using "Smooth" brush with small radius and tab with tablet stylus to Crash in sculpt mode using "Smooth" brush and tab with tablet stylus 2021-09-28 17:47:10 +02:00

This issue was referenced by 71f354a825

This issue was referenced by 71f354a825cc339a6af577cf6a704776d02fa77d

This issue was referenced by b80ed8396d

This issue was referenced by b80ed8396d285fd3f63831cb1b6589e7057514ce
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
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#89164
No description provided.