Bug 57674

Summary: [llvmpipe] SIGSEGV src/gallium/drivers/llvmpipe/lp_rast.c:501
Product: Mesa Reporter: Vinson Lee <vlee>
Component: OtherAssignee: Jose Fonseca <jfonseca>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: medium CC: jfonseca
Version: gitKeywords: regression
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2012-11-29 06:16:51 UTC
mesa: c1023608002c985b9d72edc64732cd666de2a206

Run piglit fbo-rg-GL_R16 on llvmpipe.

$ ./bin/fbo-rg GL_R16 
Segmentation fault (core dumped)


(gdb) bt
#0  0x00007f14c39aa6f2 in fs26_variant0_partial ()
#1  0x00007f14c0d4b400 in lp_rast_shade_quads_mask (task=0x1bb7888, 
    inputs=0x1bf9050, x=4, y=4, mask=36079)
    at src/gallium/drivers/llvmpipe/lp_rast.c:501
#2  0x00007f14c0d50b35 in do_block_4_3 (task=0x1bb7888, tri=0x1bf9030, 
    plane=0x7ffff0ef63e0, x=4, y=4, c=0x7ffff0ef6300)
    at src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h:61
#3  0x00007f14c0d50e15 in do_block_16_3 (task=0x1bb7888, tri=0x1bf9030, 
    plane=0x7ffff0ef63e0, x=0, y=0, c=0x7ffff0ef63d0)
    at src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h:130
#4  0x00007f14c0d5134b in lp_rast_triangle_3 (task=0x1bb7888, arg=...)
    at src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h:232
#5  0x00007f14c0d4b980 in do_rasterize_bin (task=0x1bb7888, bin=0x7f14c3abb1a0)
    at src/gallium/drivers/llvmpipe/lp_rast.c:687
#6  0x00007f14c0d4b9e1 in rasterize_bin (task=0x1bb7888, bin=0x7f14c3abb1a0)
    at src/gallium/drivers/llvmpipe/lp_rast.c:706
#7  0x00007f14c0d4badf in rasterize_scene (task=0x1bb7888, 
    scene=0x7f14c3abb010) at src/gallium/drivers/llvmpipe/lp_rast.c:765
#8  0x00007f14c0d4bb86 in lp_rast_queue_scene (rast=0x1bb7870, 
    scene=0x7f14c3abb010) at src/gallium/drivers/llvmpipe/lp_rast.c:794
#9  0x00007f14c0d572b4 in lp_setup_rasterize_scene (setup=0x1bf6690)
    at src/gallium/drivers/llvmpipe/lp_setup.c:159
#10 0x00007f14c0d5782f in set_scene_state (setup=0x1bf6690, 
    new_state=SETUP_FLUSHED, 
    reason=0x7f14c193d0b0 <__FUNCTION__.12439> "llvmpipe_transfer_map")
    at src/gallium/drivers/llvmpipe/lp_setup.c:313
#11 0x00007f14c0d57919 in lp_setup_flush (setup=0x1bf6690, 
    fence=0x7ffff0ef66e8, 
    reason=0x7f14c193d0b0 <__FUNCTION__.12439> "llvmpipe_transfer_map")
    at src/gallium/drivers/llvmpipe/lp_setup.c:342
#12 0x00007f14c0d47634 in llvmpipe_flush (pipe=0x1bb8e80, 
    fence=0x7ffff0ef66e8, 
    reason=0x7f14c193d0b0 <__FUNCTION__.12439> "llvmpipe_transfer_map")
    at src/gallium/drivers/llvmpipe/lp_flush.c:55
#13 0x00007f14c0d47679 in llvmpipe_finish (pipe=0x1bb8e80, 
    reason=0x7f14c193d0b0 <__FUNCTION__.12439> "llvmpipe_transfer_map")
    at src/gallium/drivers/llvmpipe/lp_flush.c:82
#14 0x00007f14c0d4774d in llvmpipe_flush_resource (pipe=0x1bb8e80, 
    resource=0x1f6f1b0, level=0, layer=0, read_only=1 '\001', 
    cpu_access=1 '\001', do_not_block=0 '\000', 
    reason=0x7f14c193d0b0 <__FUNCTION__.12439> "llvmpipe_transfer_map")
    at src/gallium/drivers/llvmpipe/lp_flush.c:121
#15 0x00007f14c0d23ffa in llvmpipe_transfer_map (pipe=0x1bb8e80, 
    resource=0x1f6f1b0, level=0, usage=1, box=0x7ffff0ef6820, 
    transfer=0x1d74a28) at src/gallium/drivers/llvmpipe/lp_texture.c:649
#16 0x00007f14c0ec7788 in pipe_transfer_map (context=0x1bb8e80, 
    resource=0x1f6f1b0, level=0, layer=0, usage=PIPE_TRANSFER_READ, x=0, y=0, 
    w=64, h=64, transfer=0x1d74a28)
    at src/gallium/auxiliary/util/u_inlines.h:404
