Index | Thread | Search

From:
Vitaliy Makkoveev <mvs@openbsd.org>
Subject:
Re: Intel GPU, ghosting after zzz or ZZZ
To:
Walter Alejandro Iglesias <wai@roquesor.com>
Cc:
tech@openbsd.org
Date:
Wed, 27 May 2026 21:45:04 +0300

Download raw body.

Thread
  • Vitaliy Makkoveev:

    Intel GPU, ghosting after zzz or ZZZ

  • Jonathan Gray:

    Intel GPU, ghosting after zzz or ZZZ

  • 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.
    > 
    > 
    > 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
    > 
    
    GEMINILAKE machine.
    
    Without this diff it has no issues with zzz. Wake up after ZZZ
    produces the overlapping symbols from kernel and userland output fixable
    with Ctl - Alt - F* switching. With this diff applied wake up from both
    zzz and ZZZ works fine. I see overlapping symbols from kernel and
    userland output for a short time until inteldrm_activate() call after
    wake up.
    
    ALDERLAKE machine.
    
    ZZZ works identically to GEMINILAKE machine. Without this diff the
    wake up after ZZZ produces overlapping symbols from kernel and userland
    output fixable with Ctl - Alt - F* switching. This diff fixes it.
    
    The zzz aka suspend doesn't work on this machine, it just freezes.
    
    This diff is also ok mvs@.
    
    
    
    and ALDERLAKE machines.
    
    
    
  • Vitaliy Makkoveev:

    Intel GPU, ghosting after zzz or ZZZ

  • Jonathan Gray:

    Intel GPU, ghosting after zzz or ZZZ