Bug 91099

Summary: [llvmpipe] piglit glsl-max-varyings >max_varying_components regression
Product: Mesa Reporter: Vinson Lee <vlee>
Component: Drivers/Gallium/llvmpipeAssignee: mesa-dev
Status: RESOLVED MOVED QA Contact: mesa-dev
Severity: normal    
Priority: medium CC: idr, jfonseca, maraeo, sroland
Version: 10.6Keywords: bisected, regression
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 90539    

Description Vinson Lee 2015-06-24 20:56:19 UTC
mesa: e31bce4041122cd00712b60b4dc1eae6486f6579 (master 10.7.0-devel)

$ ./bin/glsl-max-varyings --exceed-limits -auto
Vertical axis: Increasing numbers of varyings.
Horizontal axis: Which of the varyings contains the color.
GL_MAX_VARYING_FLOATS = 128
glsl-max-varyings: src/mesa/state_tracker/st_glsl_to_tgsi.cpp:4655: ureg_dst dst_register(st_translate*, gl_register_file, unsigned int, unsigned int): Assertion `index < VARYING_SLOT_MAX' failed.
Aborted (core dumped)

(gdb) bt
#0  0x00007fc07799b267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#1  0x00007fc07799ceca in __GI_abort () at abort.c:89
#2  0x00007fc07799403d in __assert_fail_base (fmt=0x7fc077af6028 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x7fc076a3e67b "index < VARYING_SLOT_MAX", file=file@entry=0x7fc076a3d708 "src/mesa/state_tracker/st_glsl_to_tgsi.cpp", 
    line=line@entry=4655, 
    function=function@entry=0x7fc076a3ff00 <dst_register(st_translate*, gl_register_file, unsigned int, unsigned int)::__PRETTY_FUNCTION__> "ureg_dst dst_register(st_translate*, gl_register_file, unsigned int, unsigned int)") at assert.c:92
#3  0x00007fc0779940f2 in __GI___assert_fail (assertion=0x7fc076a3e67b "index < VARYING_SLOT_MAX", 
    file=0x7fc076a3d708 "src/mesa/state_tracker/st_glsl_to_tgsi.cpp", line=4655, 
    function=0x7fc076a3ff00 <dst_register(st_translate*, gl_register_file, unsigned int, unsigned int)::__PRETTY_FUNCTION__> "ureg_dst dst_register(st_translate*, gl_register_file, unsigned int, unsigned int)") at assert.c:101
#4  0x00007fc075bebc69 in dst_register (t=0xc31420, file=PROGRAM_OUTPUT, index=56, array_id=0) at src/mesa/state_tracker/st_glsl_to_tgsi.cpp:4655
#5  0x00007fc075bec3aa in translate_dst (t=0xc31420, dst_reg=0xcda7d8, saturate=false, clamp_color=false)
    at src/mesa/state_tracker/st_glsl_to_tgsi.cpp:4756
#6  0x00007fc075becb15 in compile_tgsi_instruction (t=0xc31420, inst=0xcda7c0, clamp_dst_color_output=false)
    at src/mesa/state_tracker/st_glsl_to_tgsi.cpp:4904
#7  0x00007fc075beef45 in st_translate_program (ctx=0x7fc0784fe010, procType=1, ureg=0xe79180, program=0xe26870, proginfo=0xf08070, numInputs=3, 
    inputMapping=0xf08448, inputSlotToAttr=0x0, inputSemanticName=0x0, inputSemanticIndex=0x0, interpMode=0x0, interpLocation=0x0, numOutputs=33, 
    outputMapping=0xf08610, outputSlotToAttr=0xf086f0, outputSemanticName=0xf087d0 "", outputSemanticIndex=0xf08808 "", passthrough_edgeflags=0 '\000', 
    clamp_color=0 '\000') at src/mesa/state_tracker/st_glsl_to_tgsi.cpp:5581
#8  0x00007fc075a68de5 in st_translate_vertex_program (st=0xa64210, stvp=0xf08070, key=0x7ffe56dacd60) at src/mesa/state_tracker/st_program.c:348
#9  0x00007fc075a69027 in st_get_vp_variant (st=0xa64210, stvp=0xf08070, key=0x7ffe56dacd60) at src/mesa/state_tracker/st_program.c:440
#10 0x00007fc075bbe1f2 in update_vp (st=0xa64210) at src/mesa/state_tracker/st_atom_shader.c:158
#11 0x00007fc075bb925b in st_validate_state (st=0xa64210) at src/mesa/state_tracker/st_atom.c:214
#12 0x00007fc075a63e73 in st_draw_vbo (ctx=0x7fc0784fe010, prims=0x7ffe56dacf70, 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:199
#13 0x00007fc075ba6212 in vbo_draw_arrays (ctx=0x7fc0784fe010, mode=5, start=0, count=4, numInstances=1, baseInstance=0)
    at src/mesa/vbo/vbo_exec_array.c:645
#14 0x00007fc075ba6ca0 in vbo_exec_DrawArrays (mode=5, start=0, count=4) at src/mesa/vbo/vbo_exec_array.c:797
#15 0x0000000000401ef2 in draw (num_varyings=33) at piglit/tests/shaders/glsl-max-varyings.c:233
#16 0x000000000040208c in piglit_display () at piglit/tests/shaders/glsl-max-varyings.c:273
#17 0x00007fc078067f8e in run_test (gl_fw=0x976980, argc=2, argv=0x7ffe56dad448)
    at piglit/tests/util/piglit-framework-gl/piglit_winsys_framework.c:79
#18 0x00007fc07804c999 in piglit_gl_test_run (argc=2, argv=0x7ffe56dad448, config=0x7ffe56dad300)
    at piglit/tests/util/piglit-framework-gl.c:191
#19 0x00000000004014fd in main (argc=2, argv=0x7ffe56dad448) at piglit/tests/shaders/glsl-max-varyings.c:48
(gdb) frame 4
#4  0x00007fc075bebc69 in dst_register (t=0xc31420, file=PROGRAM_OUTPUT, index=56, array_id=0) at src/mesa/state_tracker/st_glsl_to_tgsi.cpp:4655
4655	            assert(index < VARYING_SLOT_MAX);
(gdb) print /d VARYING_SLOT_MAX
$1 = 56
Comment 1 Vinson Lee 2015-06-24 22:32:40 UTC
7ffc1fb928268f8493e88d45e9a006208d05f0f6 is the first bad commit
commit 7ffc1fb928268f8493e88d45e9a006208d05f0f6
Author: Marek Olšák <marek.olsak@amd.com>
Date:   Thu Mar 19 23:27:10 2015 +0100

    gallium: bump shader input and output limits
    
    Reviewed-by: Roland Scheidegger <sroland@vmware.com>
    Signed-off-by: Marek Olšák <marek.olsak@amd.com>

:040000 040000 c8ba9549231eff63c36137320a597d586a53298a a53d5640b434fc002eca189ffcb19aec79e1755a M	src
bisect run success
Comment 2 Jose Fonseca 2015-06-25 06:38:53 UTC
This is the same as bug 90539.

And the change in 
http://cgit.freedesktop.org/~jrfonseca/mesa/commit/?h=max-varyings fixes the
assertion.
Comment 3 GitLab Migration User 2019-09-18 18:31:47 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/235.

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.