[Bug 32188] radeon evergreen (5xxx) segfault (Komodo Edit, other apps)

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Jan 24 03:32:45 PST 2011


https://bugs.freedesktop.org/show_bug.cgi?id=32188

--- Comment #41 from Michel Dänzer <michel at daenzer.net> 2011-01-24 03:32:44 PST ---
(In reply to comment #40)
> So all the issues seem to be fixed by the patch in comment 38 according to
> feedback on IRC.  My current hypothesis is that we end up mapping the cbuf bo
> in PrepareSolid() or PrepareComposite(), then never end up adding any verts to
> the vbo, or never end up calling DoneSolid() or DoneComposite().  Perhaps an
> EXA bug in some versions of the xserver?

There have certainly been cases where EXA called the Prepare/Done hooks but not
the actual operation hook in between. Dave fixed at least one of them at some
point, though it might still be a good idea to make the driver robust against
this.

I've been wondering if any of these issues might be related to running out of
CS space during operation hook calls. The hooks in radeon_exa_funcs.c and
radeon_exa_render.c handle this by calling the Done hook followed by
radeon_cs_flush_indirect(), but I can't seem to find any corresponding code for
>= R6xx.


> @@ -108,14 +108,6 @@ void radeon_cs_flush_indirect(ScrnInfoPtr pScrn)
>      if (ret)
>        ErrorF("space check failed in flush\n");
> 
> -    if (accel_state->cbuf.vb_bo) {
> -       ret = radeon_cs_space_check_with_bo(info->cs,
> -                                           accel_state->cbuf.vb_bo,
> -                                           RADEON_GEM_DOMAIN_GTT, 0);
> -       if (ret)
> -           ErrorF("space check failed in flush\n");
> -    }
> -
>      if (info->reemit_current2d && info->state_2d.op)
>          info->reemit_current2d(pScrn, info->state_2d.op);

Why would this no longer be necessary? Where is it checked whether the constant
buffer will fit?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the xorg-driver-ati mailing list