Index | Thread | Search

From:
Walter Alejandro Iglesias <wai@roquesor.com>
Subject:
Re: Intel GPU, ghosting after zzz or ZZZ
To:
Vitaliy Makkoveev <mvs@openbsd.org>
Cc:
tech@openbsd.org
Date:
Tue, 26 May 2026 10:12:31 +0200

Download raw body.

Thread
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);



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