From: Vitaliy Makkoveev Subject: Re: Intel GPU, ghosting after zzz or ZZZ To: Walter Alejandro Iglesias Cc: tech@openbsd.org Date: Tue, 26 May 2026 20:28:42 +0300 On Tue, May 26, 2026 at 10:12:31AM +0200, Walter Alejandro Iglesias wrote: > Vitaliy, > > > On Mon, May 25, 2026 at 10:00:44PM +0300, Vitaliy Makkoveev wrote: > > > I also have the problem with wscons screen burner on ALDERLAKE. I don't > > > know how describe it, so the screeshot [1]. After screen unblan, the > > > output happens only in upper left corner, the upper half of the first > > > line. The other screen contains garbage. > > > > > Just to clear up a doubt. Could you try the diff below, please? > > This diff flips the order in which rasops_show_screen and > drm_client_dev_restore are called. Notice inteldrm_doswitch is called > before inteldrm_burner_cb: > > void > inteldrm_attachhook(struct device *self) > { > ... > task_set(&dev_priv->switchtask, inteldrm_doswitch, dev_priv); > task_set(&dev_priv->burner_task, inteldrm_burner_cb, dev_priv); > > With this diff after screen on, my ALDERLAKE machine has no garbage on screen, screen is the same as it was before screen off. It has no output on screen until I do tty switch with Ctl + Alt + F*. After tty switch everything works as before sceen burner. > > Index: i915_driver.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_driver.c,v > diff -u -p -u -p -r1.30 i915_driver.c > --- i915_driver.c 30 Apr 2026 04:33:06 -0000 1.30 > +++ i915_driver.c 26 May 2026 07:57:22 -0000 > @@ -2077,8 +2077,8 @@ inteldrm_doswitch(void *v) > struct drm_device *dev = &dev_priv->drm; > struct rasops_info *ri = &dev_priv->ro; > > - rasops_show_screen(ri, dev_priv->switchcookie, 0, NULL, NULL); > drm_client_dev_restore(dev); > + rasops_show_screen(ri, dev_priv->switchcookie, 0, NULL, NULL); > > if (dev_priv->switchcb) > (*dev_priv->switchcb)(dev_priv->switchcbarg, 0, 0); > @@ -2094,8 +2094,8 @@ inteldrm_enter_ddb(void *v, void *cookie > if (cookie == ri->ri_active) > return; > > - rasops_show_screen(ri, cookie, 0, NULL, NULL); > drm_client_dev_restore(dev); > + rasops_show_screen(ri, cookie, 0, NULL, NULL); > } > > int > > > -- > Walter >