http://bugs.freedesktop.org/show_bug.cgi?id=10966
Summary: workaround to avoid the assert main/renderbuffer.c:2041: _mesa_add_renderbuffer:... Product: Mesa Version: 6.5 Platform: x86 (IA32) OS/Version: Linux (All) Status: NEW Severity: normal Priority: medium Component: Mesa core AssignedTo: mesa3d-dev@lists.sourceforge.net ReportedBy: [EMAIL PROTECTED] I own a VIA EPIA800ML motherboard, with an Unichrome adapter : chipset CLE266. My Ubuntu 7.04 has installed Mesa-6.5.2, but, as far as I have seen, the same bug exists in 6.5.3. When launching wine on any 3D soft, I got the famous main/renderbuffer.c:2041: _mesa_add_renderbuffer: assertion "bufferName == BUFFER_DEPTH || bufferName == BUFFER_STENCIL || fb->Attachment[bufferName].Renderbuffer == ((void *)0)" failed (translated from french) This is due to an attempt to allocate a second front render buffer into the current frame buffer. This happens when calling calculate_buffer_parameters from viaMakeCurrent in mesa-6.5.2/src/mesa/drivers/dri/unichrome/via_context.c. The problem is when it calls viaMakeCurrent two times with different contexts but with the same framebuffer, mesa tries to allocate a second renderbuffer. This bug is mentionned by the via developer, in via_context.c (look for the word "funny"). Very bad to have suggested no solution. So (after many attempts, without any explanations about the code), I propose to change a little the file : ..../mesa-6.5.?/src/mesa/main/renderbuffer.c: * remove the assert, line 2041 in 6.5.2 (or 2075 in 6.5.3) * insert these 6 lines after the second assert, line 2086 in 6.5.3 : /* do not allocate a new renderbuffer, use the current one */ if (bufferName != BUFFER_DEPTH && bufferName != BUFFER_STENCIL && fb->Attachment[bufferName].Renderbuffer) { /* no allocation OR delete previous renderbuffer */ return; OR _mesa_remove_renderbuffer(fb,bufferName); } Note : you have to choose between return or _mesa_remove... I tried both with apparently similar results. Now, there is no more "...:2041 assert failed" and my software seem to run much better. But I am totally unsure about the memory (safe or not to reuse/share such a buffer, safe or not for other drivers ?) I do not know which one, the return or the _mesa_remove is better... I must say this is not enough, there is still a big bug in the via unichrome driver, which I report in another post (wrong addresses (?) for 3D drawing). I thank you a lot for your attention and wish my bug report to be useful. Pierre username pierre.nerzic domain free.fr (replace domain by at) -- 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 DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev