Question: Does drm-backend requires vblank interrupts to be enabled in drm driver all the time?
Dear weston experts,
Recently I observed an issue when I tried to run weston (with desktop shell, FADE-IN animation on) on drm-backend, I found weston didn't get the right vblank timestamp from kernel, which makes the weston_spring_done
never achieved, and the animation layer can't be destroyed.
But based on my investigation, the most possibly touched path of updating the timestamp is for user to call drmWaitVBlank
, which will call drm_vblank_get
and enable vblank. However, in drm-backend, I found drmWaitVBlank
would be skipped on first frame which triggered by drm_output_start_repaint_loop
.
So I would like to know if weston expects kernel to support vblank interrupts all the time (which could be fulfilled by setting drm_vblank_offdelay to 0, refers to https://elixir.bootlin.com/linux/v6.4-rc6/source/drivers/gpu/drm/drm_vblank.c#L1508), or there supposed to be some other ways to trigger the first vblank enablement?
Thanks in advance!