reduce latency for cursor updates
Right now we commit atomic commits right after rendering, and have the drm driver wait on rendering to be done. This causes two problems:
- when render time is high, we need to commit up to a full frame before the page flip. This means the cursor will have a lot more latency than needed
- when we miss the page flip because rendering takes too long, the cursor update is dropped as well
With a proper async update API for cursors missing in the drm API, the next best solution is to always commit right before vblank with updated cursor data, and only update the framebuffer of the primary plane if rendering is complete.