Crash with NGL when resizing a window with a scrollable widget setup
Opening this issue as follow-up from IRC/Matrix discussion.
Steps to reproduce
- clone and run https://gitlab.gnome.org/Vanadiae/test-scroll-thing-text-view-ngl-crash in Builder
- once the window shows up (maximized), press Super+Down to make it take its default size
Do those steps repeatability (something like ~20 times should be enough I guess? ), but keep the mouse cursor in the area where the window ends up when pressing Super+Down. I've no idea why, but when trying out the example I made I wasn't ever able to reproduce the crash when the cursor was left on the window underneath (which was Builder in my case), while it was quite easy to reproduce with the cursor inside the (reduced) test window.
Current behavior
crash with
Gsk:ERROR:../gsk/ngl/gskngluniformstate.c:218:gsk_ngl_uniform_state_end_frame: assertion failed: (allocator <= state->values_len)
Bail out! Gsk:ERROR:../gsk/ngl/gskngluniformstate.c:218:gsk_ngl_uniform_state_end_frame: assertion failed: (allocator <= state->values_len)
Expected outcome
No crash :)
Version information
- AMD radeon GPU supporting OpenGL 4.5
- 1600x900@60Hz screen without HiDPI
- using the most recent gtk4 from the org.gnome.Sdk//master flatpak runtime
- the default GTK renderer (so the NGL renderer)
- GNOME Shell
Additional information
Backtrace: ngl_gdb_backtrace.txt.
Interestingly opening the node file corresponding to the crash (obtained with frame 8
then print gsk_render_node_write_to_file (root, "foo.node", NULL)
) in the node editor doesn't crash. The crash node
There was some discussion in the channel wrt this scrollable setup not being easy to do (people who were involved in the discussion would probably know better how to explain that than me though), but it shouldn't be possible nevertheless to make the renderer crash the program.