----- Original Message ----- > > > ----- Original Message ----- > > On 03/06/2014 09:59 AM, jfons...@vmware.com wrote: > > > From: José Fonseca <jfons...@vmware.com> > > > > > > With the recent SRGB changes all my automated OpenGL llvmpipe tests > > > (piglit, conform, glretrace) start asserting with the backtrace below. > > > > > > I'm hoping this change will fix it. I'm not entirely sure, as this > > > doesn't happen in my development machine (the bug probably depends on > > > the exact X visual). > > > > > > Anyway, it seems the sensible thing to do here. > > > > > > Program terminated with signal 5, Trace/breakpoint trap. > > > #0 _debug_assert_fail (expr=expr@entry=0x7fa324df2ed7 "0", > > > file=file@entry=0x7fa324e3fc30 "src/mesa/state_tracker/st_format.c", > > > line=line@entry=758, function=function@entry=0x7fa324e40160 > > > <__func__.34798> "st_pipe_format_to_mesa_format") at > > > src/gallium/auxiliary/util/u_debug.c:281 > > > #0 _debug_assert_fail (expr=expr@entry=0x7fa324df2ed7 "0", > > > file=file@entry=0x7fa324e3fc30 "src/mesa/state_tracker/st_format.c", > > > line=line@entry=758, function=function@entry=0x7fa324e40160 > > > <__func__.34798> "st_pipe_format_to_mesa_format") at > > > src/gallium/auxiliary/util/u_debug.c:281 > > > No locals. > > > #1 0x00007fa3241d22b3 in st_pipe_format_to_mesa_format > > > (format=format@entry=PIPE_FORMAT_R8G8B8A8_SRGB) at > > > src/mesa/state_tracker/st_format.c:758 > > > __func__ = "st_pipe_format_to_mesa_format" > > > #2 0x00007fa3241c8ec5 in st_new_renderbuffer_fb > > > (format=format@entry=PIPE_FORMAT_R8G8B8A8_SRGB, samples=0, > > > sw=<optimised out>) at src/mesa/state_tracker/st_cb_fbo.c:295 > > > strb = 0x19e8420 > > > #3 0x00007fa32409d355 in st_framebuffer_add_renderbuffer > > > (stfb=stfb@entry=0x19e7fa0, idx=<optimised out>) at > > > src/mesa/state_tracker/st_manager.c:314 > > > rb = <optimised out> > > > format = PIPE_FORMAT_R8G8B8A8_SRGB > > > sw = <optimised out> > > > #4 0x00007fa32409e635 in st_framebuffer_create (st=0x19e7fa0, > > > st=0x19e7fa0, stfbi=0x19e7a30) at > > > src/mesa/state_tracker/st_manager.c:458 > > > stfb = 0x19e7fa0 > > > mode = {rgbMode = 1 '\001', floatMode = 0 '\000', > > > colorIndexMode = 0 '\000', doubleBufferMode = 0, stereoMode = > > > 0, haveAccumBuffer = 0 '\000', haveDepthBuffer = 1 '\001', > > > haveStencilBuffer = 1 '\001', redBits = 8, greenBits = 8, > > > blueBits = 8, alphaBits = 8, redMask = 0, greenMask = 0, > > > blueMask = 0, alphaMask = 0, rgbBits = 32, indexBits = 0, > > > accumRedBits = 0, accumGreenBits = 0, accumBlueBits = 0, > > > accumAlphaBits = 0, depthBits = 24, stencilBits = 8, > > > numAuxBuffers = 0, level = 0, visualRating = 0, > > > transparentPixel = 0, transparentRed = 0, transparentGreen = > > > 0, transparentBlue = 0, transparentAlpha = 0, > > > transparentIndex > > > = 0, sampleBuffers = 0, samples = 0, maxPbufferWidth = 0, > > > maxPbufferHeight = 0, maxPbufferPixels = 0, > > > optimalPbufferWidth = 0, optimalPbufferHeight = 0, swapMethod > > > = 0, bindToTextureRgb = 0, bindToTextureRgba = 0, > > > bindToMipmapTexture = 0, bindToTextureTargets = 0, yInverted > > > = > > > 0, sRGBCapable = 1} > > > idx = <optimised out> > > > #5 st_framebuffer_reuse_or_create (st=st@entry=0x19dfce0, > > > fb=<optimised out>, stfbi=stfbi@entry=0x19e7a30) at > > > src/mesa/state_tracker/st_manager.c:728 > > > No locals. > > > #6 0x00007fa32409e8cc in st_api_make_current (stapi=<optimised out>, > > > stctxi=0x19dfce0, stdrawi=0x19e7a30, streadi=0x19e7a30) at > > > src/mesa/state_tracker/st_manager.c:747 > > > st = 0x19dfce0 > > > stdraw = 0x640064 > > > stread = 0x1300000006 > > > ret = <optimised out> > > > #7 0x00007fa324074a20 in XMesaMakeCurrent2 (c=c@entry=0x195bb00, > > > drawBuffer=0x19e7e90, readBuffer=0x19e7e90) at > > > src/gallium/state_trackers/glx/xlib/xm_api.c:1194 > > > No locals. > > > #8 0x00007fa3240783c8 in glXMakeContextCurrent (dpy=0x194e900, > > > draw=8388610, read=8388610, ctx=0x195bac0) at > > > src/gallium/state_trackers/glx/xlib/glx_api.c:1177 > > > drawBuffer = <optimised out> > > > readBuffer = <optimised out> > > > xmctx = 0x195bb00 > > > glxCtx = 0x195bac0 > > > firsttime = 0 '\000' > > > no_rast = 0 '\000' > > > #9 0x00007fa32407852f in glXMakeCurrent (dpy=<optimised out>, > > > drawable=<optimised out>, ctx=<optimised out>) at > > > src/gallium/state_trackers/glx/xlib/glx_api.c:1211 > > > No locals. > > > --- > > > src/mesa/state_tracker/st_format.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/src/mesa/state_tracker/st_format.c > > > b/src/mesa/state_tracker/st_format.c > > > index 25577ac..0311a2b 100644 > > > --- a/src/mesa/state_tracker/st_format.c > > > +++ b/src/mesa/state_tracker/st_format.c > > > @@ -753,6 +753,8 @@ st_pipe_format_to_mesa_format(enum pipe_format > > > format) > > > > > > case PIPE_FORMAT_B8G8R8X8_SRGB: > > > return MESA_FORMAT_B8G8R8X8_SRGB; > > > + case PIPE_FORMAT_R8G8B8A8_SRGB: > > > + return MESA_FORMAT_B8G8R8A8_SRGB; > > > > > > Hmm, we don't have a MESA_FORMAT_R8G8B8A8_SRGB to match that pipe format > > so I'm not sure this is correct. > > > > But if this fixes the crash, it's > > better than nothing. Acked-by: Brian Paul <bri...@vmware.com> > > I'm hoping it does. I'm actually not sure as I couln't repro. I hope it > doesn't only moves the symptom away...
I think you're right, the problem won't go completely away so soon. I think the problem is the st_manager.c changes in commit 4c68c6dcffe6c738d563eb0e0650bb865a5457b2 . In particular these lines: if (_mesa_is_desktop_gl(st->ctx)) { struct pipe_screen *screen = st->pipe->screen; const enum pipe_format srgb_format = util_format_srgb(stfbi->visual->color_format); if (srgb_format != PIPE_FORMAT_NONE && screen->is_format_supported(screen, srgb_format, PIPE_TEXTURE_2D, stfbi->visual->samples, PIPE_BIND_RENDER_TARGET)) mode.sRGBCapable = GL_TRUE; } We are adding the sRGBCapable visual and using SRGB format if the pipe drivers supports the SRGB variant, but we are not checking that the SRGB format variant actually exists in Mesa. I think we'll need to comment out this `mode.sRGBCapable = GL_TRUE` assignment until this is addressed. Jose _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev