Bug 191987

Summary: i810 driver: ADVANCE_LP_RING: outring (0x%x) isn't on a QWord boundary
Product: [openSUSE] SUSE Linux 10.1 Reporter: Stefan Dirsch <sndirsch>
Component: X.OrgAssignee: Stefan Dirsch <sndirsch>
Status: RESOLVED FIXED QA Contact: Stefan Dirsch <sndirsch>
Severity: Major    
Priority: P5 - None CC: behlert, bugproxy, eich, jens-novell, marcoant, morej, suse-beta
Version: Final   
Target Milestone: ---   
Hardware: Other   
OS: Other   
See Also: https://bugzilla.linux.ibm.com/show_bug.cgi?id=23005
Whiteboard: potential hotfix
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: Patch for x86
xorg log from i915 that lacks accelleration
glxinfo information for the i915 chipset
Modified hardware list to allow XGL to work on Intel Uniwill chips

Description Stefan Dirsch 2006-07-12 20:29:59 UTC
SuSE is getting more and more bugreports, where the Xserver/i810
driver does not start (blank screen), which seems to be related to the never ending messages

  "ADVANCE_LP_RING: outring (0x%x) isn't on a QWord boundary"

After disabling any acceleration ('Option "noaccel"')
the Server works fine. Strangely you also need to add 'Option
"SWcursor"' to see the cursor.

Intel 945GM/915GM/855M GPUs seem to be affected, but not on all
Notebooks mainboards. I've seen it on Notebooks with
Uniwill/Micro-Star Intel GPU subvendor.

Alan H. gave us the hint that it is likely related to the ValidatePci() function in xf86Bus.c and always appears together with an error message called "***INVALID MEM ALLOCATION***", which is indeed true. He also comments, that
it then is a problem within the Xserver PCI code or the BIOS. Since the problem does not appear on SUSE 10.0 (X.Org 6.8.2) it seems to be a regression in the PCI code.
Comment 1 Stefan Dirsch 2006-07-12 20:34:31 UTC
*** Bug 163877 has been marked as a duplicate of this bug. ***
Comment 2 Stefan Dirsch 2006-07-12 20:34:43 UTC
*** Bug 167367 has been marked as a duplicate of this bug. ***
Comment 3 Stefan Dirsch 2006-07-12 20:34:50 UTC
*** Bug 168618 has been marked as a duplicate of this bug. ***
Comment 4 Stefan Dirsch 2006-07-12 20:38:18 UTC
We have a notebook available for testing, which also has this problem (transtec).
Comment 5 Stefan Dirsch 2006-07-12 21:12:28 UTC
Egbert just told me that probably removing the ValidatePci() call in xf86Bus.c 
will fix this issue. I'll give it a try ASAP.
Comment 6 Stefan Dirsch 2006-07-14 10:23:03 UTC
Well, what should I say. It works! :-) I'll apply the patch.
Comment 7 Stefan Dirsch 2006-07-14 10:24:07 UTC
Created attachment 93549 [details]
Patch for x86
Comment 8 Stefan Dirsch 2006-07-14 10:25:48 UTC
You can find RPMs for testing in

  ftp://ftp.suse.com/pub/people/sndirsch/RPMS/bug191987
Comment 10 Jens Benecke 2006-07-14 10:31:13 UTC
Does that mean that I can now use 855GM chipset PCs with accelleration and accellerated Xgl? That would be awesome! :-)
Comment 12 Stefan Dirsch 2006-07-14 10:45:29 UTC
> Does that mean that I can now use 855GM chipset PCs with accelleration and
> accellerated Xgl? That would be awesome! :-)
Yes, I hope so. Your feedback about testing these RPMs would be welcome. :-)
Comment 13 Jens Benecke 2006-07-14 10:55:29 UTC
I will give SL 10.1 another try on my notebook as soon as I have time (probably Sunday). Thanks for the work!

