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 09:23:26 +0200

Download raw body.

Thread
On Mon, May 25, 2026 at 10:00:44PM +0300, Vitaliy Makkoveev wrote:
> On Mon, May 25, 2026 at 08:19:56AM +0200, Walter Alejandro Iglesias wrote:
> > 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.
> > 
> > 
> 
> Sorry for breaking your thread, but I have the same problem with wscons
> screen burner on my GEMINILAKE. The following diff fixes it to me. I'm
> not very close to DRM, so this could be not the right place.
> 
> 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.
> 
> The diff below doesn't fixes the problem, but at least I see no garbage
> on the screen.
> 
> 1. https://ibb.co/DHWcWNx5

Let's see if I understood.  The image shows the screen *without* the
garbage removed by your diff, right?  That doesn't look at all as the
issue I described, it seems like a second problem.  Test to confirm:
*without* your patch, if once the screen wakes up you switch to another
console and return, what remains and what stays?

> 
> Index: sys/dev/pci/drm/i915/i915_driver.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_driver.c,v
> retrieving revision 1.30
> diff -u -p -r1.30 i915_driver.c
> --- sys/dev/pci/drm/i915/i915_driver.c	30 Apr 2026 04:33:06 -0000	1.30
> +++ sys/dev/pci/drm/i915/i915_driver.c	25 May 2026 18:53:02 -0000
> @@ -2154,8 +2154,10 @@ inteldrm_burner_cb(void *arg1)
>  	struct drm_i915_private *dev_priv = arg1;
>  	struct drm_device *dev = &dev_priv->drm;
>  	struct drm_fb_helper *helper = dev->fb_helper;
> +	struct rasops_info *ri = &dev_priv->ro;
>  
>  	drm_fb_helper_blank(dev_priv->burner_fblank, helper->info);
> +	rasops_show_screen(ri, ri->ri_active, 0, NULL, NULL);
>  }
>  
>  int

-- 
Walter