* [Bug 48954] New: nv25 PGRAPH error and X freeze
@ 2012-04-20 9:25 bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
[not found] ` <bug-48954-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
0 siblings, 1 reply; 5+ messages in thread
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2012-04-20 9:25 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
https://bugs.freedesktop.org/show_bug.cgi?id=48954
Bug #: 48954
Summary: nv25 PGRAPH error and X freeze
Classification: Unclassified
Product: xorg
Version: git
Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
Severity: normal
Priority: medium
Component: Driver/nouveau
AssignedTo: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
ReportedBy: noviktor-9Vj9tDbzfuSlVyrhU4qvOw@public.gmane.org
QAContact: xorg-team-go0+a7rfsptAfugRpC6u6w@public.gmane.org
Created attachment 60373
--> https://bugs.freedesktop.org/attachment.cgi?id=60373
Kernel log from boot to error on nv25
I am running nouveau git kernel 3.4.0-rc2-g965a47f, xf86-video-nouveau ver.
fb3a36b and xorg-server 1.12.0 on nv25 card and I am getting PGRAPH erros
nouveau 0000:01:00.0: PGRAPH - ERROR nsource: LIMIT_COLOR nstatus:
PROTECTION_FAULT
nouveau 0000:01:00.0: PGRAPH - ch 1/4 class 0x009f mthd 0x0308 data 0x00240771
X then freezes but ssh or SysRq works. Additionally some icons on Gnome 3
fall-back mode have white rectangle in background instead of being transparent.
Didn't happen before libdrm rewrite.
Fastest way to reproduce seems to be right clicking to open pop-up menu or
opening drop-down selections - error happens in a few attempts.
On nv11 it seems not to crash, but some icons still have white background.
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
^ permalink raw reply [flat|nested] 5+ messages in thread[parent not found: <bug-48954-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>]
* [PATCH] nv04/exa: Reset destination surface offset in the same call of NV04EXACopy [not found] ` <bug-48954-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/> @ 2012-05-26 20:15 ` Viktor Novotný [not found] ` <1338063320-9274-1-git-send-email-noviktor-9Vj9tDbzfuSlVyrhU4qvOw@public.gmane.org> 2012-06-08 7:26 ` [Bug 48954] nv25 PGRAPH error and X freeze bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ 1 sibling, 1 reply; 5+ messages in thread From: Viktor Novotný @ 2012-05-26 20:15 UTC (permalink / raw) To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW Fixes FDO bug #48954. Signed-off-by: Viktor Novotný <noviktor@seznam.cz> --- src/nv04_exa.c | 15 ++++++++------- 1 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/nv04_exa.c b/src/nv04_exa.c index 7ede9d9..ca92868 100644 --- a/src/nv04_exa.c +++ b/src/nv04_exa.c @@ -220,7 +220,7 @@ NV04EXACopy(PixmapPtr pdpix, int srcX, int srcY, int dstX, int dstY, int split_dstY = NOUVEAU_ALIGN(dstY + 1, 64); int split_height = split_dstY - dstY; - if (nouveau_pushbuf_space(push, 16, 1, 0)) + if (nouveau_pushbuf_space(push, 16, 2, 0)) return; if ((width * height) >= 200000 && pNv->pspix != pNv->pdpix && @@ -249,7 +249,13 @@ NV04EXACopy(PixmapPtr pdpix, int srcX, int srcY, int dstX, int dstY, height -= split_height; dstY = 0; pNv->pmpix = pdpix; - } else + } + + BEGIN_NV04(push, NV01_BLIT(POINT_IN), 3); + PUSH_DATA (push, (srcY << 16) | srcX); + PUSH_DATA (push, (dstY << 16) | dstX); + PUSH_DATA (push, (height << 16) | width); + if (pNv->pmpix) { struct nouveau_bo *dst_bo = nouveau_pixmap_bo(pdpix); @@ -258,11 +264,6 @@ NV04EXACopy(PixmapPtr pdpix, int srcX, int srcY, int dstX, int dstY, pNv->pmpix = NULL; } - BEGIN_NV04(push, NV01_BLIT(POINT_IN), 3); - PUSH_DATA (push, (srcY << 16) | srcX); - PUSH_DATA (push, (dstY << 16) | dstX); - PUSH_DATA (push, (height << 16) | width); - if ((width * height) >= 512) PUSH_KICK(push); } -- 1.7.8.6 _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/nouveau ^ permalink raw reply related [flat|nested] 5+ messages in thread
[parent not found: <1338063320-9274-1-git-send-email-noviktor-9Vj9tDbzfuSlVyrhU4qvOw@public.gmane.org>]
* Re: [PATCH] nv04/exa: Reset destination surface offset in the same call of NV04EXACopy [not found] ` <1338063320-9274-1-git-send-email-noviktor-9Vj9tDbzfuSlVyrhU4qvOw@public.gmane.org> @ 2012-06-07 12:51 ` Marcin Slusarz [not found] ` <20120607123627.GA3114-OI9uyE9O0yo@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Marcin Slusarz @ 2012-06-07 12:51 UTC (permalink / raw) To: Viktor Novotný; +Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Ben Skeggs On Sat, May 26, 2012 at 10:15:20PM +0200, Viktor Novotný wrote: > Fixes FDO bug #48954. > > Signed-off-by: Viktor Novotný <noviktor@seznam.cz> > --- Reviewed-by: Marcin Slusarz <marcin.slusarz@gmail.com> It seems this code was buggy since it was introduced in "nv04-nv40/exa: Make the copy hook blit downwards for non-overlapping regions." (OFFSET_DESTIN was not zeroed for the second part), only "WIP: port to new libdrm" made it more apparent. > src/nv04_exa.c | 15 ++++++++------- > 1 files changed, 8 insertions(+), 7 deletions(-) > > diff --git a/src/nv04_exa.c b/src/nv04_exa.c > index 7ede9d9..ca92868 100644 > --- a/src/nv04_exa.c > +++ b/src/nv04_exa.c > @@ -220,7 +220,7 @@ NV04EXACopy(PixmapPtr pdpix, int srcX, int srcY, int dstX, int dstY, > int split_dstY = NOUVEAU_ALIGN(dstY + 1, 64); > int split_height = split_dstY - dstY; > > - if (nouveau_pushbuf_space(push, 16, 1, 0)) > + if (nouveau_pushbuf_space(push, 16, 2, 0)) > return; > > if ((width * height) >= 200000 && pNv->pspix != pNv->pdpix && > @@ -249,7 +249,13 @@ NV04EXACopy(PixmapPtr pdpix, int srcX, int srcY, int dstX, int dstY, > height -= split_height; > dstY = 0; > pNv->pmpix = pdpix; > - } else > + } > + > + BEGIN_NV04(push, NV01_BLIT(POINT_IN), 3); > + PUSH_DATA (push, (srcY << 16) | srcX); > + PUSH_DATA (push, (dstY << 16) | dstX); > + PUSH_DATA (push, (height << 16) | width); > + > if (pNv->pmpix) { > struct nouveau_bo *dst_bo = nouveau_pixmap_bo(pdpix); > > @@ -258,11 +264,6 @@ NV04EXACopy(PixmapPtr pdpix, int srcX, int srcY, int dstX, int dstY, > pNv->pmpix = NULL; > } > > - BEGIN_NV04(push, NV01_BLIT(POINT_IN), 3); > - PUSH_DATA (push, (srcY << 16) | srcX); > - PUSH_DATA (push, (dstY << 16) | dstX); > - PUSH_DATA (push, (height << 16) | width); > - > if ((width * height) >= 512) > PUSH_KICK(push); > } > -- _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/nouveau ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20120607123627.GA3114-OI9uyE9O0yo@public.gmane.org>]
* Re: [PATCH] nv04/exa: Reset destination surface offset in the same call of NV04EXACopy [not found] ` <20120607123627.GA3114-OI9uyE9O0yo@public.gmane.org> @ 2012-06-08 7:32 ` Ben Skeggs 0 siblings, 0 replies; 5+ messages in thread From: Ben Skeggs @ 2012-06-08 7:32 UTC (permalink / raw) To: Marcin Slusarz; +Cc: Ben Skeggs, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW On Thu, Jun 07, 2012 at 02:51:00PM +0200, Marcin Slusarz wrote: > On Sat, May 26, 2012 at 10:15:20PM +0200, Viktor Novotný wrote: > > Fixes FDO bug #48954. > > > > Signed-off-by: Viktor Novotný <noviktor-9Vj9tDbzfuSlVyrhU4qvOw@public.gmane.org> > > --- > > Reviewed-by: Marcin Slusarz <marcin.slusarz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Thanks a lot, nice catch. I've pushed the fix to nouveau git. > > It seems this code was buggy since it was introduced in "nv04-nv40/exa: Make > the copy hook blit downwards for non-overlapping regions." (OFFSET_DESTIN was > not zeroed for the second part), only "WIP: port to new libdrm" made it more > apparent. > > > src/nv04_exa.c | 15 ++++++++------- > > 1 files changed, 8 insertions(+), 7 deletions(-) > > > > diff --git a/src/nv04_exa.c b/src/nv04_exa.c > > index 7ede9d9..ca92868 100644 > > --- a/src/nv04_exa.c > > +++ b/src/nv04_exa.c > > @@ -220,7 +220,7 @@ NV04EXACopy(PixmapPtr pdpix, int srcX, int srcY, int dstX, int dstY, > > int split_dstY = NOUVEAU_ALIGN(dstY + 1, 64); > > int split_height = split_dstY - dstY; > > > > - if (nouveau_pushbuf_space(push, 16, 1, 0)) > > + if (nouveau_pushbuf_space(push, 16, 2, 0)) > > return; > > > > if ((width * height) >= 200000 && pNv->pspix != pNv->pdpix && > > @@ -249,7 +249,13 @@ NV04EXACopy(PixmapPtr pdpix, int srcX, int srcY, int dstX, int dstY, > > height -= split_height; > > dstY = 0; > > pNv->pmpix = pdpix; > > - } else > > + } > > + > > + BEGIN_NV04(push, NV01_BLIT(POINT_IN), 3); > > + PUSH_DATA (push, (srcY << 16) | srcX); > > + PUSH_DATA (push, (dstY << 16) | dstX); > > + PUSH_DATA (push, (height << 16) | width); > > + > > if (pNv->pmpix) { > > struct nouveau_bo *dst_bo = nouveau_pixmap_bo(pdpix); > > > > @@ -258,11 +264,6 @@ NV04EXACopy(PixmapPtr pdpix, int srcX, int srcY, int dstX, int dstY, > > pNv->pmpix = NULL; > > } > > > > - BEGIN_NV04(push, NV01_BLIT(POINT_IN), 3); > > - PUSH_DATA (push, (srcY << 16) | srcX); > > - PUSH_DATA (push, (dstY << 16) | dstX); > > - PUSH_DATA (push, (height << 16) | width); > > - > > if ((width * height) >= 512) > > PUSH_KICK(push); > > } > > -- > _______________________________________________ > Nouveau mailing list > Nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org > http://lists.freedesktop.org/mailman/listinfo/nouveau ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug 48954] nv25 PGRAPH error and X freeze [not found] ` <bug-48954-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/> 2012-05-26 20:15 ` [PATCH] nv04/exa: Reset destination surface offset in the same call of NV04EXACopy Viktor Novotný @ 2012-06-08 7:26 ` bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ 1 sibling, 0 replies; 5+ messages in thread From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2012-06-08 7:26 UTC (permalink / raw) To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW https://bugs.freedesktop.org/show_bug.cgi?id=48954 Ben Skeggs <skeggsb-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #1 from Ben Skeggs <skeggsb-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2012-06-08 00:26:44 PDT --- I've pushed a patch to nouveau git which should fix this issue. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-06-08 7:32 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-20 9:25 [Bug 48954] New: nv25 PGRAPH error and X freeze bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
[not found] ` <bug-48954-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>
2012-05-26 20:15 ` [PATCH] nv04/exa: Reset destination surface offset in the same call of NV04EXACopy Viktor Novotný
[not found] ` <1338063320-9274-1-git-send-email-noviktor-9Vj9tDbzfuSlVyrhU4qvOw@public.gmane.org>
2012-06-07 12:51 ` Marcin Slusarz
[not found] ` <20120607123627.GA3114-OI9uyE9O0yo@public.gmane.org>
2012-06-08 7:32 ` Ben Skeggs
2012-06-08 7:26 ` [Bug 48954] nv25 PGRAPH error and X freeze bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.