A full-screen memcpy() moves the console's shadow buffer to hardware; with possibly significant runtime overhead. [1] The console's dirty worker now waits for the vblank to rate limit the output frequency. Screen output can pile up while waiting and there's a chance that multiple screen updates can be handled with a single memcpy(). Note that this has no effect on tearing: while the dirty worker updates the hardware buffer, new data can still arrive in the shadow buffer. This can create a tearing effcet, even though console output is synchronized to vblank. The patchset adds vblank support to mgag200, because the problem was first reported with Matrox hardware. v2: * remove locking from fbdev patch * use constants fro mgag200 register names and fields * double-check that VLINE irq is active on mgag200 * only signal vblank on CRTC 0 of mgag200 * coding-style fixes [1] https://lists.freedesktop.org/archives/dri-devel/2019-July/228663.html Thomas Zimmermann (3): drm/fb-helper: Synchronize dirty worker with vblank drm/mgag200: Rename constant MGAREG_Status to MGAREG_STATUS drm/mgag200: Add vblank support drivers/gpu/drm/drm_fb_helper.c | 10 +++++ drivers/gpu/drm/mgag200/mgag200_drv.c | 1 + drivers/gpu/drm/mgag200/mgag200_drv.h | 1 + drivers/gpu/drm/mgag200/mgag200_main.c | 40 +++++++++++++++++++ drivers/gpu/drm/mgag200/mgag200_mode.c | 53 ++++++++++++++++++++++---- drivers/gpu/drm/mgag200/mgag200_reg.h | 7 +++- 6 files changed, 104 insertions(+), 8 deletions(-) -- 2.23.0 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel