From: Walter Alejandro Iglesias Subject: Re: Intel GPU, ghosting after zzz or ZZZ To: Vitaliy Makkoveev Cc: tech@openbsd.org Date: Tue, 26 May 2026 20:00:58 +0200 On Tue, May 26, 2026 at 08:28:42PM +0300, Vitaliy Makkoveev wrote: > 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. So, the weird half line from the picture does not happen? > It has no output > on screen until I do tty switch with Ctl + Alt + F*. After tty switch > everything works as before sceen burner. Do you mean that the console is unresponsive? > > > > > 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 > > -- Walter