[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mesa3d-dev
Subject:    [Mesa3d-dev] glean crash and glx context cleanup
From:       Pierre Ossman <pierre-list () ossman ! eu>
Date:       2009-10-30 21:01:20
Message-ID: 20091030220120.0fd29ef2 () mjolnir ! ossman ! eu
[Download RAW message or body]

This is a MIME-formatted message.  If you see this text it means that your
E-mail software does not support MIME-formatted messages.

[Attachment #2 (multipart/signed)]
This is a MIME-formatted message.  If you see this text it means that your
E-mail software does not support MIME-formatted messages.


I'm having issues with glean crashing with r600 because of some GLX
context handling issues. I've been looking over the code, and to be
honest I don't understand how things are ever supposed to work.
Hopefully someone here has more insight.

In MakeContextCurrent() the old context is first unbound from the
drawable using driUnbindContext, then destroyed using
driDestroyContext. The problem occurs in the radeon driver which
flushes any outstanding commands when the context is destroyed, but at
that point the drawable is already unbound (and hence no longer
accessible).

The drawable reference is killed in dri_util.c:151:

    pcp->driDrawablePriv = pcp->driReadablePriv = NULL;

And here's the traceback from when the radeon driver still expects a
reachable drawable:

#3  0x00007ffff7690a16 in radeonGetLock (rmesa=0x6f3aa0, flags=<value optimized out>) \
at radeon_lock.c:65 #4  0x00007ffff768bc11 in rcommonFlushCmdBuf (rmesa=0x6f3aa0, \
caller=0x7ffff7837af2 "radeonFlush") at radeon_common.c:1233 #5  0x00007ffff768d9ef \
in radeonFlush (ctx=0x6f7cc0) at radeon_common.c:1129 #6  0x00007ffff7687283 in \
radeon_firevertices (radeon=0x6f3aa0) at radeon_cmdbuf.h:118 #7  r600DeleteTexture \
(radeon=0x6f3aa0) at r600_tex.c:359 #8  0x00007ffff77130b6 in _mesa_free_texture_data \
(ctx=0x6f7cc0) at main/texstate.c:792 #9  0x00007ffff76a4f85 in \
_mesa_free_context_data (ctx=0x6f7cc0) at main/context.c:980 #10 0x00007ffff76a50ee \
in _mesa_destroy_context (ctx=0x6f7cc0) at main/context.c:1042 #11 0x00007ffff768a9c1 \
in radeonDestroyContext (driContextPriv=<value optimized out>) at \
radeon_common_context.c:329 #12 0x00007ffff7668690 in driDestroyContext \
(pcp=0x6f0790) at ../common/dri_util.c:545 #13 0x00007ffff7b3809f in \
driDestroyContext (context=0x6f0750, psc=0x6e5e30, dpy=<value optimized out>) at \
dri_glx.c:495 #14 0x00007ffff7b15c34 in MakeContextCurrent (dpy=0x6dabd0, \
draw=8388614, read=8388614, gc=0xa931a0) at glxcurrent.c:454 #15 0x0000000000470dc8 \
in GLEAN::WindowSystem::makeCurrent (this=<value optimized out>, r=<value optimized \
out>, w=...) at winsys.cpp:253 #16 0x0000000000412778 in \
GLEAN::BaseTest<GLEAN::MultiTestResult>::run (this=0x6cc9c0, environment=<value \
optimized out>) at tbase.h:295 #17 0x000000000040d0bc in main (argc=6, \
argv=0x7fffffffe5c8) at main.cpp:140

-- 
     -- Pierre Ossman

  WARNING: This correspondence is being monitored by FRA, a
  Swedish intelligence agency. Make sure your server uses
  encryption for SMTP traffic and consider using PGP for
  end-to-end encryption.


["signature.asc" (application/pgp-signature)]

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference

_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic