From: Noralf Trønnes <noralf@xxxxxxxxxxx> Hi, I have started to look at igt for testing and want to use CRC tests. To implement support for this I need to move away from the simple kms helper. When looking around for examples I came across Thomas' nice shadow helper and thought, yes this is perfect for drm/gud. So I'll switch to that before I move away from the simple kms helper. The async framebuffer flushing code path now uses a shadow buffer and doesn't touch the framebuffer when it shouldn't. I have also taken the opportunity to inline the synchronous flush code path since this will be the future default when userspace predominently don't run all displays in the same rendering loop. A shared rendering loop slows down all displays to run at the speed of the slowest one. Noralf. Cc: Maxime Ripard <mripard@xxxxxxxxxx> Cc: Thomas Zimmermann <tzimmermann@xxxxxxx> Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx Signed-off-by: Noralf Trønnes <noralf@xxxxxxxxxxx> --- Noralf Trønnes (6): drm/gem: shadow_fb_access: Prepare imported buffers for CPU access drm/gud: Fix UBSAN warning drm/gud: Don't retry a failed framebuffer flush drm/gud: Split up gud_flush_work() drm/gud: Prepare buffer for CPU access in gud_flush_work() drm/gud: Use the shadow plane helper drivers/gpu/drm/drm_gem_atomic_helper.c | 13 ++- drivers/gpu/drm/gud/gud_drv.c | 1 + drivers/gpu/drm/gud/gud_internal.h | 1 + drivers/gpu/drm/gud/gud_pipe.c | 198 +++++++++++++++----------------- drivers/gpu/drm/solomon/ssd130x.c | 10 +- drivers/gpu/drm/tiny/gm12u320.c | 10 +- drivers/gpu/drm/tiny/ofdrm.c | 10 +- drivers/gpu/drm/tiny/simpledrm.c | 10 +- drivers/gpu/drm/udl/udl_modeset.c | 11 +- 9 files changed, 117 insertions(+), 147 deletions(-) --- base-commit: 7257702951305b1f0259c3468c39fc59d1ad4d8b change-id: 20221122-gud-shadow-plane-ae37a95d4d8d Best regards, -- Noralf Trønnes <noralf@xxxxxxxxxxx>