Bug 456738 - Importing certain JPEG-XL files crashes Krita (git master)
Summary: Importing certain JPEG-XL files crashes Krita (git master)
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: File formats (show other bugs)
Version: 5.1.0-beta1
Platform: Appimage Linux
: NOR crash
Target Milestone: ---
Assignee: amyspark
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-07-15 03:11 UTC by pdoce7781
Modified: 2022-07-20 15:52 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
An example jpeg-xl file that causes Krita 5.1.0-beta1 or higher to crash (3.67 MB, image/jxl)
2022-07-15 03:11 UTC, pdoce7781
Details

Note You need to log in before you can comment on or make changes to this bug.
Description pdoce7781 2022-07-15 03:11:33 UTC
Created attachment 150640 [details]
An example jpeg-xl file that causes Krita 5.1.0-beta1 or higher to crash

SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols.
See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***
I have been experiencing crashes whenever I try to import certain JPEG-XL files. When I run the appimage via the terminal in order to get further details, the output is a "Bus error".

STEPS TO REPRODUCE
1. Obtain the example jxl file from the attachment, or from: https://drive.google.com/file/d/1y2eygJb9EBHAaIF8slcSxsVK2Hk-bYzO/view?usp=sharing
2. Using the git master version of Krita (Krita Plus) with git hash 973c92a, try to open or import the file in any way.

OBSERVED RESULT
The system crashes a second or two after the file import process is initiated.

EXPECTED RESULT
The JPEG-XL file should have opened normally like a regular image.

SOFTWARE/OS VERSIONS
Krita

 Version: 5.1.0-beta2 (git 973c92a)
 Hidpi: true

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: 5.4.0-122-generic
  Pretty Productname: Linux Mint 20.3
  Product Type: linuxmint
  Product Version: 20.3
  Desktop: X-Cinnamon

Locale

  Languages: en_AU, en
  C locale: en_AU.UTF-8
  QLocale current: en-AU
  QLocale system: en-AU
  QTextCodec for locale: UTF-8

