NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/55198: When the video card is Intel Mobile 965GMExpress,i915drmkmshas error CPU pipe A FIFO underrun, also X freezes/hangs



The following reply was made to PR kern/55198; it has been noted by GNATS.

From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: jdbaker%consolidated.net@localhost, tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: kern/55198: When the video card is Intel Mobile 965GMExpress,i915drmkmshas
	 error CPU pipe A FIFO underrun, also X freezes/hangs
Date: Mon, 22 Jun 2020 03:56:09 +0900

 > > These are the ones I know about and have tested.  I don't know what the
 > > "generation" values are for the working chips.
 
 I've confirmed both Gen2 830M and 855GM works with the default SNA
 (at least no screen corruption) on NetBSD/i386 9.0.
 
 Xorg.0.log files are here:
  https://gist.github.com/tsutsui/1e17959dc3f9896be47b91a70bdb2c12
  https://gist.github.com/tsutsui/3f31b17c09e6c3a71728b7fd7b689030
  https://gist.github.com/tsutsui/609f04aab6d36047b13e68722f7ac7f1
 
 > https://github.com/NetBSD/xsrc/blob/trunk/external/mit/xf86-video-intel/dist/src/intel_module.c
 > https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units
 
 Here is a rough summary SNA status per chipset and generation:
 
 ---
 Gen1
  810 OK (SNA is not used)
 
 Gen2
  830M  OK
  845M  OK (has the same .gen value as intel_i830_info)
  855GM OK
  865G  ??
 
 Gen3
  915G (GMA 900)  OK
  945G (GMA 950)  NG
  G33  (GMA 3100) ??
  N455 (GMA 3150) NG (maybe shares the same struct intel_device_info as G33?)
 
 Gen4
  Q965 (GMA 3000)    ?? (defined as PCI_CHIP_I965_Q in intel_driver.h) (*) 
  G965 (GMA X3000)   ?? (defined as PCI_CHIP_I965_G in intel_driver.h)
  G41  (GMA X4500)   OK
  G45  (GMA X4500HD) OK (shares the same struct intel_device_info as G41?)
 
 Gen5
  Ironlake ??
 
 Gen6
  SandyBridge ??
 
 (*) Wikipedia says:
   https://en.wikipedia.org/wiki/Intel_GMA#Generation_four_based
   ``The GMA 3000 3D core is very different from the X3000,''
   ``It (GMA 3000)_is based more directly on the previous generation
     GMA 900 and GMA 950 graphics, and belonging to the same "i915"
     family with them.''
   But no independent struct intel_device_info is defined in
   intel_module.c for G965 and Q965??
 ---
 
 Anyway I'll commit the attached updated change and send a pullup request.
 (we can update the list if there is a new report)
 
 ---
 Index: intel_module.c
 ===================================================================
 RCS file: /cvsroot/xsrc/external/mit/xf86-video-intel/dist/src/intel_module.c,v
 retrieving revision 1.1.1.4
 diff -u -p -d -r1.1.1.4 intel_module.c
 --- intel_module.c	20 Mar 2019 06:34:02 -0000	1.1.1.4
 +++ intel_module.c	21 Jun 2020 16:10:25 -0000
 @@ -567,9 +567,8 @@ _xf86findDriver(const char *ident, XF86C
  	return NULL;
  }
  
 -static enum accel_method { NOACCEL, SNA, UXA } get_accel_method(void)
 +static enum accel_method { NOACCEL, SNA, UXA } get_accel_method(enum accel_method accel_method)
  {
 -	enum accel_method accel_method = DEFAULT_ACCEL_METHOD;
  	XF86ConfDevicePtr dev;
  
  	if (hosted())
 @@ -641,7 +640,17 @@ intel_scrn_create(DriverPtr		driver,
  #endif
  
  #if KMS
 -	switch (get_accel_method()) {
 +	enum accel_method default_accel_method = DEFAULT_ACCEL_METHOD;
 +	/*
 +	 * XXX
 +	 * Force UXA by default for Gen3 chipsets (except 915) to avoid
 +	 * screen corruption.  (PR/54995, PR/55198)
 +	 */
 +	if ((unsigned)((struct intel_device_info *)match_data)->gen > 030 &&
 +	    (unsigned)((struct intel_device_info *)match_data)->gen < 050)
 +		default_accel_method = UXA;
 +
 +	switch (get_accel_method(default_accel_method)) {
  #if USE_SNA
  	case NOACCEL:
  	case SNA:
 
 ---
 Izumi Tsutsui
 


Home | Main Index | Thread Index | Old Index