[i965GM] [drm:i915_gem_execbuffer] *ERROR* Failed to pin buffers -22

Bug #450901 reported by Craig
40
This bug affects 7 people
Affects Status Importance Assigned to Milestone
mesa (Ubuntu)
Fix Released
Low
Unassigned

Bug Description

Binary package hint: xserver-xorg-video-intel

I tried to play nexuiz (simply starting it and entering single player mode) and noticed that the performance is horrific (on the order of seconds per frame!). I also noticed many rendering problems, such as walls/floors blinking in and out, and the gun not being rendered at all.

Looking at dmesg, I see these two lines repeatedly literally hundreds of times:
[ 204.160861] [drm:i915_gem_execbuffer] *ERROR* Failed to pin buffers -22
[ 204.217307] [drm:i915_gem_object_pin_and_relocate] *ERROR* Relocation beyond target object bounds: obj ffff88006bdb3480 target 742 delta 8192 size 8192.

(The "742" number changes, but the rest is constant)

ProblemType: Bug
Architecture: amd64
Date: Tue Oct 13 22:01:23 2009
DistroRelease: Ubuntu 9.10
MachineType: LENOVO 6465CTO
Package: xserver-xorg-video-intel 2:2.9.0-1ubuntu2
PccardctlIdent:
 Socket 0:
   no product info available
PccardctlStatus:
 Socket 0:
   no card
ProcCmdLine: BOOT_IMAGE=/vmlinuz-2.6.31-14-generic root=/dev/mapper/hostname-root ro quiet splash
ProcEnviron:
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.31-14.46-generic
RelatedPackageVersions:
 xserver-xorg 1:7.4+3ubuntu5
 libgl1-mesa-glx 7.6.0-1ubuntu4
 libdrm2 2.4.14-1ubuntu1
 xserver-xorg-video-intel 2:2.9.0-1ubuntu2
 xserver-xorg-video-ati 1:6.12.99+git20090825.fc74e119-0ubuntu3