OpenGL Info
 
  Vendor:  "Intel" 
  Renderer:  "Mesa Intel(R) UHD Graphics (CML GT2)" 
  Version:  "4.6 (Compatibility Profile) Mesa 21.2.6" 
  Shading language:  "4.60" 
  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_EXT_stencil_wrap" 
     "GL_EXT_texture3D" 
     "GL_EXT_texture" 
     "GL_ARB_texture_env_add" 
     "GL_ARB_conditional_render_inverted" 
     "GL_ARB_texture_border_clamp" 
     "GL_ATI_blend_equation_separate" 
     "GL_EXT_shader_integer_mix" 
     "GL_ARB_conservative_depth" 
     "GL_ARB_vertex_attrib_binding" 
     "GL_ARB_fragment_layer_viewport" 
     "GL_EXT_blend_func_separate" 
     "GL_ARB_multi_draw_indirect" 
     "GL_ARB_texture_multisample" 
     "GL_SGIS_generate_mipmap" 
     "GL_ARB_shader_clock" 
     "GL_ARB_framebuffer_object" 
     "GL_ARB_texture_rgb10_a2ui" 
     "GL_KHR_blend_equation_advanced_coherent" 
     "GL_APPLE_packed_pixels" 
     "GL_ARB_stencil_texturing" 
     "GL_ARB_half_float_vertex" 
     "GL_NV_texture_env_combine4" 
     "GL_EXT_texture_buffer_object" 
     "GL_EXT_demote_to_helper_invocation" 
     "GL_ARB_texture_cube_map_array" 
     "GL_ARB_vertex_array_object" 
     "GL_KHR_texture_compression_astc_ldr" 
     "GL_ARB_vertex_shader" 
     "GL_ARB_depth_clamp" 
     "GL_EXT_draw_buffers2" 
     "GL_ARB_draw_instanced" 
     "GL_MESA_shader_integer_functions" 
     "GL_ARB_depth_texture" 
     "GL_ARB_explicit_uniform_location" 
     "GL_NV_primitive_restart" 
     "GL_INTEL_performance_query" 
     "GL_MESA_texture_signed_rgba" 
     "GL_AMD_multi_draw_indirect" 
     "GL_ARB_occlusion_query2" 
     "GL_EXT_EGL_sync" 
     "GL_ARB_shader_group_vote" 
     "GL_ARB_program_interface_query" 
     "GL_INTEL_shader_atomic_float_minmax" 
     "GL_MESA_pack_invert" 
     "GL_AMD_depth_clamp_separate" 
     "GL_ARB_gl_spirv" 
     "GL_ARB_shader_precision" 
     "GL_EXT_texture_object" 
     "GL_ARB_shading_language_packing" 
     "GL_ATI_fragment_shader" 
     "GL_ARB_get_texture_sub_image" 
     "GL_KHR_texture_compression_astc_sliced_3d" 
     "GL_ARB_texture_cube_map" 
     "GL_MESA_framebuffer_flip_y" 
     "GL_IBM_multimode_draw_arrays" 
     "GL_EXT_compiled_vertex_array" 
     "GL_ARB_texture_query_levels" 
     "GL_EXT_polygon_offset_clamp" 
     "GL_EXT_draw_instanced" 
     "GL_ARB_clip_control" 
     "GL_EXT_texture_env_add" 
     "GL_ARB_point_parameters" 
     "GL_ANGLE_texture_compression_dxt3" 
     "GL_ARB_texture_non_power_of_two" 
     "GL_ARB_texture_rg" 
     "GL_ARB_spirv_extensions" 
     "GL_ARB_texture_env_dot3" 
     "GL_ARB_draw_indirect" 
     "GL_EXT_texture_env_combine" 
     "GL_ARB_blend_func_extended" 
     "GL_INTEL_shader_integer_functions2" 
     "GL_KHR_robust_buffer_access_behavior" 
     "GL_EXT_subtexture" 
     "GL_ARB_multi_bind" 
     "GL_ARB_shader_storage_buffer_object" 
     "GL_AMD_texture_texture4" 
     "GL_ARB_shader_atomic_counters" 
     "GL_ARB_texture_stencil8" 
     "GL_AMD_pinned_memory" 
     "GL_ARB_framebuffer_no_attachments" 
     "GL_ATI_texture_float" 
     "GL_EXT_EGL_image_storage" 
     "GL_ARB_shading_language_100" 
     "GL_IBM_texture_mirrored_repeat" 
     "GL_EXT_texture_edge_clamp" 
     "GL_ARB_shader_texture_lod" 
     "GL_ARB_pixel_buffer_object" 
     "GL_ARB_vertex_array_bgra" 
     "GL_ARB_get_program_binary" 
     "GL_AMD_seamless_cubemap_per_texture" 
     "GL_EXT_direct_state_access" 
     "GL_ARB_texture_mirrored_repeat" 
     "GL_ARB_post_depth_coverage" 
     "GL_EXT_texture_lod_bias" 
     "GL_ARB_viewport_array" 
     "GL_ARB_copy_image" 
     "GL_ARB_texture_filter_anisotropic" 
     "GL_ARB_transform_feedback_instanced" 
     "GL_EXT_texture_sRGB" 
     "GL_ARB_ES2_compatibility" 
     "GL_ARB_draw_buffers" 
     "GL_EXT_vertex_array_bgra" 
     "GL_ARB_sync" 
     "GL_ARB_timer_query" 
     "GL_ARB_shading_language_include" 
     "GL_EXT_fog_coord" 
     "GL_ARB_texture_storage" 
     "GL_ARB_point_sprite" 
     "GL_EXT_blend_equation_separate" 
     "GL_ARB_draw_buffers_blend" 
     "GL_ARB_seamless_cubemap_per_texture" 
     "GL_AMD_shader_stencil_export" 
     "GL_ARB_fragment_shader" 
     "GL_OES_EGL_image" 
     "GL_ARB_ES3_compatibility" 
     "GL_NV_fragment_shader_interlock" 
     "GL_KHR_context_flush_control" 
     "GL_NV_fog_distance" 
     "GL_ARB_direct_state_access" 
     "GL_ARB_shader_ballot" 
     "GL_ARB_gpu_shader5" 
     "GL_ARB_shading_language_420pack" 
     "GL_ARB_sample_shading" 
     "GL_EXT_secondary_color" 
     "GL_AMD_vertex_shader_layer" 
     "GL_ARB_polygon_offset_clamp" 
     "GL_EXT_vertex_array" 
     "GL_EXT_draw_range_elements" 
     "GL_KHR_blend_equation_advanced" 
     "GL_NV_depth_clamp" 
     "GL_EXT_packed_depth_stencil" 
     "GL_OES_read_format" 
     "GL_EXT_framebuffer_blit" 
     "GL_EXT_texture_rectangle" 
     "GL_ARB_shader_image_load_store" 
     "GL_ARB_internalformat_query2" 
     "GL_ARB_texture_rectangle" 
     "GL_ARB_compute_shader" 
     "GL_ARB_transform_feedback_overflow_query" 
     "GL_ARB_uniform_buffer_object" 
     "GL_EXT_texture_compression_dxt1" 
     "GL_ARB_shader_objects" 
     "GL_ARB_robustness" 
     "GL_EXT_memory_object" 
     "GL_EXT_shader_samples_identical" 
     "GL_NV_copy_depth_to_color" 
     "GL_ARB_texture_compression_bptc" 
     "GL_EXT_texture_sRGB_R8" 
     "GL_ARB_multitexture" 
     "GL_SGIS_texture_lod" 
     "GL_MESA_window_pos" 
     "GL_ARB_texture_env_combine" 
     "GL_ARB_internalformat_query" 
     "GL_ARB_shader_atomic_counter_ops" 
     "GL_AMD_shader_trinary_minmax" 
     "GL_AMD_performance_monitor" 
     "GL_ARB_texture_compression_rgtc" 
     "GL_ARB_framebuffer_sRGB" 
     "GL_EXT_framebuffer_multisample_blit_scaled" 
     "GL_ARB_draw_elements_base_vertex" 
     "GL_ARB_vertex_buffer_object" 
     "GL_KHR_parallel_shader_compile" 
     "GL_AMD_vertex_shader_viewport_index" 
     "GL_ARB_shader_texture_image_samples" 
     "GL_NV_texture_barrier" 
     "GL_ARB_texture_env_crossbar" 
     "GL_ARB_transform_feedback2" 
     "GL_EXT_framebuffer_sRGB" 
     "GL_ARB_texture_compression" 
     "GL_ARB_shader_image_size" 
     "GL_EXT_packed_pixels" 
     "GL_ATI_separate_stencil" 
     "GL_SGIS_texture_border_clamp" 
     "GL_EXT_texture_compression_rgtc" 
     "GL_ARB_fragment_coord_conventions" 
     "GL_ARB_indirect_parameters" 
     "GL_EXT_semaphore_fd" 
     "GL_INTEL_blackhole_render" 
     "GL_ARB_fragment_shader_interlock" 
     "GL_ARB_shader_bit_encoding" 
     "GL_EXT_semaphore" 
     "GL_NV_texture_rectangle" 
     "GL_EXT_abgr" 
     "GL_ARB_map_buffer_alignment" 
     "GL_NV_conditional_render" 
     "GL_EXT_framebuffer_multisample" 
     "GL_ARB_texture_gather" 
     "GL_EXT_texture_compression_s3tc" 
     "GL_EXT_point_parameters" 
     "GL_EXT_shadow_funcs" 
     "GL_KHR_robustness" 
     "GL_ARB_buffer_storage" 
     "GL_ARB_depth_buffer_float" 
     "GL_ARB_pipeline_statistics_query" 
     "GL_IBM_rasterpos_clip" 
     "GL_ARB_invalidate_subdata" 
     "GL_ARB_enhanced_layouts" 
     "GL_ARB_clear_texture" 
     "GL_ARB_window_pos" 
     "GL_ARB_explicit_attrib_location" 
     "GL_EXT_pixel_buffer_object" 
     "GL_ARB_texture_buffer_range" 
     "GL_ANGLE_texture_compression_dxt5" 
     "GL_AMD_query_buffer_object" 
     "GL_ARB_vertex_attrib_64bit" 
     "GL_ARB_derivative_control" 
     "GL_S3_s3tc" 
     "GL_NV_blend_square" 
     "GL_ARB_shader_viewport_layer_array" 
     "GL_ARB_ES3_1_compatibility" 
     "GL_EXT_blend_minmax" 
     "GL_ATI_draw_buffers" 
     "GL_ARB_parallel_shader_compile" 
     "GL_NV_packed_depth_stencil" 
     "GL_ARB_compatibility" 
     "GL_EXT_stencil_two_side" 
     "GL_EXT_gpu_program_parameters" 
     "GL_ARB_occlusion_query" 
     "GL_EXT_shader_framebuffer_fetch" 
     "GL_ARB_vertex_type_10f_11f_11f_rev" 
     "GL_EXT_texture_cube_map" 
     "GL_ARB_texture_storage_multisample" 
     "GL_ATI_texture_env_combine3" 
     "GL_ARB_gpu_shader_int64" 
     "GL_ARB_separate_shader_objects" 
     "GL_ARB_fragment_program" 
     "GL_NV_copy_image" 
     "GL_NV_texgen_reflection" 
     "GL_ARB_texture_query_lod" 
     "GL_EXT_blend_color" 
     "GL_ARB_provoking_vertex" 
     "GL_ARB_texture_mirror_clamp_to_edge" 
     "GL_NV_compute_shader_derivatives" 
     "GL_EXT_memory_object_fd" 
     "GL_KHR_debug" 
     "GL_EXT_texture_filter_anisotropic" 
     "GL_EXT_rescale_normal" 
     "GL_EXT_blend_subtract" 
     "GL_ARB_tessellation_shader" 
     "GL_EXT_separate_specular_color" 
     "GL_SGIS_texture_edge_clamp" 
     "GL_EXT_texture_env_dot3" 
     "GL_ARB_base_instance" 
     "GL_EXT_texture_snorm" 
     "GL_ARB_compressed_texture_pixel_storage" 
     "GL_INGR_blend_func_separate" 
     "GL_ARB_fragment_program_shadow" 
     "GL_EXT_transform_feedback" 
     "GL_EXT_multi_draw_arrays" 
     "GL_EXT_framebuffer_object" 
     "GL_ARB_texture_buffer_object" 
     "GL_ARB_shader_subroutine" 
     "GL_EXT_timer_query" 
     "GL_EXT_copy_texture" 
     "GL_EXT_shader_framebuffer_fetch_non_coherent" 
     "GL_EXT_bgra" 
     "GL_ARB_shader_draw_parameters" 
     "GL_ARB_multisample" 
     "GL_ARB_arrays_of_arrays" 
     "GL_ARB_gpu_shader_fp64" 
     "GL_KHR_no_error" 
     "GL_EXT_packed_float" 
     "GL_NV_light_max_exponent" 
     "GL_ARB_vertex_program" 
     "GL_ARB_texture_buffer_object_rgb32" 
     "GL_EXT_vertex_attrib_64bit" 
     "GL_ARB_texture_barrier" 
     "GL_ARB_half_float_pixel" 
     "GL_ARB_debug_output" 
     "GL_ARB_shader_stencil_export" 
     "GL_ARB_query_buffer_object" 
     "GL_ARB_instanced_arrays" 
     "GL_ARB_transpose_matrix" 
     "GL_ARB_clear_buffer_object" 
     "GL_ARB_robust_buffer_access_behavior" 
     "GL_ARB_texture_view" 
     "GL_ARB_texture_swizzle" 
     "GL_EXT_texture_shadow_lod" 
     "GL_EXT_texture_shared_exponent" 
     "GL_EXT_gpu_shader4" 
     "GL_ARB_seamless_cube_map" 
     "GL_ARB_color_buffer_float" 
     "GL_ARB_transform_feedback3" 
     "GL_ARB_sampler_objects" 
     "GL_EXT_texture_integer" 
     "GL_NV_half_float" 
     "GL_ARB_compute_variable_group_size" 
     "GL_EXT_provoking_vertex" 
     "GL_EXT_texture_swizzle" 
     "GL_EXT_texture_array" 
     "GL_EXT_texture_sRGB_decode" 
     "GL_ARB_map_buffer_range" 
     "GL_ARB_vertex_type_2_10_10_10_rev" 
     "GL_ARB_copy_buffer" 
     "GL_AMD_draw_buffers_blend" 
     "GL_AMD_conservative_depth" 
     "GL_ARB_shadow" 
     "GL_SUN_multi_draw_arrays" 
     "GL_3DFX_texture_compression_FXT1" 
     "GL_ARB_texture_float" 
     "GL_ARB_cull_distance" 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsOpenGLES: true 
  isQtPreferOpenGLES: false 

useBufferInvalidation (config option): false


Hardware Information

  GPU Acceleration: auto
  Memory: 7650 Mb
  Number of Cores: 8
  Swap Location: /tmp
  Built for: sse2
  Base instruction set: sse2
  Supported instruction sets: fma3+avx2 avx2 fma3+avx avx fma4 fma3+sse4.2 sse4.2 sse4.1 ssse3 sse3 sse2 

Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 200
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 420
  Use Backup Files: true
  Number of Backups Kept: 1
  Backup File Suffix: ~
  Backup Location: Same Folder as the File
  Backup Location writable: false
  Use Win8 Pointer Input: false
  Use RightMiddleTabletButton Workaround: false
  Levels of Detail Enabled: false
  Use Zip64: true


Display Information
Number of screens: 1
	Screen: 0
		Name: eDP-1
		Depth: 24
		Scale: 1
		Physical DPI166.349
		Logical DPI96
		Physical Size: 293, 165
		Position: 0, 0
		Resolution in pixels: 1920x1080
		Manufacturer: Chimei Innolux Corporation
		Model: 
		Refresh Rate: 60

- There were other session logs before this one but I removed them, sorry if this makes it harder

SESSION: 15 Jul 2022 12:50:02 +1000. Executing /tmp/.mount_krita-AwT3aG/usr/bin/krita