Jens
Comment 15 Josh More 2006-07-17 01:28:22 UTC
I have installed the RPMs on 10.1, and it helps, but does not 100% fix the problem.

I can start X, and the cursor appears and I can see rectangles.

However:

1) 3D acceleration does not seem functional
2) I can't seem to get the laptop to run in 1280x800 (13.3") resolution.

My hardware information is still accurate in https://bugzilla.novell.com/show_bug.cgi?id=163877

Here are the important configs, I have tried both with and without DRI support:


Section "Module"
  Load         "glx"
  Load         "type1"
  Load         "extmod"
  Load         "dbe"
  Load         "freetype"
  Load         "v4l"
EndSection


Section "Monitor"
  DisplaySize  286 179
  HorizSync    28-52
  Identifier   "Monitor[0]"
  ModelName    "1280X800@60HZ"
  Option       "DPMS"
  VendorName   "--> LCD"
  VertRefresh  50-60
  UseModes     "Modes[0]"
EndSection


Section "Modes"
  Identifier   "Modes[0]"
  Modeline      "1280x800" 80.58 1280 1344 1480 1680 800 801 804 827
  Modeline      "1280x768" 77.37 1280 1344 1480 1680 768 769 772 794
  Modeline      "1024x768" 61.89 1024 1080 1184 1344 768 769 772 794
  Modeline      "1280x600" 58.78 1280 1328 1456 1632 600 601 604 621
  Modeline      "1024x600" 47.26 1024 1064 1168 1312 600 601 604 621
  Modeline      "800x600" 36.88 800 832 912 1024 600 601 604 621
  Modeline      "768x576" 33.74 768 792 872 976 576 577 580 596
  Modeline      "640x480" 23.06 640 656 720 800 480 481 484 497
  Modeline      "1280x800" 83.46 1280 1344 1480 1680 800 801 804 828
EndSection

Section "Screen"
  DefaultDepth 24
  SubSection "Display"
    Depth      15
    Modes      "1280x800" "1280x768" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480"
  EndSubSection
  SubSection "Display"
    Depth      16
    Modes      "1280x800" "1280x768" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480"
  EndSubSection
  SubSection "Display"
    Depth      24
    Modes      "1280x800" "1280x768" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480"
  EndSubSection
  SubSection "Display"
    Depth      8
    Modes      "1280x800" "1280x768" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480"
  EndSubSection
  Device       "Device[0]"
  Identifier   "Screen[0]"
  Monitor      "Monitor[0]"
EndSection

Section "DRI"
    Group      "video"
    Mode       0660
EndSection


Section "Device"
  BoardName    "915 GM"
  BusID        "0:2:0"
  Driver       "i810"
  Identifier   "Device[0]"
  Option       "NoDDC"
  Option       "DRI"
  Screen       0
  VendorName   "Uniwill Computer Corp"
EndSection
Comment 16 Stefan Dirsch 2006-07-17 01:46:32 UTC
Hmm ... I think you still need ' Option "Swcursor" "on" ' in your Section "Device". Does this help?

For the resolution/3D problem, I need your /var/log/Xorg.0.log file.
Comment 17 Josh More 2006-07-17 02:36:16 UTC
Created attachment 93665 [details]
xorg log from i915 that lacks accelleration

Here is my log for the i915 chipset that does not work with acceleration.

Accelleration works on SUSE 10.0, but not 10.1
Comment 18 Stefan Dirsch 2006-07-17 03:14:20 UTC
> (II) I810(0): direct rendering: Enabled
Hmm ... looks perfect from the Xserver side. What's the output of "LIBGL_DEBUG=1 glxinfo"?
Comment 19 Josh More 2006-07-17 03:27:49 UTC
I just tested with Option "Swcursor" "on", and there is no change in the resolution X.

For what it is worth, I could still see the cursor, even when Swcursor was not set.

The two issues:

