Hello,

Several VTK tests have been failing when using depth peeling with the
nightly mesa development tree.  The tests die with an assertion failure
inside mesa:

main/context.c:632: delete_shader_cb: Assertion `shProg->Type == 0x9999'
failed.

I think the problem is in shader/shader_api.c in the function
_mesa_delete_shader:

   sh->DeletePending = GL_TRUE;
   sh->RefCount--;
   if (sh->RefCount <= 0) {
      _mesa_free_shader(ctx, sh);
   }

This deletes the shader object when the reference count reaches zero.
However this fails to remove the ctx->Shared->ShaderObjects hash table
entry for the shader.  Later when the gl context is destroyed the line

   _mesa_HashDeleteAll(ss->ShaderObjects, delete_shader_cb, ctx);

in main/context.c causes all hash table entry objects to be deleted.
This attempts to delete the shader object again.  Since the memory has
been re-used the assertion fails of course.  I fixed the problem in my
own mesa checkout by adding the line:

      _mesa_HashRemove(ctx->Shared->ShaderObjects, shader);

just after the _mesa_free_shader call above.  I'm not sure that is quite
the right place for it but hopefully a mesa dev can take it from here.

Thanks,
-Brad



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Mesa3d-dev mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to