http://bugs.freedesktop.org/show_bug.cgi?id=12241
------- Comment #1 from [EMAIL PROTECTED] 2007-08-31 14:41 PST -------
First, you'll want to rebuild Mesa from sources in debug mode (make
linux-dri-debug).
A stack trace at the time of the failed assertion could be helpful.
Otherwise, I think I can guess what's going on.
Texture objects (see struct gl_texturea_object) are reference counted. That
means anytime we assign a texture object pointer, we need to use the
_mesa_reference_texobj() function to make sure the refcounts are handled
properly.
Looking at the r300 driver, there's a few places where pointers to texture
objects are present. For example, in r300DestroyTexObj() there's:
for (i = 0; i < rmesa->radeon.glCtx->Const.MaxTextureUnits; i++) {
if (rmesa->state.texture.unit[i].texobj == t) {
rmesa->state.texture.unit[i].texobj = NULL;
}
}
That should be changed to:
for (i = 0; i < rmesa->radeon.glCtx->Const.MaxTextureUnits; i++) {
if (rmesa->state.texture.unit[i].texobj == t) {
_mesa_reference_texobj(&rmesa->state.texture.unit[i].texobj, NULL);
}
}
Another one is in r300UpdateTexture:
rmesa->state.texture.unit[unit].texobj = t;
should be:
_mesa_reference_texobj(&rmesa->state.texture.unit[unit].texobj, t);
Actually, these changes will trigger some warnings because the 'texobj' above
is a r300TexObjPtr, not a gl_texture_object *. So either add some casting or
write a wrapper for _mesa_reference_texobj() that takes r300TexObjPtr types
instead.
Once the refcounting is done properly, the problem should be fixed.
--
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel