Am Mittwoch, 6. November 2002 16:46 schrieb Brian Paul: > Bret Towe wrote: > > On Tue, 2002-11-05 at 16:39, Brian Paul wrote: > >>Bret Towe wrote: > >>>i recently grabed the mesa 4.1 branch to test out > >>>mainly to see if the multitexture problem with > >>>celestia was fixed also to see how it looked anyhow after > >>>seeing celestia crash as per the norm i tried using the > >>>LIBGL_ALWAYS_INDIRECT=1 with celestia and it crashs x > >>>everytime for me i would of tested more apps to see > >>>how consistent it is but i get sick of x dieing like that > >>>for very long so i left it alone > >>>in the mornin(for me anyhow) ill try out a few more apps > >>>if you need more info or logs etc let me know ill see it > >>>when i check my mail in the morn > >> > >>I just tried celestia with the 4.1 branch (indirect rendering). > >>It came up fine and I pressed 'd' to run the demo. Eventually, > >>celestia crashed. Looks like a problem in celestia, not Mesa > >>or GLX or DRI. > > > > that crash was prob the multitexture problem that somethin has no clue > > what any more > > What??? > > >>The text in the corners of the window isn't legible. I don't > >>know if it's drawn with glBitmap or texture or what so I'm > >>not sure what the problem is. > >> > >>-Brian > > > > i dunno maybe its just cause im using some optimization under gcc 3.2 > > (-mcpu=athlon -march=athlon -pipe) > > In any case, I found a few problems. Celestia is now working with > indirect rendering perfectly. Here's the story: > > 1. A few functions in Mesa were no-ops, such as glGenTexturesEXT and > glIsTextureEXT. The non-EXT versions were fine. The net effect was > that the array of texture object IDs was left uninitialized. Many > were zero so texture images (the Celestia text) was clobbering each > other. > > I've checked in the fix for this to the Mesa and DRI cvs trees.
Brian could you run your Mesa-4.1 "test apps" through valgrind (maybe purify
or the like), please?
e.g.: r200 trunk
Mesa/demos> valgrind ./gears
[-]
==2635== Warning: noted but unhandled ioctl 0x6452 with no size/direction
hints
==2635== This could cause spurious value errors to appear.
==2635== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a
proper wrapper.
==2635== Warning: noted but unhandled ioctl 0x6452 with no size/direction
hints
==2635== This could cause spurious value errors to appear.
==2635== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a
proper wrapper.
==2635==
==2635== ERROR SUMMARY: 30000 errors from 13 contexts (suppressed: 0 from 0)
==2635== malloc/free: in use at exit: 2720212 bytes in 1028 blocks.
==2635== malloc/free: 1461 allocs, 433 frees, 2752410 bytes allocated.
==2635== For a detailed leak analysis, rerun with: --leak-check=yes
==2635== For counts of detected errors, rerun with: -v
This time with "-v":
[-]
==3581== Invalid write of size 4
==3581== at 0x43502BA1: emit_vec12 (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3581== Address 0x4C1B6008 is not stack'd, malloc'd or free'd
==3581==
==3581== 5028 errors in context 11 of 13:
==3581== Invalid write of size 4
==3581== at 0x43502B9B: emit_vec12 (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3581== Address 0x4C1B6004 is not stack'd, malloc'd or free'd
==3581==
==3581== 5028 errors in context 12 of 13:
==3581== Invalid write of size 4
==3581== at 0x43502B96: emit_vec12 (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3581== Address 0x4C1B6000 is not stack'd, malloc'd or free'd
==3581==
==3581== 14853 errors in context 13 of 13:
==3581== Invalid write of size 4
==3581== at 0x43502B89: emit_vec12 (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3581== Address 0x4C1B69C4 is not stack'd, malloc'd or free'd
==3581== IN SUMMARY: 30000 errors from 13 contexts (suppressed: 0 from 0)
==3581==
==3581== malloc/free: in use at exit: 2720196 bytes in 1027 blocks.
==3581== malloc/free: 1367 allocs, 340 frees, 2741917 bytes allocated.
==3581== For a detailed leak analysis, rerun with: --leak-check=yes
==3581==
--3581-- lru: 175 epochs, 0 clearings.
--3581-- translate: new 11194 (199999 -> 2481173), discard 0 (0 -> 0).
--3581-- dispatch: 8750000 basic blocks, 181/155160 sched events, 99894
tt_fast misses.
--3581-- reg-alloc: 3575 t-req-spill, 444995+27565 orig+spill uis, 56220
total-reg-r.
--3581-- sanity: 180 cheap, 8 expensive checks.
And now with "-v --leak-check=yes":
[-]
==3729== 14853 errors in context 13 of 13:
==3729== Invalid write of size 4
==3729== at 0x43502B89: emit_vec12 (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3729== Address 0x4C2869C4 is not stack'd, malloc'd or free'd
==3729== IN SUMMARY: 30000 errors from 13 contexts (suppressed: 0 from 0)
==3729==
==3729== malloc/free: in use at exit: 2720196 bytes in 1027 blocks.
==3729== malloc/free: 1307 allocs, 280 frees, 2741437 bytes allocated.
==3729==
==3729== searching for pointers to 1027 not-freed blocks.
==3729== checked 83156860 bytes.
==3729==
==3729== definitely lost: 584 bytes in 7 blocks.
==3729== possibly lost: 0 bytes in 0 blocks.
==3729== still reachable: 2719612 bytes in 1020 blocks.
==3729==
==3729== 13 bytes in 1 blocks are definitely lost in loss record 34 of 235
==3729== at 0x40045D2B: malloc (in /usr/lib/valgrind/valgrind.so)
==3729== by 0x40541EAD: resolve_name (in /usr/X11R6/lib/libX11.so.6.2)
==3729== by 0x40542919: _XlcLocaleDirName (in /usr/X11R6/lib/libX11.so.6.2)
==3729== by 0x4053BD6B: _XlcDynamicLoad (in /usr/X11R6/lib/libX11.so.6.2)
==3729==
==3729== 15 bytes in 3 blocks are definitely lost in loss record 35 of 235
==3729== at 0x4004626E: calloc (in /usr/lib/valgrind/valgrind.so)
==3729== by 0x4036AFF3: XF86DRIGetClientDriverName (in
/usr/X11R6/lib/libGL.so.1.2)
==3729==
==3729== 16 bytes in 1 blocks are definitely lost in loss record 40 of 235
==3729== at 0x4004626E: calloc (in /usr/lib/valgrind/valgrind.so)
==3729== by 0x404F814B: XOpenDisplay (in /usr/X11R6/lib/libX11.so.6.2)
==3729== by 0x4036C01F: __glXRegisterExtensions (in
/usr/X11R6/lib/libGL.so.1.2)
==3729==
==3729== 540 bytes in 2 blocks are definitely lost in loss record 187 of 235
==3729== at 0x40045D2B: malloc (in /usr/lib/valgrind/valgrind.so)
==3729== by 0x433B9047: drmMalloc (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3729==
==3729== LEAK SUMMARY:
==3729== definitely lost: 584 bytes in 7 blocks.
==3729== possibly lost: 0 bytes in 0 blocks.
==3729== still reachable: 2719612 bytes in 1020 blocks.
==3729== Reachable blocks (those to which a pointer was found) are not shown.
==3729== To see them, rerun with: --show-reachable=yes
==3729==
--3729-- lru: 117 epochs, 0 clearings.
--3729-- translate: new 11183 (199830 -> 2478202), discard 0 (0 -> 0).
--3729-- dispatch: 5850000 basic blocks, 142/112963 sched events, 62722
tt_fast misses.
--3729-- reg-alloc: 3571 t-req-spill, 444461+27498 orig+spill uis, 56158
total-reg-r.
--3729-- sanity: 131 cheap, 6 expensive checks.
And now with "--show-reachable=yes":
[-]
==3802== 80584 bytes in 1 blocks are still reachable in loss record 229 of 235
==3802== at 0x4004626E: calloc (in /usr/lib/valgrind/valgrind.so)
==3802== by 0x433CC5C8: _mesa_create_context (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3802==
==3802== 117120 bytes in 3 blocks are still reachable in loss record 230 of
235
==3802== at 0x40045D2B: malloc (in /usr/lib/valgrind/valgrind.so)
==3802== by 0x43498792: _tnl_Materialfv (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3802== by 0x43401BE0: _mesa_Calloc (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3802== by 0xC44097E8: ???
==3802==
==3802== 262140 bytes in 1 blocks are still reachable in loss record 231 of
235
==3802== at 0x40045D2B: malloc (in /usr/lib/valgrind/valgrind.so)
==3802== by 0x4035E043: CreateContext (in /usr/X11R6/lib/libGL.so.1.2)
==3802== by 0x4322DED8: ???
==3802==
==3802== 290400 bytes in 6 blocks are still reachable in loss record 232 of
235
==3802== at 0x40045D2B: malloc (in /usr/lib/valgrind/valgrind.so)
==3802== by 0x4342AE06: _ac_cache_init (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3802==
==3802== 399332 bytes in 1 blocks are still reachable in loss record 233 of
235
==3802== at 0x4004626E: calloc (in /usr/lib/valgrind/valgrind.so)
==3802== by 0x43406973: _mesa_align_calloc (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3802==
==3802== 439376 bytes in 214 blocks are still reachable in loss record 234 of
235
==3802== at 0x40045D2B: malloc (in /usr/lib/valgrind/valgrind.so)
==3802== by 0x43406941: _mesa_align_malloc (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3802==
==3802== 780304 bytes in 1 blocks are still reachable in loss record 235 of
235
==3802== at 0x4004626E: calloc (in /usr/lib/valgrind/valgrind.so)
==3802== by 0x4345C63F: _mesa_alloc_pb (in
/usr/X11R6/lib/modules/dri/r200_dri.so)
==3802==
==3802== LEAK SUMMARY:
==3802== definitely lost: 584 bytes in 7 blocks.
==3802== possibly lost: 0 bytes in 0 blocks.
==3802== still reachable: 2719612 bytes in 1020 blocks.
==3802==
--3802-- lru: 265 epochs, 0 clearings.
--3802-- translate: new 11449 (204241 -> 2540463), discard 0 (0 -> 0).
--3802-- dispatch: 13250000 basic blocks, 313/220773 sched events, 157807
tt_fast misses.
--3802-- reg-alloc: 3672 t-req-spill, 455841+28473 orig+spill uis, 57575
total-reg-r.
--3802-- sanity: 289 cheap, 12 expensive checks.
Find the "full" log in the attachment.
Regards,
Dieter
gears-valgrind.log.bz2
Description: BZip2 compressed data
