Index | Thread | Search

From:
Vitaliy Makkoveev <mvs@openbsd.org>
Subject:
Re: Alder Lake ghosting after wscons screen burner (derived from "Re: Intel GPU, ghosting after zzz or ZZZ")
To:
Walter Alejandro Iglesias <wai@roquesor.com>
Cc:
Mark Kettenis <mark.kettenis@xs4all.nl>, Jonathan Gray <jsg@jsg.id.au>, tech@openbsd.org
Date:
Fri, 29 May 2026 01:12:33 +0300

Download raw body.

Thread
  • Vitaliy Makkoveev:

    Intel GPU, ghosting after zzz or ZZZ

  • On Thu, May 28, 2026 at 09:20:51PM +0200, Walter Alejandro Iglesias wrote:
    > +kettenis@
    > 
    > On Thu, May 28, 2026 at 09:05:08PM +0300, Vitaliy Makkoveev wrote:
    > > On Thu, May 28, 2026 at 12:48:37PM +0200, Walter Alejandro Iglesias wrote:
    > > > On Wed, May 27, 2026 at 08:51:29PM +0300, Vitaliy Makkoveev wrote:
    > > > > On Wed, May 27, 2026 at 07:27:47PM +0200, Walter Alejandro Iglesias wrote:
    > > > > > 
    > > > > > I found a function defined in ../drm/drm_fb_helper.c,
    > > > > > drm_fb_helper_restore_fbdev_mode_unlocked() which restores the entire
    > > > > > fbdev display mode (including size).
    > > > > > 
    > > > > 
    > > > > Thanks, this diff completely fixes my issue. ok mvs@
    > > > > 
    > > > > > 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	27 May 2026 13:32:34 -0000
    > > > > > @@ -2154,8 +2154,14 @@ 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);
    > > > > > +
    > > > > > +	if (dev_priv->burner_fblank == FB_BLANK_UNBLANK) {
    > > > > > +		drm_fb_helper_restore_fbdev_mode_unlocked(helper);
    > > > > > +		rasops_show_screen(ri, ri->ri_active, 0, NULL, NULL);
    > > > > > +	}
    > > > > >  }
    > > > > >  
    > > > > >  int
    > > > 
    > > > 
    > > > To confirm your Alder Lake suffers from two different issues.  I'd like
    > > > to know what happens if we remove rasops_show_screen from the diff.
    > > > This should avoid the Alder Lake half-line on top but not the ghosting.
    > > > 
    > > 
    > > No ghosting, no half-line. On both machines.
    > 
    > Then that function alone does the trick.  It does a full reset.
    > 
    > If kettenis@ gives us at least some clue of where is the right place to
    > fix this, I'll try to investigate a new way.
    > 
    
    Mark, I'm very curious, where is the right place? ;)
    
    > 
    > > 
    > > > 
    > > > 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	28 May 2026 10:41:46 -0000
    > > > @@ -2156,6 +2156,8 @@ inteldrm_burner_cb(void *arg1)
    > > >  	struct drm_fb_helper *helper = dev->fb_helper;
    > > >  
    > > >  	drm_fb_helper_blank(dev_priv->burner_fblank, helper->info);
    > > > +	if (dev_priv->burner_fblank == FB_BLANK_UNBLANK && helper)
    > >                                                            ^^^^^^
    > >  This check is useless, we have `helper' dereference in previous line.
    > 
    > Yeah, right.
    > 
    > 
    > > > +		drm_fb_helper_restore_fbdev_mode_unlocked(helper);
    > > >  }
    > > >  
    > > >  int
    > > > 
    > > > 
    > > > 
    > > > 
    > > > -- 
    > > > Walter
    > 
    > -- 
    > Walter
    > 
    
    
  • Vitaliy Makkoveev:

    Intel GPU, ghosting after zzz or ZZZ