Krita Version: 5.1.0-beta2 (git 973c92a), Qt version compiled: 5.12.12, loaded: 5.12.12. Process ID: 59465
-- -- -- -- -- -- -- --
15 Jul 2022 12:50:02 +1000: Style: windows. Available styles: Windows, Fusion
15 Jul 2022 12:50:02 +1000: Database is up to date. Version: 0.0.17, created by Krita 5.1.0-beta1, at Wed Jun 29 23:31:44 2022
15 Jul 2022 12:50:25 +1000: Importing image/jxl to application/x-krita. Location: /home/andrew/Downloads/Fabric031_4K_Displacement_ly.jxl. Real location: /home/andrew/Downloads/Fabric031_4K_Displacement_ly.jxl. Batchmode: 0

KRITA DID NOT CLOSE CORRECTLY
================================================================================
SESSION: 15 Jul 2022 12:50:29 +1000. Executing /tmp/.mount_krita-hJ9Ow4/usr/bin/krita

Krita Version: 5.1.0-beta2 (git 973c92a), Qt version compiled: 5.12.12, loaded: 5.12.12. Process ID: 59563
-- -- -- -- -- -- -- --
15 Jul 2022 12:50:29 +1000: Style: windows. Available styles: Windows, Fusion
15 Jul 2022 12:50:30 +1000: Database is up to date. Version: 0.0.17, created by Krita 5.1.0-beta1, at Wed Jun 29 23:31:44 2022

