Index | Thread | Search

From:
Walter Alejandro Iglesias <wai@roquesor.com>
Subject:
Intel GPU, ghosting after zzz or ZZZ
To:
tech@openbsd.org
Date:
Mon, 25 May 2026 08:19:56 +0200

Download raw body.

Thread
Does your machine have an intel gpu?

When you run zzz or ZZZ from wscons, do you experience "ghosting" after
resuming?

By ghosting I mean the same valid output that was there before suspend
or hibernate but partially printed again, overlapping valid output, in
the form of characters scattered here and there or black squares which
size can vary from 4x4 characters to half screen.  And when you switch
to and back from another virtual terminal[1] (Ctrl+Alt+F?) all that
ghost goes away.

If that's also your case, try the diff below please.  Your feedback will
be useful.  (Include dmesg to let developers know your hardware.)

[1] This last test is important, since in some cases the ghosting can
    be subtle and go unnoticed.  Also, try with different contents in
    the console before zzz or ZZZ, like the output of 'cal -y' which
    is easily recognizable.


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	2 May 2026 11:04:56 -0000
@@ -2519,6 +2519,7 @@ inteldrm_activate(struct device *self, i
 {
 	struct drm_i915_private *dev_priv = (struct drm_i915_private *)self;
 	struct drm_device *dev = &dev_priv->drm;
+	struct rasops_info *ri = &dev_priv->ro;
 	int rv = 0;
 
 	if (dev->dev == NULL || inteldrm_fatal_error)
@@ -2567,6 +2568,7 @@ inteldrm_activate(struct device *self, i
 			i915_pm_resume(self);
 		}
 		drm_client_dev_restore(dev);
+		rasops_show_screen(ri, ri->ri_active, 0, NULL, NULL);
 		rv = config_suspend(dev->dev, act);
 		break;
 	}


-- 
Walter