https://bugs.freedesktop.org/show_bug.cgi?id=104598
Michel Dänzer michel@daenzer.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|DRM/AMDgpu |DRM/other
--- Comment #7 from Michel Dänzer michel@daenzer.net --- Thanks, I was finally able to reproduce this. Seems like it's only reproducible if the app runs at >= ~10K FPS.
It happens because the client submits so many PresentPixmap requests within a single vertical blank period that the corresponding DRM vblank events fill up the kernel DRM event queue. Then when the compositor sends a PresentPixmap request, the page flip ioctl gets -ENOMEM from drm_event_reserve_init and propagates it. (That the modesetting driver can't deal with this is its bug)
Options for addressing this:
The kernel might allow queuing page flip events even when the queue is full with vblank events.
The xserver present code should be able to re-use a single DRM vblank event for multiple client requests with the same target MSC.
dri-devel@lists.freedesktop.org