---------------------


ADDITIONAL INFORMATION
This also happens on Android with beta 1 of 5.1.0, although I have not tested it on Windows.
Comment 1 Bug Janitor Service 2022-07-19 22:56:07 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/1523
Comment 2 Halla Rempt 2022-07-20 07:41:01 UTC
Git commit 7aa65da676776951c26c3e42dd3d09da6781ed40 by Halla Rempt, on behalf of L. E. Segovia.
Committed on 20/07/2022 at 07:40.
Pushed by rempt into branch 'master'.

JPEG XL: set the correct box buffer and size

M  +10   -6    plugins/impex/jxl/JPEGXLImport.cpp

https://invent.kde.org/graphics/krita/commit/7aa65da676776951c26c3e42dd3d09da6781ed40
Comment 3 Halla Rempt 2022-07-20 07:41:09 UTC
Git commit 3179ee41029f32138ef11c0720b848482a671782 by Halla Rempt, on behalf of L. E. Segovia.
Committed on 20/07/2022 at 07:40.
Pushed by rempt into branch 'master'.

JPEG XL: fix stack overrun on box type checking

M  +14   -5    plugins/impex/jxl/JPEGXLImport.cpp

https://invent.kde.org/graphics/krita/commit/3179ee41029f32138ef11c0720b848482a671782
Comment 4 Halla Rempt 2022-07-20 07:41:17 UTC
Git commit 4a0b50d1663ce2453c6796bc8d6191a949506606 by Halla Rempt, on behalf of L. E. Segovia.
Committed on 20/07/2022 at 07:40.
Pushed by rempt into branch 'master'.