SourcePackage: xserver-xorg-video-intel
Uname: Linux 2.6.31-14-generic x86_64
XsessionErrors:
 (gnome-settings-daemon:3722): GLib-CRITICAL **: g_propagate_error: assertion `src != NULL' failed
 (gnome-settings-daemon:3722): GLib-CRITICAL **: g_propagate_error: assertion `src != NULL' failed
 (nautilus:3816): Eel-CRITICAL **: eel_preferences_get_boolean: assertion `preferences_is_initialized ()' failed
 (polkit-gnome-authentication-agent-1:3851): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
 (gnome-panel:3815): Gdk-WARNING **: /build/buildd/gtk+2.0-2.18.2/gdk/x11/gdkdrawable-x11.c:952 drawable is not a pixmap or window
dmi.bios.date: 04/25/2008
dmi.bios.vendor: LENOVO
dmi.bios.version: 7LETB7WW (2.17 )
dmi.board.name: 6465CTO
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvr7LETB7WW(2.17):bd04/25/2008:svnLENOVO:pn6465CTO:pvrThinkPadT61:rvnLENOVO:rn6465CTO:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 6465CTO
dmi.product.version: ThinkPad T61
dmi.sys.vendor: LENOVO
fglrx: Not loaded
system:
 distro: Ubuntu
 architecture: x86_64kernel: 2.6.31-14-generic

Revision history for this message
Craig (candrews-integralblue) wrote :
Bryce Harrington (bryce)
Changed in xserver-xorg-video-intel (Ubuntu):
status: New → Confirmed
Revision history for this message
Henrik Rydberg (rydberg) wrote :

This bug seems awfully connected to 429241, where apparently one problem was fixed. Where there is one bug there is two...

Revision history for this message
Camilla Löwy (elmindreda) wrote :

Not sure if this is of any use, but I get this on up-to-date Karmic (as of 2009-10-29) on a GMA965 when my OpenGL renderer attempts to draw geometry using VBO element arrays.

Playing around with my buffer pool allocator, it seems the "target" ID corresponds to the buffer object used for elements. Nothing drawn this way shows up on screen, but geometry drawn using VBO vertex buffers only shows up fine with no complaints from the kernel.

If it'd be of interest, I can try to hack together a minimal example that triggers this. My current source base, while Free, is a bit too large for this purpose.

Revision history for this message
Timo Wiren (timo-wiren) wrote :

I'm affected by this bug in Quake Live using Kubuntu 9.10 64-bit final release and Intel G45 (X4500HD).

Geir Ove Myhr (gomyhr)
summary: - [drm:i915_gem_execbuffer] *ERROR* Failed to pin buffers -22
+ [i965GM] [drm:i915_gem_execbuffer] *ERROR* Failed to pin buffers -22
tags: added: 965gm corruption karmic performance
Revision history for this message
Geir Ove Myhr (gomyhr) wrote :

Camilla, a minimal example that triggers the problems is usually incredibly useful for the upstream developers, so we would appreciate that. If it involves a non-trivial amount of time investment you may want to try with xorg-edgers (https://launchpad.net/~xorg-edgers/+archive/ppa) enabled first, which has the bleeding edge drivers and mesa. You may also try a recent mainline kernel build from http://kernel.ubuntu.com/~kernel-ppa/mainline/ (see info at https://wiki.ubuntu.com/KernelTeam/MainlineBuilds) in case improvement to direct rendering has solved this.

Revision history for this message
Camilla Löwy (elmindreda) wrote :

Here is a small program that triggers the problem on my machine (Esprimo U9200, Intel C2D, GMA965) running up-to-date Karmic amd64. As far as I can tell from testing and reading the VBO spec, this should work, but with VBO element arrays on the above machine it does not. Further details in the header of the source file.

Revision history for this message
Geir Ove Myhr (gomyhr) wrote :

Thank you for an excellent test program. I didn't figure out the point of it at first as I was running with xorg-edgers, and pressing or holding space didn't make a difference. Downgrading to standard Karmic triggered the bug, though. So fo you others wanting to test: The program displays a red square that is rotating, except that when space is held down, the drawing method is different and on a buggy installation the animation stops.

So the bug is no longer present upstream. I was testing with xorg-edgers with:
mesa 7.7.0~git20091030.9c3197ef-0ubuntu0tormod
xserver-xorg-video-intel 2:2.9.0+git20091026.10946118-0ubuntu0tormod
libdrm 2.4.15+git20091030.b0b96636-0ubuntu0tormod
xorg-server 2:1.6.4.901+git20091005+server-1.6-branch.c07b2368-0ubuntu0sarvatt

My best guess is that mesa is what makes the difference. If anyone is willing to git-bisect from 7.6.0 which is currently in Karmic and find the patch that fixes this, it may be considered for Karmic updates if it does not depend on other patches. It should be relatively easy given Camilla's test case, but still somewhat time consuming.

Some information:
https://wiki.ubuntu.com/X/GitUsage
https://wiki.ubuntu.com/X/Bisecting

Changed in xserver-xorg-video-intel (Ubuntu):
status: Confirmed → Triaged
importance: Undecided → Low
Revision history for this message
Henrik Rydberg (rydberg) wrote : Re: [Bug 450901] Re: [i965GM] [drm:i915_gem_execbuffer] *ERROR* Failed to pin buffers -22

Camilla Berglund wrote:
> Here is a small program that triggers the problem on my machine (Esprimo
> U9200, Intel C2D, GMA965) running up-to-date Karmic amd64. As far as I
> can tell from testing and reading the VBO spec, this should work, but
> with VBO element arrays on the above machine it does not. Further
> details in the header of the source file.

Excellent, pressing space bar stops the rendering also on my machine [1],
running karmic i386.

[1] MacBookAir 1,1 with Intel Corporation Mobile GM965/GL960 Integrated Graphics
Controller (rev 03)

Revision history for this message
Henrik Rydberg (rydberg) wrote :

Upgrading to libgl1-mesa-dri version 7.7.0~git20091031 does indeed solve the rendering problem.

Revision history for this message
Geir Ove Myhr (gomyhr) wrote :

The fix has also made it into mesa_7_6_branch upstream. This is being tracked in https://launchpad.net/~ubuntu-x-swat/+archive/x-updates which may be a more stable workaround than running the 7.7 branch from xorg-edgers. This should also make it easier to bisect if anybody wants, but I'm not sure a patch will make it into Karmic at this point. Should anyone want to do it, I can recommend the detailed blog post that Michael Strecke has written: http://tuxpool.blogspot.com/2009/12/bisecting-mesa-bug-446632.html .

Revision history for this message
Geir Ove Myhr (gomyhr) wrote :

I just verified that Camilla's test case works well in Lucid, so I'm closing this bug.

Changed in xserver-xorg-video-intel (Ubuntu):
status: Triaged → Fix Released
affects: xserver-xorg-video-intel (Ubuntu) → mesa (Ubuntu)
Revision history for this message
Camilla Löwy (elmindreda) wrote :

Before you close this, please verify that the Second Life / Snowglobe client works too, because even on Karmic Mesa bits that allowed my example program to run correctly, the SL client still triggered this bug. You may have to manually enable VBO from the preferences dialog to trigger it. I can't check myself anymore as I gave up on Intel and got a machine with a GeForce.

Revision history for this message
Geir Ove Myhr (gomyhr) wrote :

Do you have detailed instructions for how to test Second Live / Snowglobe client for someone who never used it before? I have started a `sudo apt-get install nexuiz` to run the test the original reporter suggested, but with my current bandwidth it will only be done tomorrow.

Revision history for this message
Geir Ove Myhr (gomyhr) wrote :

I have tested nexiuz, and although I haven't used it before, I couldn't identify anything wrong with rendering. I also didn't get any error messages in dmesg output. The performance was pretty bad (I guess 5 fps at 1024x768, don't know how to get the exact number), but at least the main problem has been fixed.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.