[Mesa-dev] [Bug 64568] SIGSEGV src/mesa/main/bufferobj.c:291
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Tue May 14 08:58:28 PDT 2013
https://bugs.freedesktop.org/show_bug.cgi?id=64568
José Fonseca <jfonseca at vmware.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|mesa-dev at lists.freedesktop. |maraeo at gmail.com
|org |
--- Comment #3 from José Fonseca <jfonseca at vmware.com> ---
The problem is that st_init_limits is called *after* _mesa_init_buffer_objects.
(gdb) break st_init_limits
Breakpoint 1 at 0x7ffff67e8f6e: file src/mesa/state_tracker/st_extensions.c,
line 69.
(gdb) break _mesa_init_buffer_objects
Breakpoint 2 at 0x7ffff68206cb: file src/mesa/main/bufferobj.c, line 610.
(gdb) r
Starting program: /usr/bin/glxinfo -l
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
name of display: :0.0
Breakpoint 2, _mesa_init_buffer_objects (ctx=0x6931f0) at
src/mesa/main/bufferobj.c:610
warning: Source file is more recent than executable.
610 memset(&DummyBufferObject, 0, sizeof(DummyBufferObject));
(gdb) c
Continuing.
Breakpoint 1, st_init_limits (st=0x6e92a0) at
src/mesa/state_tracker/st_extensions.c:69
warning: Source file is more recent than executable.
69 struct pipe_screen *screen = st->pipe->screen;
(gdb)
Not sure what's the best way of fixing this, but I'll go ahead and commit a
workaround, as this affects all apps:
commit a149f9d4c792455efd46af46093f61a9144451af
Author: José Fonseca <jfonseca at vmware.com>
Date: Tue May 14 16:55:56 2013 +0100
mesa/st: Workaround fdo bug 64568.
Effectively reverting the problematic hunk of
commit 614ee25077b7ffafeb87b22563d01856824fb4bc
diff --git a/src/mesa/state_tracker/st_extensions.c
b/src/mesa/state_tracker/st_extensions.c
index b64d363..982e652 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -279,10 +279,15 @@ void st_init_limits(struct st_context *st)
st->ctx->Extensions.ARB_uniform_buffer_object = GL_TRUE;
c->UniformBufferOffsetAlignment =
screen->get_param(screen, PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT);
+ /* FIXME: _mesa_init_buffer_objects() already has been, and
+ * ctx->UniformBufferBindings allocated, so unfortunately we can't just
+ * change MaxUniformBufferBindings a posteriori. */
+#if 0
c->MaxCombinedUniformBlocks = c->MaxUniformBufferBindings =
c->VertexProgram.MaxUniformBlocks +
c->GeometryProgram.MaxUniformBlocks +
c->FragmentProgram.MaxUniformBlocks;
+#endif
}
}
I'm also surprised this didn't affect r600g. I see thousands of regressions
with piglit on softpipe/llvmpipe. Does the same not happen with r600g?
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130514/3e0329df/attachment.html>
More information about the mesa-dev
mailing list