JPEG XL: fix metadata application when the BASIC_INFO event hasn't fired yet

Substance Designer exports images with metadata coming before the actual
pixel stream. This makes it impossible to apply the metadata cleanly
since we need an active image to create the paint layer.

This commit fixes the issue by safekeeping the boxes and then applying
them after the decode is finished.

M  +37   -21   plugins/impex/jxl/JPEGXLImport.cpp

https://invent.kde.org/graphics/krita/commit/4a0b50d1663ce2453c6796bc8d6191a949506606
Comment 5 amyspark 2022-07-20 15:52:26 UTC
Git commit 4814025fbf701199596908928ffb37b8494794dd by L. E. Segovia.
Committed on 20/07/2022 at 15:48.
Pushed by lsegovia into branch 'krita/5.1'.

JPEG XL: fix stack overrun on box type checking
(cherry picked from commit 3179ee41029f32138ef11c0720b848482a671782)

M  +14   -5    plugins/impex/jxl/JPEGXLImport.cpp

https://invent.kde.org/graphics/krita/commit/4814025fbf701199596908928ffb37b8494794dd
Comment 6 amyspark 2022-07-20 15:52:35 UTC
Git commit 1d18ef1f3bdd615f0353124ce660da4954ce744c by L. E. Segovia.
Committed on 20/07/2022 at 15:48.
Pushed by lsegovia into branch 'krita/5.1'.

JPEG XL: set the correct box buffer and size
(cherry picked from commit 7aa65da676776951c26c3e42dd3d09da6781ed40)

M  +10   -6    plugins/impex/jxl/JPEGXLImport.cpp

https://invent.kde.org/graphics/krita/commit/1d18ef1f3bdd615f0353124ce660da4954ce744c
Comment 7 amyspark 2022-07-20 15:52:43 UTC
Git commit 8ee7309156660975d6608fc86e8e8fe14dc20815 by L. E. Segovia.
Committed on 20/07/2022 at 15:48.
Pushed by lsegovia into branch 'krita/5.1'.

JPEG XL: fix metadata application when the BASIC_INFO event hasn't fired yet

Substance Designer exports images with metadata coming before the actual
pixel stream. This makes it impossible to apply the metadata cleanly
since we need an active image to create the paint layer.

This commit fixes the issue by safekeeping the boxes and then applying
them after the decode is finished.
(cherry picked from commit 4a0b50d1663ce2453c6796bc8d6191a949506606)

M  +37   -21   plugins/impex/jxl/JPEGXLImport.cpp

https://invent.kde.org/graphics/krita/commit/8ee7309156660975d6608fc86e8e8fe14dc20815