`GPENCIL_draw_scene` uses `pd->tobjects.first == nullptr` to determine whether to early return (draw nothing). When there's only "In Front" grease pencil objects in scene, `tobjects.first` can be `nullptr` but `tobjects_infront.first` is valid, in which case no grease pencil would be drawn. Becase `gpencil_object_cache_sort` will link those two command lists both to `tobjects` and allow `infront` ones to draw after others, thus move it before the early return to allow drawing to proceed normally. Pull Request: https://projects.blender.org/blender/blender/pulls/132155