mesa: 3c21a7d3c9b626a10a38987d77b9e77d70bd67d7 Run piglit arb_uniform_buffer_object-maxuniformblocksize fsexceed on llvmpipe. $ ./bin/arb_uniform_buffer_object-maxuniformblocksize fsexceed -auto Max uniform block size: 518144 Testing FS with uniform block vec4 v[32385] src/gallium/drivers/llvmpipe/lp_scene.h:210:lp_scene_alloc: Assertion `size <= (64 * 1024)' failed. Trace/breakpoint trap (core dumped) (gdb) bt #0 0x00007fbfc2ed2b9a in _debug_assert_fail (expr=0x7fbfc39abba8 "size <= (64 * 1024)", file=0x7fbfc39abb80 "src/gallium/drivers/llvmpipe/lp_scene.h", line=210, function=0x7fbfc39ac1b7 "lp_scene_alloc") at src/gallium/auxiliary/util/u_debug.c:278 #1 0x00007fbfc2b79c75 in lp_scene_alloc (scene=0x7fbfc5ca3010, size=518160) at src/gallium/drivers/llvmpipe/lp_scene.h:210 #2 0x00007fbfc2b7c3d9 in try_update_scene_state (setup=0x1291b90) at src/gallium/drivers/llvmpipe/lp_setup.c:942 #3 0x00007fbfc2b7a825 in begin_binning (setup=0x1291b90) at src/gallium/drivers/llvmpipe/lp_setup.c:195 #4 0x00007fbfc2b7abf0 in set_scene_state (setup=0x1291b90, new_state=SETUP_ACTIVE, reason=0x7fbfc39ac160 "lp_setup_update_state") at src/gallium/drivers/llvmpipe/lp_setup.c:304 #5 0x00007fbfc2b7c9dd in lp_setup_update_state (setup=0x1291b90, update_scene=1 '\001') at src/gallium/drivers/llvmpipe/lp_setup.c:1072 #6 0x00007fbfc2b84cc3 in lp_setup_draw_arrays (vbr=0x1291b90, start=0, nr=4) at src/gallium/drivers/llvmpipe/lp_setup_vbuf.c:344 #7 0x00007fbfc2f80a96 in draw_pt_emit_linear (emit=0x128e980, vert_info=0x7fffbf28b020, prim_info=0x7fffbf28b100) at src/gallium/auxiliary/draw/draw_pt_emit.c:268 #8 0x00007fbfc2f7841e in emit (emit=0x128e980, vert_info=0x7fffbf28b020, prim_info=0x7fffbf28b100) at src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c:304 #9 0x00007fbfc2f788df in llvm_pipeline_generic (middle=0x128e830, fetch_info=0x0, in_prim_info=0x7fffbf28b100) at src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c:432 #10 0x00007fbfc2f78a26 in llvm_middle_end_linear_run (middle=0x128e830, start=0, count=4, prim_flags=0) at src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c:494 #11 0x00007fbfc2ea4fcb in vsplit_segment_simple_linear (vsplit=0x128b9e0, flags=0, istart=0, icount=4) at src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h:234 #12 0x00007fbfc2ea52d0 in vsplit_run_linear (frontend=0x128b9e0, start=0, count=4) at src/gallium/auxiliary/draw/draw_split_tmp.h:60 #13 0x00007fbfc2e997a5 in draw_pt_arrays (draw=0x127c840, prim=7, start=0, count=4) at src/gallium/auxiliary/draw/draw_pt.c:149 #14 0x00007fbfc2e9a518 in draw_vbo (draw=0x127c840, info=0x7fffbf28b270) at src/gallium/auxiliary/draw/draw_pt.c:532 #15 0x00007fbfc2b6a9ec in llvmpipe_draw_vbo (pipe=0x127ac60, info=0x7fffbf28b390) at src/gallium/drivers/llvmpipe/lp_draw_arrays.c:126 #16 0x00007fbfc2e829e0 in cso_draw_vbo (cso=0x1357730, info=0x7fffbf28b390) at src/gallium/auxiliary/cso_cache/cso_context.c:1406 #17 0x00007fbfc2ceade9 in st_draw_vbo (ctx=0x12eaac0, prims=0x7fffbf28b460, nr_prims=1, ib=0x0, index_bounds_valid=1 '\001', min_index=0, max_index=3, tfb_vertcount=0x0) at src/mesa/state_tracker/st_draw.c:286 #18 0x00007fbfc2daa204 in vbo_draw_arrays (ctx=0x12eaac0, mode=7, start=0, count=4, numInstances=1, baseInstance=0) at src/mesa/vbo/vbo_exec_array.c:624 #19 0x00007fbfc2daabcb in vbo_exec_DrawArrays (mode=7, start=0, count=4) at src/mesa/vbo/vbo_exec_array.c:776 #20 0x00007fbfc59486d0 in stub_glDrawArrays (mode=7, first=0, count=4) at piglit/tests/util/generated_dispatch.c:5673 #21 0x00007fbfc59a75d9 in piglit_draw_rect (x=-1, y=-1, w=2, h=2) at piglit/tests/util/piglit-util-gl.c:870 #22 0x000000000040168e in piglit_display () at piglit/tests/spec/arb_uniform_buffer_object/maxuniformblocksize.c:200 #23 0x00007fbfc593c030 in display () at piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:60 #24 0x00007fbfc50e9137 in fghRedrawWindow (window=0x1277090) at freeglut_main.c:210 #25 fghcbDisplayWindow (window=0x1277090, enumerator=0x7fffbf28b6b0) at freeglut_main.c:227 #26 0x00007fbfc50ec889 in fgEnumWindows (enumCallback=0x7fbfc50e90d0 <fghcbDisplayWindow>, enumerator=0x7fffbf28b6b0) at freeglut_structure.c:394 #27 0x00007fbfc50e95fa in fghDisplayAll () at freeglut_main.c:249 #28 glutMainLoopEvent () at freeglut_main.c:1450 #29 0x00007fbfc50e9f05 in glutMainLoop () at freeglut_main.c:1498 #30 0x00007fbfc593c265 in run_test (gl_fw=0x7fbfc5c18f40, argc=2, argv=0x7fffbf28ba78) at piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:142 #31 0x00007fbfc593a34e in piglit_gl_test_run (argc=2, argv=0x7fffbf28ba78, config=0x7fffbf28b960) at piglit/tests/util/piglit-framework-gl.c:127 #32 0x0000000000401240 in main (argc=3, argv=0x7fffbf28ba78) at piglit/tests/spec/arb_uniform_buffer_object/maxuniformblocksize.c:43 (gdb) frame 1 #1 0x00007fbfc2b79c75 in lp_scene_alloc (scene=0x7fbfc5ca3010, size=518160) at src/gallium/drivers/llvmpipe/lp_scene.h:210 210 assert(size <= DATA_BLOCK_SIZE); 38e77e545d06bf5ac0e185f2a1581a97bafdab56 is the first bad commit commit 38e77e545d06bf5ac0e185f2a1581a97bafdab56 Author: Eric Anholt <eric@anholt.net> Date: Thu May 23 11:10:15 2013 -0700 glsl: Fix uniform buffer object counting. We were counting uniforms located in UBOs against the default uniform block limit, while not doing any counting against the specific combined limit. Note that I couldn't quite find justification for the way I did this, but I think it's the only sensible thing: The spec talks about components, so each "float" in a std140 block would count as 1 component and a "vec4" would count as 4, though they occupy the same amount of space. Since GPU limits on uniform buffer loads are surely going to be about the size of the blocks, I just counted them that way. Fixes link failures in piglit arb_uniform_buffer_object/maxuniformblocksize when ported to geometry shaders on Paul's GS branch, since in that case the max block size is bigger than the default uniform block component limit. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> :040000 040000 a33f7a7d4a3927d6fc2f671ec8634e070c446969 a578c1156e802b7db94433a05b773671c10cfbc8 M src bisect run success
mesa: fc25956badb8e1932cc19d8c97b4be16e92dfc65 (master 10.2.0-devel) This regression is still present on llvmpipe.
mesa: 4d35eef326e49cc8da50879d30a1c5088d4775e1 (master 10.7.0-devel) This regression is still present on llvmpipe.
Tentative fix out for review on http://lists.freedesktop.org/archives/mesa-dev/2015-June/086497.html
Finally fixed with f734d2556013e9239e91f43b563b5b1d8f03ada4.
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.