On Wed, Sep 24, 2008 at 2:23 PM, Ian Romanick <[EMAIL PROTECTED]> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Keith and Eric,
>
> Starting with Mesa commit 33fef8be825ee8ec6abc0c2ffd9a3a967d84df88 I'm
> seeing consistent assertion failures in GEM-based Mesa builds.
> Specifically, I'm seeing:
>
> teapot: intel_buffer_objects.c:247: intel_bufferobj_unmap: Assertion
> `intel_obj' failed.
>
> I haven't really investigated it beyond git-bisect yet. I'm hoping that
> one of you will see something obvious. Thoughts?
Most likely the "Null buffer object" is being mapped/unmapped here.
There are quite a few cases through core mesa where we do checks for
if (bufferObj->Name != 0) {
do things one way, for proper buffer obj's
} else {
do things in a very similar way for the NULL buffer obj (ie
traditional array data)
}
That code is missing in this instance. Note that in almost every case
the NULL bufferobj code is what the regular bufferobj code would
degenerate to if the MapBuffer() call returned NULL.
Ideally core mesa should be able to treat the NULL BufferObject in the
same path as regular bufferobject & not have to special case every
place where it might be used.
Maybe the easiest way to do that would be to add something like a:
void *_mesa_map_buffer_object( GLcontext *ctx, struct gl_buffer_object
*BufferObj, ... )
{
if (BufferObj->Name == 0)
return NULL;
return ctx->Driver.MapBufferObj( ctx, BufferObj, ... );
}
and use that in place of direct calls to the driver function
throughout mesa. There'd be a need to examine each usage to see if
this was safe.
In the meantime, either adding the Name==0 check to the vbo code, or
returning NULL in the driver code would probably fix the issue.
Keith
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev