i915 driver regression in Skylake GPU
I am reporting a regression in the i915 DRM driver between kernel release 4.5 (working) and 5.14 (non-working) with Skylake integrated graphics, on the following PCI ID:
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
00:02.0 0300: 8086:1912 (rev 06)
CPU model: Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz
In Linux 5.14, any direct writes to the bitmap mapped by kms_bo_map() do not appear on the screen with the i915 Skylake driver. All other GPUs (older Intel integrated graphics, nVidia/nouveau and ATI/AMD GPUs) work fine and reflect updates immediately on the screen as the bitmap object is written into (via memcpy/etc).
I'm not using page-flipping, but I discovered a work-around: If I call drmModeSetCrtc() on the same buffer after writing changes to the bitmap, then the changes get updated on the display.
However because this extra function call was not required before, I'm reporting this as a regression. I'm pasting my KMS setup code and screen-redraw code below, in case you are able to determine if I'm doing something wrong.
Thanks, -Byron