Bug#549588: [PATCH] Re: Bug#549588: xserver-xorg-core: Loading glx module causes X server to crash
This bug has been fixed in Ubuntu with the following patches. mesa (7.6.0-1ubuntu3) karmic; urgency=low * Add 109_revert-dma-reuse.patch: Fix assertion failure leading to crash on kwin when compositing is enabled. This reverts commit 284a7af27. (LP: #446578) -- Bryce Harrington Tue, 13 Oct 2009 00:52:32 -0700 mesa (7.6.0-1ubuntu2) karmic; urgency=low * Add 108_fix_scissors_regression.patch: Fix window drawing regression in Kwin on older Radeon hardware. (LP: #446425) -- Bryce Harrington Fri, 09 Oct 2009 14:12:44 -0700 108_fix_scissors_regression.patch has already been committed in mesa upstream. 109_revert-dma-reuse.patch has not. I have tested these patches on my own system and can confirm that it solves the KDE crashes and graphics corruption issues on my Dell laptop with a Radeon RS690 GPU. -- Eric commit 194ede4bf97547ce8a61587ede0b0a5054955783 Author: Alex Deucher Date: Fri Oct 9 15:44:32 2009 -0400 radeon: fix scissor regression fixes fdo bug 24248 diff --git a/src/mesa/drivers/dri/r600/r700_state.c b/src/mesa/drivers/dri/r600/r700_state.c index 124469b..98f116d 100644 --- a/src/mesa/drivers/dri/r600/r700_state.c +++ b/src/mesa/drivers/dri/r600/r700_state.c @@ -1269,11 +1269,15 @@ void r700SetScissor(context_t *context) //--- return; } if (context->radeon.state.scissor.enabled) { - /* r600 has exclusive scissors */ x1 = context->radeon.state.scissor.rect.x1; y1 = context->radeon.state.scissor.rect.y1; - x2 = context->radeon.state.scissor.rect.x2 + 1; - y2 = context->radeon.state.scissor.rect.y2 + 1; + x2 = context->radeon.state.scissor.rect.x2; + y2 = context->radeon.state.scissor.rect.y2; + /* r600 has exclusive BR scissors */ + if (context->radeon.radeonScreen->kernel_mm) { + x2++; + y2++; + } } else { if (context->radeon.radeonScreen->driScreen->dri2.enabled) { x1 = 0; diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c index 9817ff8..8032cbc 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.c +++ b/src/mesa/drivers/dri/radeon/radeon_common.c @@ -229,16 +229,15 @@ void radeonUpdateScissor( GLcontext *ctx ) } if (!rmesa->radeonScreen->kernel_mm) { /* Fix scissors for dri 1 */ - __DRIdrawablePrivate *dPriv = radeon_get_drawable(rmesa); x1 += dPriv->x; - x2 += dPriv->x; + x2 += dPriv->x + 1; min_x += dPriv->x; - max_x += dPriv->x; + max_x += dPriv->x + 1; y1 += dPriv->y; - y2 += dPriv->y; + y2 += dPriv->y + 1; min_y += dPriv->y; - max_y += dPriv->y; + max_y += dPriv->y + 1; } rmesa->state.scissor.rect.x1 = CLAMP(x1, min_x, max_x); diff -Nurp mesa-7.6-revert-dma-reuse-patched/src/mesa/drivers/dri/r200/radeon_dma.c mesa-7.6-revert-dma-reuse-working/src/mesa/drivers/dri/r200/radeon_dma.c --- mesa-7.6-revert-dma-reuse-patched/src/mesa/drivers/dri/r200/radeon_dma.c 2009-10-08 17:00:00.0 -0700 +++ mesa-7.6-revert-dma-reuse-working/src/mesa/drivers/dri/r200/radeon_dma.c 2009-10-08 17:01:37.0 -0700 @@ -207,6 +207,7 @@ again_alloc: counter on unused buffers for later freeing them from begin of list */ dma_bo = last_elem(&rmesa->dma.free); + assert(dma_bo->bo->cref == 1); remove_from_list(dma_bo); insert_at_head(&rmesa->dma.reserved, dma_bo); } @@ -306,10 +307,6 @@ static int radeon_bo_is_idle(struct rade WARN_ONCE("Your libdrm or kernel doesn't have support for busy query.\n" "This may cause small performance drop for you.\n"); } - /* Protect against bug in legacy bo handling that causes bos stay - * referenced even after they should be freed */ - if (bo->cref != 1) - return 0; return ret != -EBUSY; } @@ -346,9 +343,7 @@ void radeonReleaseDmaRegions(radeonConte foreach_s(dma_bo, temp, &rmesa->dma.wait) { if (dma_bo->expire_counter == time) { WARN_ONCE("Leaking dma buffer object!\n"); - /* force free of buffer so we don't realy start - * leaking stuff now*/ - while ((dma_bo->bo = radeon_bo_unref(dma_bo->bo))) {} + radeon_bo_unref(dma_bo->bo); remove_from_list(dma_bo); FREE(dma_bo); continue; diff -Nurp mesa-7.6-revert-dma-reuse-patched/src/mesa/drivers/dri/r300/radeon_dma.c mesa-7.6-revert-dma-reuse-working/src/mesa/drivers/dri/r300/radeon_dma.c --- mesa-7.6-revert-dma-reuse-patched/src/mesa/drivers/dri/r300/radeon_dma.c 2009-10-08 17:00:00.0 -0700 +++ mesa-7.6-revert-dma-reuse-working/src/mesa/drivers/dri/r300/radeon_dma.c 2009-10-08 17:01:37.0 -0700 @@ -207,6 +207,7 @@ again_alloc: counter on unused buffers for later freeing them from begin of list */ dma_bo = last_elem(&rmesa->dma.free); + assert(dma_bo->bo->cref == 1); remove_from_list(dma_bo); insert_at_head(&rmesa->dma.reserved, dma_bo); } @@ -306,10 +307,6 @@ static int radeon_bo_is_idle(struct rade WARN_ONCE("Your libdrm or kernel doesn't have support for busy query.\n" "This may cause small performance
Bug#549588: xserver-xorg-core: Loading glx module causes X server to crash
Hello, On trečiadienis 21 Spalis 2009 20:27:02 Julien Cristau wrote: > On Wed, Oct 21, 2009 at 20:15:27 +0300, Modestas Vainius wrote: > > The bug is a regression which causes Xserver crash (which by itself > > might mean data loss). > > No, it doesn't mean that at all. Yeah yeah, depends on what is open and how much unsaved data is there. But if this wasn't a regression, grave severity would probably be unjustified even if it makes default KDE setup on most radeon cards almost unusable. -- Modestas Vainius signature.asc Description: This is a digitally signed message part.
Bug#549588: xserver-xorg-core: Loading glx module causes X server to crash
severity 549588 grave tags 549588 upstream retitle 549588 regression: DRI crashes Xserver with many radeon cards thanks Hello, On trečiadienis 14 Spalis 2009 18:17:56 ender wrote: > > > On Mon, 2009-10-05 at 13:18 +0200, Julien Cristau wrote: > > > On Sun, Oct 4, 2009 at 17:30:33 -0400, Arnout Boelens wrote: > > > > X: radeon_bo_legacy.c:207: legacy_is_pending: Assertion > > > > `bo_legacy->is_pending <= bo->cref' failed. > > > > > > I failed to notice this one, Michel says "It's a known bug which was > > > reported upstream a while ago". > > > > See above. > All you need to do is to revert a single commit (see upstream bug report, see ubuntu bug) to fix this random, but very common crash. This bug affects KDE very painfully due to its default settings [1]. It is rather unfortunate, that upstream does not seem to care. But then it comes the time for Debian maintainers to act. The bug is a regression which causes Xserver crash (which by itself might mean data loss). Therefore, up'ing the severity to grave. 1. https://bugs.freedesktop.org/show_bug.cgi?id=24131#c12 -- Modestas Vainius signature.asc Description: This is a digitally signed message part.
Processed: Re: Bug#549588: xserver-xorg-core: Loading glx module causes X server to crash
Processing commands for cont...@bugs.debian.org: > severity 549588 grave Bug #549588 [libgl1-mesa-dri] xserver-xorg-core: Loading glx module causes X server to crash Bug #550691 [libgl1-mesa-dri] xserver-xorg-core: after start mouse pointer leaves trail and xorg crashes shortly afterward Severity set to 'grave' from 'important' Severity set to 'grave' from 'important' > tags 549588 upstream Bug #549588 [libgl1-mesa-dri] xserver-xorg-core: Loading glx module causes X server to crash Bug #550691 [libgl1-mesa-dri] xserver-xorg-core: after start mouse pointer leaves trail and xorg crashes shortly afterward Added tag(s) upstream. Added tag(s) upstream. > retitle 549588 regression: DRI crashes Xserver with many radeon cards Bug #549588 [libgl1-mesa-dri] xserver-xorg-core: Loading glx module causes X server to crash Bug #550691 [libgl1-mesa-dri] xserver-xorg-core: after start mouse pointer leaves trail and xorg crashes shortly afterward Changed Bug title to 'regression: DRI crashes Xserver with many radeon cards' from 'xserver-xorg-core: Loading glx module causes X server to crash' Changed Bug title to 'regression: DRI crashes Xserver with many radeon cards' from 'xserver-xorg-core: after start mouse pointer leaves trail and xorg crashes shortly afterward' > thanks Stopping processing here. Please contact me if you need assistance. Debian bug tracking system administrator (administrator, Debian Bugs database) -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#549588: xserver-xorg-core: Loading glx module causes X server to crash
On Wed, Oct 21, 2009 at 20:15:27 +0300, Modestas Vainius wrote: > The bug is a regression which causes Xserver crash (which by itself > might mean data loss). No, it doesn't mean that at all. Cheers, Julien -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#549588: xserver-xorg-core: Loading glx module causes X server to crash
On Monday 05 October 2009 08:50:47 Michel Dänzer wrote: > reassign 549588 libgl1-mesa-dri 7.6-1 > forwarded 549588 https://bugs.freedesktop.org/show_bug.cgi?id=24131 > kthxbye Thanks, Arnout > On Mon, 2009-10-05 at 13:18 +0200, Julien Cristau wrote: > > On Sun, Oct 4, 2009 at 17:30:33 -0400, Arnout Boelens wrote: > > > X: radeon_bo_legacy.c:207: legacy_is_pending: Assertion > > > `bo_legacy->is_pending <= bo->cref' failed. > > > > I failed to notice this one, Michel says "It's a known bug which was > > reported upstream a while ago". > > See above. smime.p7s Description: S/MIME cryptographic signature
Processed: Re: Bug#549588: xserver-xorg-core: Loading glx module causes X server to crash
Processing commands for cont...@bugs.debian.org: > reassign 549588 libgl1-mesa-dri 7.6-1 Bug #549588 [xserver-xorg-core] xserver-xorg-core: Loading glx module causes X server to crash Bug reassigned from package 'xserver-xorg-core' to 'libgl1-mesa-dri'. Bug No longer marked as found in versions xorg-server/2:1.6.4-2. Bug #549588 [libgl1-mesa-dri] xserver-xorg-core: Loading glx module causes X server to crash There is no source info for the package 'libgl1-mesa-dri' at version '7.6-1' with architecture '' Unable to make a source version for version '7.6-1' Bug Marked as found in versions 7.6-1. > forwarded 549588 https://bugs.freedesktop.org/show_bug.cgi?id=24131 Bug #549588 [libgl1-mesa-dri] xserver-xorg-core: Loading glx module causes X server to crash Set Bug forwarded-to-address to 'https://bugs.freedesktop.org/show_bug.cgi?id=24131'. > kthxbye Stopping processing here. Please contact me if you need assistance. Debian bug tracking system administrator (administrator, Debian Bugs database) -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#549588: xserver-xorg-core: Loading glx module causes X server to crash
reassign 549588 libgl1-mesa-dri 7.6-1 forwarded 549588 https://bugs.freedesktop.org/show_bug.cgi?id=24131 kthxbye On Mon, 2009-10-05 at 13:18 +0200, Julien Cristau wrote: > On Sun, Oct 4, 2009 at 17:30:33 -0400, Arnout Boelens wrote: > > > X: radeon_bo_legacy.c:207: legacy_is_pending: Assertion > > `bo_legacy->is_pending <= bo->cref' failed. > > > I failed to notice this one, Michel says "It's a known bug which was > reported upstream a while ago". See above. -- Earthling Michel Dänzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#549588: xserver-xorg-core: Loading glx module causes X server to crash
On Sun, Oct 4, 2009 at 17:30:33 -0400, Arnout Boelens wrote: > X: radeon_bo_legacy.c:207: legacy_is_pending: Assertion > `bo_legacy->is_pending <= bo->cref' failed. > I failed to notice this one, Michel says "It's a known bug which was reported upstream a while ago". Cheers, Julien -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#549588: xserver-xorg-core: Loading glx module causes X server to crash
On Sun, Oct 4, 2009 at 17:30:33 -0400, Arnout Boelens wrote: > On Sunday 04 October 2009 12:57:18 Julien Cristau wrote: > > On Sun, Oct 4, 2009 at 11:34:40 -0400, Arnout Boelens wrote: > > > Without disabling the glx module, with both the radeon and the radeonHD > > > driver, my X server crashes about 1 minute after logging in. Adding the > > > below module section to xorg.conf prevents the x server from crashing, > > > but also means I do not have any 3D acceleration.. > > > > Please send the log corresponding to that crash. > > See attachment > Looks like the X server is shutting down normally, no crash... Cheers, Julien -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#549588: xserver-xorg-core: Loading glx module causes X server to crash
On Sun, Oct 4, 2009 at 11:34:40 -0400, Arnout Boelens wrote: > Without disabling the glx module, with both the radeon and the radeonHD > driver, > my X server crashes about 1 minute after logging in. Adding the below module > section to xorg.conf prevents the x server from crashing, but also means I do > not have any 3D acceleration.. > Please send the log corresponding to that crash. Cheers, Julien -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org