Hi, I encountered huge-grown memory leak in recently update and investigated by valgrind. The leak found in _tnl_UpdateFixedFunctionProgram that was 'state_key key' keep created always.
==5636== 1,319,960 bytes in 32,999 blocks are definitely lost in loss record 63 of 65 ==5636== at 0x4005B0E: calloc (vg_replace_malloc.c:397) ==5636== by 0x452ADD4: _mesa_calloc (imports.c:78) ==5636== by 0x458BF3A: _tnl_UpdateFixedFunctionProgram (t_vp_build.c:122) ==5636== by 0x44D9485: r300UpdateShaders (r300_state.c:2115) ==5636== by 0x44DCB38: r300RunTCLRender (r300_render.c:407) ==5636== by 0x4577262: _tnl_run_pipeline (t_pipeline.c:158) ==5636== by 0x45777E0: _tnl_draw_prims (t_draw.c:402) ==5636== by 0x4576594: vbo_save_playback_vertex_list (vbo_save_draw.c:220) ==5636== by 0x450CDC2: execute_list (dlist.c:5757) ==5636== by 0x451017D: _mesa_CallList (dlist.c:6841) ==5636== by 0x4565BBB: neutral_CallList (vtxfmt_tmp.h:298) ==5636== by 0x8049CC8: do_draw (in /usr/bin/glxgears) diff --git a/src/mesa/tnl/t_vp_build.c b/src/mesa/tnl/t_vp_build.c index 2b1eefe..e83d842 100644 --- a/src/mesa/tnl/t_vp_build.c +++ b/src/mesa/tnl/t_vp_build.c @@ -1573,6 +1573,9 @@ void _tnl_UpdateFixedFunctionProgram( GLcontext *ctx ) _mesa_reference_vertprog(ctx, &ctx->VertexProgram._TnlProgram, newProg); } + else { + FREE(key); + } _mesa_reference_vertprog(ctx, &ctx->VertexProgram._TnlProgram, newProg); _mesa_reference_vertprog(ctx, &ctx->VertexProgram._Current, newProg); ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel