When a context is created, r200CreateContext(), r200InitTextureFuncs() is called which then calls driInitTextureObjects(). This code places the default textures onto the swap list.
Later the context is destroyed, r200DestroyContext(). rmesa->glCtx->Shared->RefCount is checked to be 1, which it is for my test program. When preparing to delete textures, an assert is then checked: assert( is_empty_list( & rmesa->swapped ) );
How can the swap list ever be empty? It always contains the default textures. If I skip the assert and go on into driDestroyTextureHeap() the default textures get destroyed.
Is this assert just wrong? How are the default textures supposed to get destroyed?
I believe the assertion is wrong. The way drivers get built for XFree86 all those assertions get disabled, so they don't get a lot of coverage. The "correct" test would be that the only elements on the swapped list were the placeholder entries. I'm not sure it's worth the effort to code that, but if you did nobody would scold you. :)
------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel