Bug 80835

Summary: [llvmpipe] piglit fs-struct-pad regression
Product: Mesa Reporter: Vinson Lee <vlee>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: brianp, sroland
Version: gitKeywords: bisected, have-backtrace, regression
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2014-07-03 00:16:13 UTC
mesa: 6ded75ed08aed8a88b638c664efbfe14e0476f37 (master 10.3.0-devel)

$ ./bin/shader_runner tests/spec/glsl-1.40/uniform_buffer/fs-struct-pad.shader_test -auto
src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:306:lp_build_emit_fetch: Assertion `reg->Register.Index <= bld_base->info->file_max[reg->Register.File]' failed.

(gdb) bt
#0  0x00007f541b9af6c8 in _debug_assert_fail (expr=0x7f541c540978 "reg->Register.Index <= bld_base->info->file_max[reg->Register.File]", 
    file=0x7f541c540810 "src/gallium/auxiliary/gallivm/lp_bld_tgsi.c", line=306, function=0x7f541c540b00 <__func__.10370> "lp_build_emit_fetch")
    at src/gallium/auxiliary/util/u_debug.c:309
#1  0x00007f541ba7364a in lp_build_emit_fetch (bld_base=0x7fff17f0c3c0, inst=0x15aaab0, src_op=0, chan_index=2) at src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:306
#2  0x00007f541ba73082 in lp_build_fetch_args (bld_base=0x7fff17f0c3c0, emit_data=0x7fff17f0c1e0) at src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:177
#3  0x00007f541ba73399 in lp_build_tgsi_inst_llvm (bld_base=0x7fff17f0c3c0, inst=0x15aaab0) at src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:249
#4  0x00007f541ba73c80 in lp_build_tgsi_llvm (bld_base=0x7fff17f0c3c0, tokens=0x15439d0) at src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:476
#5  0x00007f541ba3a251 in lp_build_tgsi_soa (gallivm=0x1544be0, tokens=0x15439d0, type=..., mask=0x7fff17f11fe0, consts_ptr=0x15a80f8, const_sizes_ptr=0x15a81c8, 
    system_values=0x7fff17f11fc0, inputs=0x7fff17f13bb0, outputs=0x7fff17f120a0, sampler=0x15a18c0, info=0x1547290, gs_iface=0x0)
    at src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c:3788
#6  0x00007f541b5dd296 in generate_fs_loop (gallivm=0x1544be0, shader=0x1547070, key=0x1549c60, builder=0x1533cf0, type=..., context_ptr=0x15a0f90, num_loop=0x15a15c0, 
    interp=0x7fff17f12e80, sampler=0x15a18c0, mask_store=0x15a25b8, out_color=0x7fff17f12980, depth_ptr=0x15a1210, depth_stride=0x15a1350, facing=0x15a1080, 
    thread_data_ptr=0x15a12b0) at src/gallium/drivers/llvmpipe/lp_state_fs.c:417
#7  0x00007f541b5e36f2 in generate_fragment (lp=0x1451770, shader=0x1547070, variant=0x1549c60, partial_mask=1) at src/gallium/drivers/llvmpipe/lp_state_fs.c:2363
#8  0x00007f541b5e46e5 in generate_variant (lp=0x1451770, shader=0x1547070, key=0x7fff17f14150) at src/gallium/drivers/llvmpipe/lp_state_fs.c:2615
#9  0x00007f541b5e5d28 in llvmpipe_update_fs (lp=0x1451770) at src/gallium/drivers/llvmpipe/lp_state_fs.c:3166
#10 0x00007f541b5dbb12 in llvmpipe_update_derived (llvmpipe=0x1451770) at src/gallium/drivers/llvmpipe/lp_state_derived.c:186
#11 0x00007f541b5b61f0 in llvmpipe_draw_vbo (pipe=0x1451770, info=0x7fff17f14470) at src/gallium/drivers/llvmpipe/lp_draw_arrays.c:70
#12 0x00007f541b9590b6 in cso_draw_vbo (cso=0x14e86b0, info=0x7fff17f14470) at src/gallium/auxiliary/cso_cache/cso_context.c:1428
#13 0x00007f541b7616c6 in st_draw_vbo (ctx=0x7f541f304010, prims=0x7fff17f14550, nr_prims=1, ib=0x0, index_bounds_valid=1 '\001', min_index=0, max_index=3, 
    tfb_vertcount=0x0, indirect=0x0) at src/mesa/state_tracker/st_draw.c:285
#14 0x00007f541b839494 in vbo_draw_arrays (ctx=0x7f541f304010, mode=5, start=0, count=4, numInstances=1, baseInstance=0) at src/mesa/vbo/vbo_exec_array.c:667
#15 0x00007f541b839edf in vbo_exec_DrawArrays (mode=5, start=0, count=4) at src/mesa/vbo/vbo_exec_array.c:819
#16 0x00007f541ee13900 in stub_glDrawArrays (mode=5, first=0, count=4) at piglit/tests/util/piglit-dispatch-gen.c:10435
#17 0x00007f541ee70891 in piglit_draw_rect_from_arrays (verts=0x7fff17f14640, tex=0x0) at piglit/tests/util/piglit-util-gl-common.c:698
#18 0x00007f541ee709ee in piglit_draw_rect (x=-1, y=-1, w=2, h=2) at piglit/tests/util/piglit-util-gl-common.c:741
#19 0x000000000040a0d1 in piglit_display () at piglit/tests/shaders/shader_runner.c:2104
#20 0x00007f541ee88dc6 in display () at piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:60
#21 0x00007f541e5a0244 in fghRedrawWindow (window=0x144dcb0) at freeglut_main.c:231
#22 fghcbDisplayWindow (window=0x144dcb0, enumerator=0x7fff17f148e0) at freeglut_main.c:248
#23 0x00007f541e5a3aa9 in fgEnumWindows (enumCallback=enumCallback@entry=0x7f541e5a01d0 <fghcbDisplayWindow>, enumerator=enumerator@entry=0x7fff17f148e0)
    at freeglut_structure.c:396
#24 0x00007f541e5a07fd in fghDisplayAll () at freeglut_main.c:271
#25 glutMainLoopEvent () at freeglut_main.c:1523
#26 0x00007f541e5a0ffd in glutMainLoop () at freeglut_main.c:1571
#27 0x00007f541ee89102 in run_test (gl_fw=0x7f541f108060 <glut_fw>, argc=2, argv=0x7fff17f14cb8)
    at piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:167
#28 0x00007f541ee71178 in piglit_gl_test_run (argc=2, argv=0x7fff17f14cb8, config=0x7fff17f14b80) at piglit/tests/util/piglit-framework-gl.c:151
#29 0x0000000000404e93 in main (argc=2, argv=0x7fff17f14cb8) at piglit/tests/shaders/shader_runner.c:60
(gdb) frame 1
#1  0x00007f541ba7364a in lp_build_emit_fetch (bld_base=0x7fff17f0c3c0, inst=0x15aaab0, src_op=0, chan_index=2) at src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:306
306	   assert(reg->Register.Index <= bld_base->info->file_max[reg->Register.File]);
(gdb) print reg->Register.Index
$1 = 2
(gdb) print bld_base->info->file_max[reg->Register.File]
$2 = 1


f4b0ab7afd83c811329211eae8167c9bf238870c is the first bad commit
commit f4b0ab7afd83c811329211eae8167c9bf238870c
Author: Brian Paul <brianp@vmware.com>
Date:   Tue Jul 1 08:17:09 2014 -0600

    st/mesa: fix incorrect size of UBO declarations
    
    UniformBufferSize is in bytes so we need to divide by 16 to get the
    number of constant buffer slots.  Also, the ureg_DECL_constant2D()
    function takes first..last parameters so we need to subtract one
    for the last value.
    
    Reviewed-by: Roland Scheidegger <sroland@vmware.com>

:040000 040000 bbe2c6f0c62e19b140c09df1f74a44e77d7c7bf9 db6b7eb1f47bec99cbde4ee9d5af8f266cda0ed1 M	src
bisect run success
Comment 1 Jose Fonseca 2014-11-11 17:21:49 UTC
It passes now.  It must have been fixed since.

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.