Bug 67926

Summary: [softpipe] piglit tesselation polygon wireframe regression
Product: Mesa Reporter: Vinson Lee <vlee>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: medium CC: zackr
Version: gitKeywords: have-backtrace, regression
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2013-08-08 23:46:09 UTC
[softpipe] piglit tesselation polygon wireframe regression

mesa: 2c2e64edaba0f6aeb181ca5b51eb8dea8e9b39f9 (master)


$ ./bin/ext_transform_feedback-tessellation polygon wireframe -auto
Segmentation fault (core dumped)

(gdb) bt
#0  0x00007fb5df2ba92e in sp_setup_line (setup=0x9ed330, v0=0xac4280, v1=0xbc21c0) at sp_setup.c:1074
#1  0x00007fb5df2a8f42 in sp_vbuf_draw_elements (vbr=0x9ed290, indices=0x9effd0, nr=6) at sp_prim_vbuf.c:180
#2  0x00007fb5df18f6c8 in vbuf_flush_vertices (vbuf=0x9eff10) at draw/draw_pipe_vbuf.c:327
#3  0x00007fb5df18f8ca in vbuf_flush (stage=0x9eff10, flags=4) at draw/draw_pipe_vbuf.c:392
#4  0x00007fb5df18ddde in unfilled_flush (stage=0x933860, flags=4) at draw/draw_pipe_unfilled.c:209
#5  0x00007fb5df189303 in cull_flush (stage=0x9e7210, flags=4) at draw/draw_pipe_cull.c:231
#6  0x00007fb5df188acd in clip_flush (stage=0x9e0b10, flags=4) at draw/draw_pipe_clip.c:748
#7  0x00007fb5df182226 in draw_pipeline_flush (draw=0x9dc800, flags=4) at draw/draw_pipe.c:353
#8  0x00007fb5df17b9b6 in draw_do_flush (draw=0x9dc800, flags=4) at draw/draw_context.c:722
#9  0x00007fb5df17ad9e in draw_flush (draw=0x9dc800) at draw/draw_context.c:225
#10 0x00007fb5df2a8b2a in softpipe_draw_vbo (pipe=0x945080, info=0x7ffff056a420) at sp_draw_arrays.c:145
#11 0x00007fb5df17968a in cso_draw_vbo (cso=0xa775a0, info=0x7ffff056a420) at cso_cache/cso_context.c:1413
#12 0x00007fb5df084526 in st_draw_vbo (ctx=0xa0b920, prims=0x7ffff056a4e0, nr_prims=1, ib=0x0, index_bounds_valid=1 '\001', min_index=0, max_index=4, 
    tfb_vertcount=0x0) at ../../src/mesa/state_tracker/st_draw.c:286
#13 0x00007fb5df04082d in vbo_draw_arrays (ctx=0xa0b920, mode=9, start=0, count=5, numInstances=1, baseInstance=0)
    at ../../src/mesa/vbo/vbo_exec_array.c:624
#14 0x00007fb5df04127e in vbo_exec_DrawArrays (mode=9, start=0, count=5) at ../../src/mesa/vbo/vbo_exec_array.c:776
#15 0x00007fb5e2c43d9c in stub_glDrawArrays (mode=9, first=0, count=5) at piglit/tests/util/generated_dispatch.c:6223
#16 0x00000000004021b0 in draw (prog=3, use_xfb=false, y_offset=64, mode=9, num_vertices=5)
    at piglit/tests/spec/ext_transform_feedback/tessellation.c:446
#17 0x0000000000402836 in piglit_display () at piglit/tests/spec/ext_transform_feedback/tessellation.c:618
#18 0x00007fb5e2c35e1c in display () at piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:60
#19 0x00007fb5e23d3fc4 in fghRedrawWindow (window=0x91a140) at freeglut_main.c:210
#20 fghcbDisplayWindow (window=0x91a140, enumerator=0x7ffff056a9c0) at freeglut_main.c:227
#21 0x00007fb5e23d7719 in fgEnumWindows (enumCallback=enumCallback@entry=0x7fb5e23d3f20 <fghcbDisplayWindow>, enumerator=enumerator@entry=0x7ffff056a9c0)
    at freeglut_structure.c:394
#22 0x00007fb5e23d445c in fghDisplayAll () at freeglut_main.c:249
#23 glutMainLoopEvent () at freeglut_main.c:1450
#24 0x00007fb5e23d4d81 in glutMainLoop () at freeglut_main.c:1498
#25 0x00007fb5e2c3604b in run_test (gl_fw=0x7fb5e2f1e040 <glut_fw>, argc=3, argv=0x7ffff056ad78)
    at piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:142
#26 0x00007fb5e2c340e9 in piglit_gl_test_run (argc=3, argv=0x7ffff056ad78, config=0x7ffff056ac60)
    at piglit/tests/util/piglit-framework-gl.c:141
#27 0x0000000000401a81 in main (argc=3, argv=0x7ffff056ad78) at piglit/tests/spec/ext_transform_feedback/tessellation.c:131
(gdb) frame 0
#0  0x00007fb5df2ba92e in sp_setup_line (setup=0x9ed330, v0=0xac4280, v1=0xbc21c0) at sp_setup.c:1074
1074	   int x1 = (int) v1[0][0];
(gdb) print v1[0]
Cannot access memory at address 0xbc21c0


d6b3a193d4d525c5048ebf793e6a63fd98f92d64 is the first bad commit
commit d6b3a193d4d525c5048ebf793e6a63fd98f92d64
Author: Zack Rusin <zackr@vmware.com>
Date:   Wed Jul 31 07:34:49 2013 -0400

    draw: inject frontface info into wireframe outputs
    
    Draw module can decompose primitives into wireframe models, which
    is a fancy word for 'lines', unfortunately that decomposition means
    that we weren't able to preserve the original front-face info which
    could be derived from the original primitives (lines don't have a
    'face'). To fix it allow draw module to inject a fake face semantic
    into outputs from which the backends can figure out the original
    frontfacing info of the primitives.
    
    Signed-off-by: Zack Rusin <zackr@vmware.com>
    Reviewed-by: Roland Scheidegger <sroland@vmware.com>
    Reviewed-by: Jose Fonseca <jfonseca@vmware.com>

:040000 040000 c03c3c58f6b2d41a576aa2c1388323bc4fdfb21e cb98c963ea0f7797496053122ad6b5c3f56a1861 M	src
bisect run success
Comment 1 Vinson Lee 2014-01-01 04:38:43 UTC
mea: 5a51c1b01a16d3256f9769a76d8293fea5853b1f (master)

piglit tesselation polygon wireframe passes on softpipe 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.