Bug 56552 - src/gallium/auxiliary/draw/draw_vertex.h:130:draw_emit_vertex_attr: Assertion `n < 32' failed.
Summary: src/gallium/auxiliary/draw/draw_vertex.h:130:draw_emit_vertex_attr: Assertion...
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Mesa core (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium critical
Assignee: mesa-dev
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-29 23:28 UTC by Vinson Lee
Modified: 2012-11-02 12:49 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Vinson Lee 2012-10-29 23:28:10 UTC
mesa: e4e3b071814d14e56ca3feca8df4974646bc332d (master)

Run piglit glsl-max-varyings on llvmpipe.


$ ./bin/glsl-max-varyings -auto
Vertical axis: Increasing numbers of varyings.
Horizontal axis: Which of the varyings contains the color.
GL_MAX_VARYING_FLOATS = 128
src/gallium/auxiliary/draw/draw_vertex.h:130:draw_emit_vertex_attr: Assertion `n < 32' failed.
Trace/breakpoint trap (core dumped)

(gdb) bt
#0  0x00007f1ed47e17fd in _debug_assert_fail (expr=0x7f1ed4fbb069 "n < 32", file=0x7f1ed4fbb040 "src/gallium/auxiliary/draw/draw_vertex.h", 
    line=130, function=0x7f1ed4fbb070 "draw_emit_vertex_attr") at src/gallium/auxiliary/util/u_debug.c:278
#1  0x00007f1ed44cdb0c in draw_emit_vertex_attr (vinfo=0x22fb868, emit=EMIT_4F, interp=INTERP_PERSPECTIVE, src_index=32)
    at src/gallium/auxiliary/draw/draw_vertex.h:130
#2  0x00007f1ed44cdcf7 in compute_vertex_info (llvmpipe=0x22fa700) at src/gallium/drivers/llvmpipe/lp_state_derived.c:93
#3  0x00007f1ed44cde7c in llvmpipe_update_derived (llvmpipe=0x22fa700) at src/gallium/drivers/llvmpipe/lp_state_derived.c:145
#4  0x00007f1ed44b5103 in llvmpipe_draw_vbo (pipe=0x22fa700, info=0x7fff7f999730) at src/gallium/drivers/llvmpipe/lp_draw_arrays.c:64
#5  0x00007f1ed479d0d9 in cso_draw_vbo (cso=0x2416640, info=0x7fff7f999730) at src/gallium/auxiliary/cso_cache/cso_context.c:1328
#6  0x00007f1ed461ce4f in st_draw_vbo (ctx=0x238af90, prims=0x7fff7f9997e0, 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:265
#7  0x00007f1ed46c23b2 in vbo_draw_arrays (ctx=0x238af90, mode=7, start=0, count=4, numInstances=1, baseInstance=0)
    at src/mesa/vbo/vbo_exec_array.c:619
#8  0x00007f1ed46c248b in vbo_exec_DrawArrays (mode=7, start=0, count=4) at src/mesa/vbo/vbo_exec_array.c:649
#9  0x00007f1ed6d09381 in piglit_draw_rect (x=2, y=374, w=10, h=10) at piglit/tests/util/piglit-util-gl.c:872
#10 0x00000000004019fa in draw (num_varyings=32) at piglit/tests/shaders/glsl-max-varyings.c:198
#11 0x0000000000401b1b in piglit_display () at piglit/tests/shaders/glsl-max-varyings.c:235
#12 0x00007f1ed6cb74c8 in display () at piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:60
#13 0x00007f1ed645d137 in fghRedrawWindow (window=0x22f8500) at freeglut_main.c:210
#14 fghcbDisplayWindow (window=0x22f8500, enumerator=0x7fff7f999a80) at freeglut_main.c:227
#15 0x00007f1ed6460889 in fgEnumWindows (enumCallback=0x7f1ed645d0d0 <fghcbDisplayWindow>, enumerator=0x7fff7f999a80) at freeglut_structure.c:394
#16 0x00007f1ed645d5fa in fghDisplayAll () at freeglut_main.c:249
#17 glutMainLoopEvent () at freeglut_main.c:1450
#18 0x00007f1ed645df05 in glutMainLoop () at freeglut_main.c:1498
#19 0x00007f1ed6cb76a0 in run_test (gl_fw=0x7f1ed6f707c0, argc=1, argv=0x7fff7f999e48)
    at piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:127
#20 0x00007f1ed6cb57e6 in piglit_gl_test_run (argc=1, argv=0x7fff7f999e48, config=0x7fff7f999d30)
    at piglit/tests/util/piglit-framework-gl.c:127
#21 0x0000000000401280 in main (argc=2, argv=0x7fff7f999e48) at piglit/tests/shaders/glsl-max-varyings.c:48
(gdb) frame 1
#1  0x00007f1ed44cdb0c in draw_emit_vertex_attr (vinfo=0x22fb868, emit=EMIT_4F, interp=INTERP_PERSPECTIVE, src_index=32)
    at src/gallium/auxiliary/draw/draw_vertex.h:130
130	   assert(n < PIPE_MAX_SHADER_INPUTS);
(gdb) print n
$1 = 32


b3921e1f53833420e0a0fd581f741744e7957a05 is the first bad commit
commit b3921e1f53833420e0a0fd581f741744e7957a05
Author: Marek Olšák <maraeo@gmail.com>
Date:   Fri Oct 26 17:37:07 2012 +0200

    mesa: bump MAX_VARYING to 32
    
    We're starting to get apps utilizing more than 16 varyings and
    most current hardware supports 32 anyway.
    
    Tested with r600g.
    swrast, softpipe and llvmpipe still advertise 16 varyings.
    
    This fixes a WebGL crash after launching this demo:
    https://developer.mozilla.org/en-US/demos/detail/falling-cubes
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54402
    
    NOTE: This is a candidate for the stable branches.
    
    Acked-by: Kenneth Graunke <kenneth@whitecape.org>

:040000 040000 603e2aa0c2c8a2eec907ba96d889aa00d291ae67 cf3f75dfb1d351f0063a76c2a30f00a0f72e3c61 M	src
bisect run success
Comment 1 Andreas Boll 2012-11-02 12:49:45 UTC
Fixed with 183e122bdfe27f875c3c121964484dae9587c051


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.