| Summary: | Transformation on large canvas animation frames causes crash | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | sbstratos79 |
| Component: | Tools/Transform | Assignee: | Dmitry Kazakov <dimula73> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | ahab.greybeard, denispolozov30, geekerzizzle, halla, jmushf, sbstratos79 |
| Priority: | NOR | ||
| Version First Reported In: | 5.1.5 | ||
| Target Milestone: | --- | ||
| Platform: | Arch Linux | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/graphics/krita/-/commit/e39a0cf6dfbd4a59e3a028b78d91fc12283e2064 | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
| Attachments: | backtrace | ||
|
Description
sbstratos79
2023-05-01 09:52:47 UTC
Hm, the crash happens in the nvidia opengl driver: /usr/lib/libnvidia-glcore.so.530.41.03 which likely means that it's not something we can fix ourselves, but the gpu/driver simply cannot handle what you're asking of it. I cannot reproduce with this file: but I'm on a PC with an intel gpu. I don't see the behaviour reported with the animation .kra file provided (jump.kra) with 5.1.4 or 5.1.5 or the 5.2.0 prealpha (96efda7010) appimages. In the linked forum topic, I noted that the canvas turned black when a large canvas animation was played with the 5.1.5 appimage. However, this was with an isolated home environment 5.1.5 appimage and that does not happen in the standard 'common' environment with the 5.1.5 appimage or with 5.1.4 or the 5.2.0 prealpha. I will investigate that further as a separate issue. Here is the system information for my PC:
Krita
Version: 5.1.5
Hidpi: false
Qt
Version (compiled): 5.12.12
Version (loaded): 5.12.12
OS Information
Build ABI: x86_64-little_endian-lp64
Build CPU: x86_64
CPU: x86_64
Kernel Type: linux
Kernel Version: 4.19.0-23-amd64
Pretty Productname: Debian GNU/Linux 10 (buster)
Product Type: debian
Product Version: 10
Desktop: MATE
Locale
Languages: en_GB, en
C locale: en_GB.UTF-8
QLocale current: en-GB
QLocale system: en-GB
QTextCodec for locale: UTF-8
OpenGL Info
Vendor: "NVIDIA Corporation"
Renderer: "NVIDIA GeForce GTX 750 Ti/PCIe/SSE2"
Version: "4.6.0 NVIDIA 470.141.03"
Shading language: "4.60 NVIDIA"
Requested format: QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::CompatibilityProfile)
Current format: QSurfaceFormat(version 4.6, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::CompatibilityProfile)
Version: 4.6
Supports deprecated functions true
is OpenGL ES: false
supportsBufferMapping: true
supportsBufferInvalidation: true
forceDisableTextureBuffers: false
Extensions:
"GL_KHR_no_error"
"GL_KHR_robust_buffer_access_behavior"
"GL_KHR_parallel_shader_compile"
"GL_SGIS_generate_mipmap"
"GL_ARB_vertex_type_2_10_10_10_rev"
"GL_ARB_occlusion_query2"
"GL_EXT_bindable_uniform"
"GL_EXT_stencil_two_side"
"GL_ARB_texture_env_add"
"GL_EXTX_framebuffer_mixed_formats"
"GL_NV_register_combiners"
"GL_NV_texture_env_combine4"
"GL_ARB_internalformat_query"
"GL_NV_command_list"
"GL_NV_gpu_shader5"
"GL_ARB_compute_shader"
"GL_ARB_texture_view"
"GL_EXT_shadow_funcs"
"GL_ARB_uniform_buffer_object"
"GL_ARB_gpu_shader_int64"
"GL_AMD_multi_draw_indirect"
"GL_EXT_point_parameters"
"GL_NV_gpu_multicast"
"GL_EXT_texture_integer"
"GL_ARB_multisample"
"GL_ARB_shader_atomic_counter_ops"
"GL_EXT_texture_lod"
"GL_ARB_copy_buffer"
"GL_KHR_robustness"
"GL_NV_vertex_attrib_integer_64bit"
"GL_NV_alpha_to_coverage_dither_control"
"GL_EXT_import_sync_object"
"GL_EXT_texture_filter_anisotropic"
"GL_NV_vertex_program2"
"GL_NV_vertex_program3"
"GL_ARB_window_pos"
"GL_ARB_copy_image"
"GL_ARB_seamless_cube_map"
"GL_EXT_texture_env_dot3"
"GL_ARB_vertex_attrib_64bit"
"GL_ARB_gpu_shader_fp64"
"GL_EXT_direct_state_access"
"GL_ARB_framebuffer_object"
"GL_KHR_context_flush_control"
"GL_EXT_texture3D"
"GL_EXT_blend_subtract"
"GL_ARB_shader_group_vote"
"GL_EXT_framebuffer_multisample_blit_scaled"
"GL_ARB_tessellation_shader"
"GL_NVX_nvenc_interop"
"GL_EXT_texture_swizzle"
"GL_EXT_blend_minmax"
"GL_EXT_compiled_vertex_array"
"GL_NV_shader_storage_buffer_object"
"GL_ARB_texture_compression_bptc"
"GL_NV_fragment_program"
"GL_EXT_texture_env_add"
"GL_ARB_draw_elements_base_vertex"
"GL_EXT_texture_shared_exponent"
"GL_ARB_get_texture_sub_image"
"GL_IBM_rasterpos_clip"
"GL_EXT_polygon_offset_clamp"
"GL_NV_compute_program5"
"GL_EXT_Cg_shader"
"GL_ARB_sync"
"GL_ARB_vertex_shader"
"GL_ARB_texture_stencil8"
"GL_ARB_draw_buffers"
"GL_NV_copy_depth_to_color"
"GL_NV_vertex_program2_option"
"GL_NV_ES1_1_compatibility"
"GL_ARB_shading_language_420pack"
"GL_EXT_texture_compression_dxt1"
"GL_NV_texture_multisample"
"GL_ARB_shading_language_include"
"GL_OVR_multiview2"
"GL_EXT_framebuffer_multisample"
"GL_ARB_shader_storage_buffer_object"
"GL_NV_shader_atomic_counters"
"GL_ARB_shader_atomic_counters"
"GL_ARB_query_buffer_object"
"GL_ARB_clear_buffer_object"
"GL_ARB_texture_compression"
"GL_ARB_vertex_array_object"
"GL_NV_draw_vulkan_image"
"GL_ARB_texture_barrier"
"GL_ARB_pipeline_statistics_query"
"GL_EXT_multiview_timer_query"
"GL_NV_multisample_filter_hint"
"GL_EXT_packed_float"
"GL_KHR_blend_equation_advanced"
"GL_ARB_internalformat_query2"
"GL_EXT_texture_cube_map"
"GL_EXT_texture_buffer_object"
"GL_EXT_window_rectangles"
"GL_ARB_compatibility"
"GL_ARB_multitexture"
"GL_ARB_robustness"
"GL_ARB_occlusion_query"
"GL_EXT_vertex_array_bgra"
"GL_NV_fog_distance"
"GL_NV_bindless_multi_draw_indirect_count"
"GL_NV_shader_thread_shuffle"
"GL_NV_path_rendering"
"GL_ARB_texture_query_levels"
"GL_ARB_multi_bind"
"GL_ARB_parallel_shader_compile"
"GL_EXT_packed_depth_stencil"
"GL_EXT_texture_env_combine"
"GL_EXT_provoking_vertex"
"GL_ARB_derivative_control"
"GL_ARB_sparse_buffer"
"GL_EXT_texture_compression_latc"
"GL_ARB_transform_feedback_instanced"
"GL_EXT_draw_range_elements"
"GL_ARB_geometry_shader4"
"GL_EXT_pixel_buffer_object"
"GL_NV_internalformat_sample_query"
"GL_NV_vertex_program1_1"
"GL_ARB_compute_variable_group_size"
"GL_EXT_vertex_attrib_64bit"
"GL_ARB_depth_buffer_float"
"GL_ARB_texture_multisample"
"GL_NV_transform_feedback2"
"GL_EXT_texture_sRGB"
"GL_NV_gpu_program4"
"GL_ARB_texture_non_power_of_two"
"GL_ARB_texture_rectangle"
"GL_NV_gpu_program5"
"GL_SGIS_texture_lod"
"GL_EXT_fog_coord"
"GL_NV_packed_depth_stencil"
"GL_ARB_multi_draw_indirect"
"GL_ARB_fragment_shader"
"GL_ARB_texture_env_crossbar"
"GL_EXT_texture_shadow_lod"
"GL_NV_bindless_texture"
"GL_ARB_blend_func_extended"
"GL_NV_bindless_multi_draw_indirect"
"GL_ARB_stencil_texturing"
"GL_EXT_texture_sRGB_R8"
"GL_EXT_semaphore_fd"
"GL_EXT_timer_query"
"GL_AMD_seamless_cubemap_per_texture"
"GL_NV_half_float"
"GL_NV_conditional_render"
"GL_EXT_blend_color"
"GL_ARB_enhanced_layouts"
"GL_ARB_fragment_layer_viewport"
"GL_NV_shader_atomic_int64"
"GL_NV_gpu_program4_1"
"GL_ARB_shader_precision"
"GL_ARB_ES3_compatibility"
"GL_NV_primitive_restart"
"GL_ARB_imaging"
"GL_ARB_texture_storage_multisample"
"GL_ARB_texture_filter_anisotropic"
"GL_EXT_draw_instanced"
"GL_ARB_draw_instanced"
"GL_ARB_texture_compression_rgtc"
"GL_ARB_vertex_attrib_binding"
"GL_ARB_texture_buffer_range"
"GL_EXT_x11_sync_object"
"GL_ARB_seamless_cubemap_per_texture"
"GL_ARB_point_parameters"
"GL_ARB_conservative_depth"
"GL_ARB_texture_mirrored_repeat"
"GL_ARB_texture_buffer_object"
"GL_ARB_half_float_pixel"
"GL_ARB_ES3_2_compatibility"
"GL_EXT_texture_compression_rgtc"
"GL_NV_multisample_coverage"
"GL_EXT_texture_edge_clamp"
"GL_ARB_timer_query"
"GL_EXT_multiview_texture_multisample"
"GL_EXT_multi_draw_arrays"
"GL_ARB_texture_gather"
"GL_EXT_texture_object"
"GL_ARB_transform_feedback2"
"GL_ARB_transform_feedback3"
"GL_NV_vdpau_interop"
"GL_SGIX_shadow"
"GL_EXT_separate_specular_color"
"GL_EXT_separate_shader_objects"
"GL_NV_blend_minmax_factor"
"GL_ARB_framebuffer_no_attachments"
"GL_ARB_texture_query_lod"
"GL_ARB_half_float_vertex"
"GL_ATI_texture_mirror_once"
"GL_ARB_sparse_texture"
"GL_NV_gpu_program_fp64"
"GL_ARB_texture_storage"
"GL_NV_explicit_multisample"
"GL_ARB_polygon_offset_clamp"
"GL_ARB_gl_spirv"
"GL_ARB_shader_objects"
"GL_NVX_conditional_render"
"GL_ARB_shader_clock"
"GL_EXT_packed_pixels"
"GL_EXT_texture_sRGB_decode"
"GL_EXT_framebuffer_sRGB"
"GL_NV_texture_shader"
"GL_ARB_shader_texture_image_samples"
"GL_ARB_indirect_parameters"
"GL_ARB_instanced_arrays"
"GL_EXT_framebuffer_blit"
"GL_KHR_shader_subgroup"
"GL_EXT_shader_image_load_store"
"GL_ARB_depth_clamp"
"GL_ARB_sampler_objects"
"GL_IBM_texture_mirrored_repeat"
"GL_ARB_invalidate_subdata"
"GL_EXT_semaphore"
"GL_ARB_shader_ballot"
"GL_ARB_explicit_attrib_location"
"GL_ARB_debug_output"
"GL_NV_float_buffer"
"GL_NV_geometry_shader4"
"GL_NV_point_sprite"
"GL_ARB_compressed_texture_pixel_storage"
"GL_EXT_gpu_shader4"
"GL_EXT_vertex_array"
"GL_ARB_map_buffer_range"
"GL_OVR_multiview"
"GL_NV_parameter_buffer_object2"
"GL_NV_texture_barrier"
"GL_ARB_arrays_of_arrays"
"GL_NV_texture_shader2"
"GL_ARB_shader_draw_parameters"
"GL_NV_texture_shader3"
"GL_EXT_blend_equation_separate"
"GL_ARB_shader_subroutine"
"GL_NV_uniform_buffer_unified_memory"
"GL_NV_vertex_buffer_unified_memory"
"GL_ARB_texture_cube_map"
"GL_ARB_map_buffer_alignment"
"GL_ARB_separate_shader_objects"
"GL_ARB_direct_state_access"
"GL_KTX_buffer_region"
"GL_ARB_texture_buffer_object_rgb32"
"GL_SGIX_depth_texture"
"GL_NV_depth_clamp"
"GL_NV_occlusion_query"
"GL_NV_register_combiners2"
"GL_NV_framebuffer_multisample_coverage"
"GL_ARB_draw_buffers_blend"
"GL_NV_blend_square"
"GL_EXT_texture_storage"
"GL_ARB_shading_language_100"
"GL_ARB_robust_buffer_access_behavior"
"GL_EXT_shader_image_load_formatted"
"GL_NV_pixel_data_range"
"GL_ARB_fragment_program_shadow"
"GL_ARB_program_interface_query"
"GL_NV_fragment_program_option"
"GL_NV_query_resource"
"GL_ARB_depth_texture"
"GL_ARB_sample_shading"
"GL_EXT_texture_compression_s3tc"
"GL_NV_shader_atomic_float"
"GL_NVX_gpu_memory_info"
"GL_ARB_texture_env_dot3"
"GL_EXT_secondary_color"
"GL_EXT_texture_array"
"GL_KHR_blend_equation_advanced_coherent"
"GL_ARB_explicit_uniform_location"
"GL_ARB_shader_image_load_store"
"GL_ARB_vertex_array_bgra"
"GL_EXT_texture_mirror_clamp"
"GL_EXT_rescale_normal"
"GL_ARB_shading_language_packing"
"GL_ARB_viewport_array"
"GL_KHR_debug"
"GL_EXT_depth_bounds_test"
"GL_ARB_texture_float"
"GL_NV_transform_feedback"
"GL_EXT_abgr"
"GL_NV_texture_compression_vtc"
"GL_NV_texgen_reflection"
"GL_ARB_spirv_extensions"
"GL_NV_fence"
"GL_EXT_bgra"
"GL_EXT_draw_buffers2"
"GL_ARB_shader_image_size"
"GL_NV_ES3_1_compatibility"
"GL_SUN_slice_accum"
"GL_ARB_vertex_type_10f_11f_11f_rev"
"GL_NV_light_max_exponent"
"GL_ARB_clear_texture"
"GL_NV_fragment_program2"
"GL_ARB_shader_texture_lod"
"GL_NV_parameter_buffer_object"
"GL_ARB_point_sprite"
"GL_NV_gpu_program5_mem_extended"
"GL_ARB_vertex_program"
"GL_EXT_texture_lod_bias"
"GL_NV_vertex_array_range2"
"GL_ARB_color_buffer_float"
"GL_ARB_texture_border_clamp"
"GL_NV_vertex_array_range"
"GL_NV_feature_query"
"GL_ARB_clip_control"
"GL_ARB_texture_rg"
"GL_ARB_texture_env_combine"
"GL_NVX_progress_fence"
"GL_ARB_bindless_texture"
"GL_ARB_shader_bit_encoding"
"GL_EXT_framebuffer_object"
"GL_ARB_fragment_program"
"GL_NV_draw_texture"
"GL_ARB_conditional_render_inverted"
"GL_NV_timeline_semaphore"
"GL_ARB_pixel_buffer_object"
"GL_NV_texture_rectangle_compressed"
"GL_NV_shader_thread_group"
"GL_ARB_transpose_matrix"
"GL_ARB_texture_cube_map_array"
"GL_ARB_cull_distance"
"GL_ARB_ES2_compatibility"
"GL_EXT_stencil_wrap"
"GL_EXT_shader_integer_mix"
"GL_NV_depth_buffer_float"
"GL_EXT_memory_object"
"GL_ARB_draw_indirect"
"GL_NV_shader_subgroup_partitioned"
"GL_EXT_geometry_shader4"
"GL_ARB_gpu_shader5"
"GL_ATI_texture_float"
"GL_NV_copy_image"
"GL_ARB_transform_feedback_overflow_query"
"GL_ARB_ES3_1_compatibility"
"GL_EXT_transform_feedback2"
"GL_NV_vertex_program"
"GL_ATI_draw_buffers"
"GL_ARB_provoking_vertex"
"GL_NV_blend_equation_advanced_coherent"
"GL_ARB_vertex_buffer_object"
"GL_S3_s3tc"
"GL_NV_shader_buffer_load"
"GL_ARB_base_instance"
"GL_ARB_get_program_binary"
"GL_EXT_blend_func_separate"
"GL_NV_blend_equation_advanced"
"GL_ARB_texture_rgb10_a2ui"
"GL_ARB_fragment_coord_conventions"
"GL_ARB_texture_mirror_clamp_to_edge"
"GL_EXT_memory_object_fd"
"GL_NV_query_resource_tag"
"GL_ARB_buffer_storage"
"GL_ARB_framebuffer_sRGB"
"GL_ARB_shadow"
"GL_NV_robustness_video_memory_purge"
"GL_NV_vdpau_interop2"
"GL_ARB_texture_swizzle"
"GL_EXT_gpu_program_parameters"
"GL_NV_texture_rectangle"
QPA OpenGL Detection Info
supportsDesktopGL: true
supportsOpenGLES: true
isQtPreferOpenGLES: false
useBufferInvalidation (config option): false
Hardware Information
GPU Acceleration: auto
Memory: 16039 Mb
Number of Cores: 8
Swap Location: /tmp
Built for: sse2
Base instruction set: sse2
Supported instruction sets: sse4.1 ssse3 sse3 sse2
Current Settings
Current Swap Location: /tmp
Current Swap Location writable: true
Undo Enabled: true
Undo Stack Limit: 0
Use OpenGL: true
Use OpenGL Texture Buffer: true
Disable Vector Optimizations: false
Disable AVX Optimizations: false
Canvas State: OPENGL_SUCCESS
Autosave Interval: 0
Use Backup Files: true
Number of Backups Kept: 1
Backup File Suffix: ~
Backup Location: Same Folder as the File
Backup Location writable: false
Resource Location: /home/adminfrank/FWORK/Iso-Krita/5.1.5/krita-5.1.5.home/.local/share/krita
Use Win8 Pointer Input: false
Use RightMiddleTabletButton Workaround: false
Levels of Detail Enabled: false
Use Zip64: false
Loaded Python Plugins
colorspace
comics_project_management_tools
documenttools
exportlayers
filtermanager
lastdocumentsdocker
mixer_slider_docker
plugin_importer
quick_settings_docker
scripter
tenbrushes
tenscripts
Display Information
Number of screens: 2
Screen: 0
Name: DVI-D-1
Depth: 24
Scale: 1
Physical DPI96.2606
Logical DPI96.0118
Physical Size: 338, 270
Position: 1280, 0
Resolution in pixels: 1280x1024
Manufacturer: Dell Inc.
Model: DELL 1704FPV-
Refresh Rate: 60
Screen: 1
Name: DVI-D-0
Depth: 24
Scale: 1
Physical DPI96.2606
Logical DPI96.0118
Physical Size: 338, 270
Position: 0, 0
Resolution in pixels: 1280x1024
Manufacturer: Dell Inc.
Model: DELL 1704FPV-
Refresh Rate: 60
(In reply to Halla Rempt from comment #1) > Hm, the crash happens in the nvidia opengl driver: > > /usr/lib/libnvidia-glcore.so.530.41.03 > > which likely means that it's not something we can fix ourselves, but the > gpu/driver simply cannot handle what you're asking of it. This time I ran Krita with the integrated Intel GPU. Krita still crashed. Here's the backtrace. https://pixeldrain.com/u/PPHRXYJQ And as I mentioned in my original post, I can't reproduce this crash in v5.1.4. Something has changed in 5.1.5 that is causing the crash. I think it's worth looking into. My system info: https://pixeldrain.com/u/T8d5HwAc (In reply to sbstratos79 from comment #6) > My system info: > https://pixeldrain.com/u/T8d5HwAc System info with integrated Intel GPU: https://pixeldrain.com/u/aSfZuug8 I was wrong with my initial assumption -- it's not gpu related, the backtrace just was confusing. Git commit 821fedf457686f39de9fdd6fced21f14167dc63f by Dmitry Kazakov. Committed on 22/06/2023 at 11:06. Pushed by dkazakov into branch 'master'. Fix transform tool to work on animated images We shouldn't try to continue transformation from the previous undo command if the actual anamation time has changed since then M +26 -10 plugins/tools/tool_transform2/kis_transform_utils.cpp M +4 -3 plugins/tools/tool_transform2/kis_transform_utils.h M +5 -0 plugins/tools/tool_transform2/strokes/inplace_transform_stroke_strategy.cpp M +4 -0 plugins/tools/tool_transform2/strokes/transform_stroke_strategy.cpp M +1 -0 plugins/tools/tool_transform2/strokes/transform_stroke_strategy.h https://invent.kde.org/graphics/krita/-/commit/821fedf457686f39de9fdd6fced21f14167dc63f I have managed to reproduce the issue with the test image, though it happens only on Linux for some reason... SAFE ASSERT (krita): "oldValue > 0" in file /home/appimage/persistent/krita/libs/image/tiles3/KisTiledExtentManager.cpp, line 94 SAFE ASSERT (krita): "oldValue > 0" in file /home/appimage/persistent/krita/libs/image/tiles3/KisTiledExtentManager.cpp, line 94 SAFE ASSERT (krita): "oldValue > 0" in file /home/appimage/persistent/krita/libs/image/tiles3/KisTiledExtentManager.cpp, line 94 SAFE ASSERT (krita): "oldValue > 0" in file /home/appimage/persistent/krita/libs/image/tiles3/KisTiledExtentManager.cpp, line 94 SAFE ASSERT (krita): "oldValue > 0" in file /home/appimage/persistent/krita/libs/image/tiles3/KisTiledExtentManager.cpp, line 94 SAFE ASSERT (krita): "oldValue > 0" in file /home/appimage/persistent/krita/libs/image/tiles3/KisTiledExtentManager.cpp, line 94 SAFE ASSERT (krita): "oldValue > 0" in file /home/appimage/persistent/krita/libs/image/tiles3/KisTiledExtentManager.cpp, line 94 SAFE ASSERT (krita): "oldValue > 0" in file /home/appimage/persistent/krita/libs/image/tiles3/KisTiledExtentManager.cpp, line 94 SAFE ASSERT (krita): "oldValue > 0" in file /home/appimage/persistent/krita/libs/image/tiles3/KisTiledExtentManager.cpp, line 94 ASSERT (krita): "m_buffer[currentIndex].loadAcquire() >= 0" in file /home/appimage/persistent/krita/libs/image/tiles3/KisTiledExtentManager.cpp, line 44 SAFE ASSERT (krita): "oldValue > 0" in file /home/appimage/persistent/krita/libs/image/tiles3/KisTiledExtentManager.cpp, line 94 Aborted (core dumped) Git commit c0c6abf2aefa9f90ba0c8cdd10d1632e6d9472a2 by Dmitry Kazakov. Committed on 05/07/2023 at 10:46. Pushed by dkazakov into branch 'master'. Don't auto-copy keyframe when source and destination frames are the same Copying causes an update signal to be emitted, which triggers invalid threaded access in some circumstances. M +5 -2 plugins/tools/basictools/strokes/move_selection_stroke_strategy.cpp M +7 -2 plugins/tools/tool_transform2/strokes/inplace_transform_stroke_strategy.cpp M +4 -2 plugins/tools/tool_transform2/strokes/transform_stroke_strategy.cpp https://invent.kde.org/graphics/krita/-/commit/c0c6abf2aefa9f90ba0c8cdd10d1632e6d9472a2 Git commit e39a0cf6dfbd4a59e3a028b78d91fc12283e2064 by Dmitry Kazakov. Committed on 05/07/2023 at 10:46. Pushed by dkazakov into branch 'master'. Make sure lod generation happens under updates locked Updates can come asyncronously via KisNode::handleKeyframeChannelUpdate, when a frame is automatically added via the auto-keyframing feature. To handle this case we should block execution of all the updates for this period of time. M +44 -0 libs/image/KisRunnableStrokeJobUtils.h M +9 -2 libs/image/kis_sync_lod_cache_stroke_strategy.cpp M +3 -1 libs/image/kis_sync_lod_cache_stroke_strategy.h https://invent.kde.org/graphics/krita/-/commit/e39a0cf6dfbd4a59e3a028b78d91fc12283e2064 Git commit 51eaef48b9bec42bdd909a4df4cd66f981e11fc0 by Dmitry Kazakov. Committed on 05/07/2023 at 10:46. Pushed by dkazakov into branch 'master'. Fix multithreading issue in KisUpdaterContext::getJobsSnapshot The crash happens under ASAN when using the Transform Tool. It may also happen in any other tool that uses image->blockUpdates(), that is Move Tool and Color Smudge in Overlay mode. M +29 -4 libs/image/kis_updater_context.cpp https://invent.kde.org/graphics/krita/-/commit/51eaef48b9bec42bdd909a4df4cd66f981e11fc0 Hi, sbstratos79! Thank you very much for all the info (and the test file) you provided. It was a very difficult to track bug, but your info really helped a lot! :) *** Bug 468545 has been marked as a duplicate of this bug. *** *** Bug 464610 has been marked as a duplicate of this bug. *** *** Bug 472637 has been marked as a duplicate of this bug. *** (In reply to Dmitry Kazakov from comment #14) > Hi, sbstratos79! > > Thank you very much for all the info (and the test file) you provided. It > was a very difficult to track bug, but your info really helped a lot! :) Glad to help! :) Btw, have these changes been merged in Krita Plus? |