1) 3D acceleration does not seem functional
2) I can't seem to get the laptop to run in 1280x800 (13.3") resolution.
    * It dumps down to 1024x768

still exist.
Comment 20 Josh More 2006-07-17 03:29:19 UTC
I just tested the "LIBGL_DEBUG=1 glxinfo", see attachment.

Based on the output, it looks like accelleration is working, but the XGL configurator in Gnome is saying that it is not.  Any other apps I can test to confirm whether or not it is functional?

Comment 21 Josh More 2006-07-17 03:30:05 UTC
Created attachment 93666 [details]
glxinfo information for the i915 chipset
Comment 22 Stefan Dirsch 2006-07-17 07:10:05 UTC
> I just tested with Option "Swcursor" "on", and there is no change in the
> resolution X.
Sorry, I thought you see a rectangled/broken cursor? Did I get you wrong? So the mouse cursor is working, no matter if you set this option or not?

This option is for sure not related to 3D acceleration/resolution.

> direct rendering: No
Is this already on top of Xgl? Otherwise 3D acceleration indeed does not work. I wonder why. Usually setting $LIBGL_DEBUG helps to investigate this issue.
Comment 23 Josh More 2006-07-17 13:15:22 UTC
That is correct.  There is no problem with the cursor or with rectangles using the new RPMs.

The problems are:

1) I can't get the resolution to support the 1280x800 WXGA that my laptop can handle under Windows.

2) When I go to the control center in Gnome, and launch the XGL panel (Desktop Effect Settings), it tells me that my card is not supported and that 3D Acceleration is off.

"Your graphics card is not in Xgl's database"

"3D Acceleration: Disabled"

"3D Desktop: Disabled"

"Your graphics card is not known to be supported by Xgl, and is not currently configured for 3D acceleration.  Xgl cannot be enabled."
Comment 24 Stefan Dirsch 2006-07-17 13:29:38 UTC
Did you configure the resolution with SaX2? Please also attach /etc/sysconfig/videobios. Probably your BIOS does not support this resolution, so we need to workaround this with 855resolution.
Comment 25 Josh More 2006-07-17 13:35:20 UTC
Yes, I configured with SaX2.

Here is /etc/sysconfig/videobios.

## Path:        System/Hardware/Graphicscard
## Description: Additional options for graphics cards
## Type:        yesno
## Default:     no
#
# Should the Intel(R) video BIOS be patched to let the X Server run with
# resolutions unknown to the BIOS? Warning, this is potentially dangerous,
# read the documentation in /usr/share/doc/packages/855resolution.
#
VIDEOBIOS_PATCH="yes"

## Type:        string
## Default:
#
# The options passed to 855resolution, usually 3 numbers:
# the video mode to patch, X and Y resolution.
#
VIDEOBIOS_PARAMETERS="3c 1280 800"


Comment 26 Stefan Dirsch 2006-07-17 13:41:40 UTC
Looks good. And what's the output of "855resolution -l"?
Comment 27 Josh More 2006-07-17 13:46:27 UTC
# 855resolution -l
855resolution version 0.4, by Alain Poirier

Chipset: Unknown (id=0x25908086)
VBIOS type: 2
VBIOS Version: 1235

Mode 30 : 640x480, 8 bits/pixel
Mode 32 : 800x600, 8 bits/pixel
Mode 34 : 1024x768, 8 bits/pixel
Mode 38 : 1280x1024, 8 bits/pixel
Mode 3a : 1600x1200, 8 bits/pixel
Mode 3c : 1280x800, 8 bits/pixel
Mode 41 : 640x480, 16 bits/pixel
Mode 43 : 800x600, 16 bits/pixel
Mode 45 : 1024x768, 16 bits/pixel
Mode 49 : 1280x1024, 16 bits/pixel
Mode 4b : 1600x1200, 16 bits/pixel
Mode 4d : 1280x800, 16 bits/pixel
Mode 50 : 640x480, 32 bits/pixel
Mode 52 : 800x600, 32 bits/pixel
Mode 54 : 1024x768, 32 bits/pixel
Mode 58 : 1280x1024, 32 bits/pixel
Mode 5a : 1600x1200, 32 bits/pixel
Mode 5c : 1280x800, 32 bits/pixel
Comment 28 Stefan Dirsch 2006-07-17 13:55:24 UTC
> Mode 3c : 1280x800, 8 bits/pixel

