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

Attachment: gears-valgrind.log.bz2
Description: BZip2 compressed data

Reply via email to