#17 0x00007f14c0ec7e78 in st_texture_image_map (st=0x1c8fc80, 
    stImage=0x1d749d0, zoffset=0, usage=PIPE_TRANSFER_READ, x=0, y=0, w=64, 
    h=64) at src/mesa/state_tracker/st_texture.c:252
#18 0x00007f14c0ebd844 in st_MapTextureImage (ctx=0x1c48c10, 
    texImage=0x1d749d0, slice=0, x=0, y=0, w=64, h=64, mode=1, 
    mapOut=0x7ffff0ef6988, rowStrideOut=0x7ffff0ef6964)
    at src/mesa/state_tracker/st_cb_texture.c:203
#19 0x00007f14c0f4b73b in get_tex_rgba_uncompressed (ctx=0x1c48c10, 
    dimensions=2, format=6408, type=5126, pixels=0x7ffff0f06b80, 
    texImage=0x1d749d0, transferOps=0) at src/mesa/main/texgetimage.c:352
#20 0x00007f14c0f4b9f4 in get_tex_rgba (ctx=0x1c48c10, dimensions=2, 
    format=6408, type=5126, pixels=0x7ffff0f06b80, texImage=0x1d749d0)
    at src/mesa/main/texgetimage.c:437
#21 0x00007f14c0f4bdcc in _mesa_get_teximage (ctx=0x1c48c10, format=6408, 
    type=5126, pixels=0x7ffff0f06b80, texImage=0x1d749d0)
    at src/mesa/main/texgetimage.c:569
#22 0x00007f14c0ebe869 in st_GetTexImage (ctx=0x1c48c10, format=6408, 
    type=5126, pixels=0x7ffff0f06b80, texImage=0x1d749d0)
    at src/mesa/state_tracker/st_cb_texture.c:697
#23 0x00007f14c0f4c729 in _mesa_GetnTexImageARB (target=3553, level=0, 
    format=6408, type=5126, bufSize=2147483647, pixels=0x7ffff0f06b80)
    at src/mesa/main/texgetimage.c:827
#24 0x00007f14c0f4c786 in _mesa_GetTexImage (target=3553, level=0, 
    format=6408, type=5126, pixels=0x7ffff0f06b80)
    at src/mesa/main/texgetimage.c:837
#25 0x00000000004021cc in render_and_check_textures (internal_format=33322)
    at piglit/tests/fbo/fbo-rg.c:386
#26 0x00000000004026b6 in piglit_init (argc=2, argv=0x7ffff0f16d58)
    at piglit/tests/fbo/fbo-rg.c:484
#27 0x00007f14c3698901 in run_test (gl_fw=0x7f14c3951800 <glut_fw>, argc=2, 
    argv=0x7ffff0f16d58)
    at piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:125
#28 0x00007f14c3696a25 in piglit_gl_test_run (argc=2, argv=0x7ffff0f16d58, 
    config=0x7ffff0f16c40)
    at piglit/tests/util/piglit-framework-gl.c:127
#29 0x0000000000401696 in main (argc=2, argv=0x7ffff0f16d58)
    at piglit/tests/fbo/fbo-rg.c:55


There are only 'skip'ped commits left to test.
The first bad commit could be any of:
1d3789bccbbcc814fd7b339e9f5b5631e30d9f0e
fa1b481c09b14e01eca1b3db8e0854033f6dee3d
We cannot bisect more!
bisect run cannot continue any more


commit fa1b481c09b14e01eca1b3db8e0854033f6dee3d
Author: James Benton <jbenton@vmware.com>
Date:   Thu Sep 13 16:04:42 2012 +0100

    llvmpipe: Unswizzled rendering.
    
    Reviewed-by: Jose Fonseca <jfonseca@vmware.com>

commit 1d3789bccbbcc814fd7b339e9f5b5631e30d9f0e
Author: James Benton <jbenton@vmware.com>
Date:   Wed Jul 11 15:39:53 2012 +0100

    gallivm: Updated lp_build_const_mask_aos to input number of channels.
    
    Also updated lp_build_const_mask_aos_swizzled to reflect this.
    
    Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Comment 1 Jose Fonseca 2012-11-29 17:05:42 UTC
Thanks Vinson. I'll look into this.
Comment 2 Jose Fonseca 2012-11-30 17:49:47 UTC
Review request with fix posted to mesa3d-dev:

commit a29f27c4b8faa4e9e52a6e5bc65b4accafbbd874
Author: José Fonseca <jfonseca@vmware.com>
Date:   Fri Nov 30 17:32:29 2012 +0000

    llvmpipe: Recompute the fs shader key when framebuffer varies.
    
    The fs shader now depends on the color buffer formats. The shader key was
    extended to accommodate this, but llvmpipe_update_derived needs to be
    updated to check the framebuffer dirty flag.
    
    This fixes bug 57674.
Comment 3 Jose Fonseca 2012-12-03 14:07:33 UTC
Fix has been pushed now.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.