Strange. Could you try 

  VIDEOBIOS_PARAMETERS="5c 1280 800"

instead and invoke "/etc/init.d/boot.videobios start" again?
Comment 29 Josh More 2006-07-17 16:58:51 UTC
I reset the params and re-invoked /etc/init.d/boot.videobios, there was no change.

I also restarted the system after modifying /etc/sysconfig/videobios, and it did not have an effect either.
Comment 30 Marco Antonio Garcia Prieto 2006-07-17 17:24:07 UTC
Patched and it works ok :-)

These are the steps I've followed:

- Install the RPM file
- According to "855resolution -l" results (identical to Josh Moore's comment 27#) I've changed the /etc/sysconfig/videobios to:
         VIDEOBIOS_PARAMETERS="5c 1280 800"
  which originally was "3c 1280 800".
- Restart the system in console mode (init 3)
- Run SaX2

And SaX2 automatically starts with the 1280x800 resolution!!!

Thanks very much!
Comment 31 Josh More 2006-07-18 18:58:03 UTC
SUCCESS!

The new xorg rpm fixes the 3D acceleration problem on the Uniwill Intel chipsets that I have been able to test with.

Details:

1) Install SLED10 (theoretically, this should work with OpenSUSE 10.1 as well)
2) After installation, reboot into init level 3.
3) Install the new RPM:
   # rpm -Uvh xorg-x11-server-6.9.0-50.15.i586.rpm
4) Copy the new compatibility list to allow XGL to work with this hardware
   # cp xgl-hardware-list /etc/X11/
   ) This adds the following lines:
     G 8086:2592     # Uniwill 915 GM
     G 8086:2792     # Uniwill Mobile 915GM/GMS/910GML Express Graphics Controller
5) Run SaX2, do *NOT* configure at this point, it will exit on you
   # SaX2
6) Go to init level 5
   # init 5
7) Once logged in, run SaX2 again, and set the resolution and turn on DRI (DRI may not be needed, I've not tested that far yet.)
8) Restart X
9) Check that direct rendering is on
   # glxinfo | grep rendering 
10) Check that direct rendering works
   # glxgears
11) Turn on XGL
   # gnome-xgl-settings
12) At this point, the card should be recognized (that's what the hardware list did), but 3D acceleration will claim to be disabled.  See magic step 13:
13) Hold down [SHIFT] and double-click the "disabled" text after 3D acceleration.
14) The "Enable Effects" button will magically appear.
15) Click the "Enable Effects" button
16) Log out and back in, and effects should be working.


NOTE:  I still cannot get the 1280x800 resolution working, should this be a different bug?



Comment 32 Josh More 2006-07-18 19:00:28 UTC
Created attachment 93852 [details]
Modified hardware list to allow XGL to work on Intel Uniwill chips
Comment 33 Stefan Dirsch 2006-07-18 19:14:53 UTC
> NOTE:  I still cannot get the 1280x800 resolution working, should this be a
> different bug?
Yes, I think so.
Comment 34 Josh More 2006-07-18 19:30:53 UTC
More information:

I just tested, and DRI *IS* required for XGL effects on the Intel chipset.

Also, I am getting 1280x800 on one of my Uniwill laptops, but not on the other (different models).

Here is a diff of the outputs of 'hwinfo --gfxcard' on both machines

diff wxga.gfxcard nowxga.gfxcard
18c18
<   IRQ: 209 (10453 events)
---
>   IRQ: 169 (216513 events)
40c40
<   Memory Range: 0x40000000-0x4007ffff (rw,non-prefetchable,disabled)
---
>   Memory Range: 0x80000000-0x8007ffff (rw,non-prefetchable,disabled)

I will investigate some more, and make a new bug, if I need to.
Comment 35 Josh More 2006-07-18 20:33:31 UTC
Found the resolution problem.  It turns out that the documentation for my laptop was incorrect.  The supported resolution is 1280x768, and that works perfectly.

From my perspective, this RPM fixes the bug, provided you use the workaround in comment 31.

Thanks for your help!
Comment 36 Josh More 2006-07-19 20:07:20 UTC
I have just confirmed that this fix also works in OpenSUSE 10.1, provided you first apply all available patched.

Thanks!
Comment 37 Stefan Dirsch 2006-07-21 14:43:28 UTC
Ok. I've applied the patch now for X.Org, which will be used by SUSE 10.2 Alpha3. Closing as FIXED.
Comment 38 Gary Ekker 2006-08-22 16:32:09 UTC
Stefan, would you supply an updated package for SLED10 please?

SwampID 5769
Comment 39 Stefan Dirsch 2006-08-22 17:06:50 UTC
This would be risky! Who will be responsible for testing this with all INtel GPUs on %ix86 + x86_64?
Comment 40 Gary Ekker 2006-08-22 18:47:22 UTC
I don't know, presumably whoever tested it in the first place. Perhaps we can include it when we do testing for bug #173465 and bug #182342 ? Would it be possible to test these together and then release this fix simultaneously with the others?
Comment 41 Stefan Dirsch 2006-08-22 23:44:23 UTC
Sure, although I still don't know how we can help to resolve bug #173465 and bug #182342. We already have done, what we could do to help investigating this issue.

I looked again at the patch, and since it's in the common PCI code, it's even more risky as I thought before. All drivers on all platforms might be affected by this change. 

Well, I think we should try it. Hopefully we won't break the Xserver completely for other drivers/platforms ...
Comment 42 LTC BugProxy 2006-08-23 02:31:01 UTC
------- Additional Comments From romanick@us.ibm.com (prefers email at idr@us.ibm.com)  2006-08-22 22:27 EDT -------
(In reply to comment #94)
> ------ Comment #41 from sndirsch@novell.com  2006-08-22 17:44 MST -------
> I looked again at the patch, and since it's in the common PCI code, it's even
> more risky as I thought before. All drivers on all platforms might be affected
> by this change. 

Has the patch been committed in upstream X.org?  If it has, then I'd recommend
using it.  If it isn't in upstream, do we know why not?  I generally trust
Egbert on these things. 
Comment 43 Stefan Dirsch 2006-08-23 07:02:43 UTC
The patch has not been committed (yet) upstream, but is in use since openSUSE 10.2 Alpha 3 - together with X.Org >= 7.1. 

We still need to discuss and commit so many patches upstream ...
Comment 47 Stefan Dirsch 2006-08-23 14:51:29 UTC
fixed.

/work/src/done/10.1/xorg-x11/

/work/src/done/PATCHINFO/xorg-x11-server.patchinfo.box
/work/src/done/PATCHINFO/xorg-x11-server.patchinfo.sles
Comment 48 Marcus Meissner 2006-09-22 09:44:27 UTC
we released this with the last xorg-x11-server security update
Comment 49 LTC BugProxy 2006-09-22 10:40:55 UTC
----- Additional Comments From hannsj_uhl@de.ibm.com  2006-09-22 06:39 EDT -------
... which mas made available 9/19 .. see
http://support.novell.com/techcenter/psdb/6e32643d70b801d4ec1dad80457e522f.html
... correct ..? 
Comment 50 Stefan Dirsch 2006-09-22 10:48:13 UTC
Yes, this is correct.