Bug 102377 - PIPE_*_4BYTE_ALIGNED_ONLY caps crashing
Summary: PIPE_*_4BYTE_ALIGNED_ONLY caps crashing
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Mesa core (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: mesa-dev
QA Contact: mesa-dev
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-08-23 18:26 UTC by Tim Rowley
Modified: 2017-08-26 02:29 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Tim Rowley 2017-08-23 18:26:34 UTC
For a potential upcoming change in the swr rasterizer, we need to set the 4BYTE_ALIGNED_ONLY caps to ensure alignment during vertex attribute fetch and AOS to SOA conversion.

Testing with the caps caused three regressions on piglit, which can be reproduced by setting these caps on llvmpipe.  The three failing tests all have somewhat different failure signatures, but appear to point to mesa infrastructure problems rather than a driver issue.

/home/torowley/src/piglit/bin/copy-pixels -auto

This one appears to clobber the stack:

Thread 1 "copy-pixels" received signal SIGSEGV, Segmentation fault.
0x00007ffff61a1281 in _mesa_set_vp_override (ctx=0x7ffff7eff01000, flag=0 '\000') at ../../../mesa/src/mesa/main/state.c:450
(gdb) where
#0  0x00007ffff61a1281 in _mesa_set_vp_override (ctx=0x7ffff7eff01000, flag=0 '\000') at ../../../mesa/src/mesa/main/state.c:450
#1  0x00007ffff60056ea in _mesa_CopyPixels (srcx=0, srcy=0, width=15360, height=15360, type=1572930) at ../../../mesa/src/mesa/main/drawpix.c:288
#2  0x000000004014af00 in ?? ()
#3  0x007fffffffd81000 in ?? ()

/home/torowley/src/piglit/bin/draw-vertices user -auto

Thread 1 "draw-vertices" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) where
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff655234c in pipe_resource_reference (ptr=0x812350, tex=0x0) at ../../../../mesa/src/gallium/auxiliary/util/u_inlines.h:144
#2  0x00007ffff655467a in u_vbuf_set_vertex_buffers (mgr=0x811c30, start_slot=1, count=1, bufs=0x0) at ../../../../mesa/src/gallium/auxiliary/util/u_vbuf.c:836
#3  0x00007ffff64b1411 in cso_set_vertex_buffers (ctx=0x810870, start_slot=1, count=1, buffers=0x0) at ../../../../mesa/src/gallium/auxiliary/cso_cache/cso_context.c:1144
#4  0x00007ffff6268cd3 in set_vertex_attribs (st=0x7f87a0, vbuffers=0x7fffffffd360, num_vbuffers=1, velements=0x7fffffffd370, num_velements=1) at ../../../mesa/src/mesa/state_tr
acker/st_atom_array.c:441
#5  0x00007ffff62691b2 in setup_interleaved_attribs (st=0x7f87a0, vp=0x91f370, arrays=0x7fe408, num_inputs=1) at ../../../mesa/src/mesa/state_tracker/st_atom_array.c:563
#6  0x00007ffff6269845 in st_update_array (st=0x7f87a0) at ../../../mesa/src/mesa/state_tracker/st_atom_array.c:705
#7  0x00007ffff626af3f in st_validate_state (st=0x7f87a0, pipeline=ST_PIPELINE_RENDER) at ../../../mesa/src/mesa/state_tracker/st_atom.c:253
#8  0x00007ffff6298d85 in prepare_draw (st=0x7f87a0, ctx=0x7ffff7eff010) at ../../../mesa/src/mesa/state_tracker/st_draw.c:122
#9  0x00007ffff6298e1b in st_draw_vbo (ctx=0x7ffff7eff010, prims=0x7fffffffd690, nr_prims=1, ib=0x0, index_bounds_valid=1 '\001', min_index=0, max_index=2, tfb_vertcount=0x0, st
ream=0, indirect=0x0) at ../../../mesa/src/mesa/state_tracker/st_draw.c:148
#10 0x00007ffff6239f91 in vbo_draw_arrays (ctx=0x7ffff7eff010, mode=4, start=0, count=3, numInstances=1, baseInstance=0, drawID=0) at ../../../mesa/src/mesa/vbo/vbo_exec_array.c
:486
#11 0x00007ffff623a7a1 in vbo_exec_DrawArrays (mode=4, start=0, count=3) at ../../../mesa/src/mesa/vbo/vbo_exec_array.c:641
#12 0x0000000000402363 in test_short_vertices (x1=240, y1=0, x2=260, y2=20, index=0) at /home/torowley/src/piglit/tests/general/draw-vertices.c:282
#13 0x0000000000403536 in piglit_display () at /home/torowley/src/piglit/tests/general/draw-vertices.c:568
#14 0x00007ffff7b3520e in process_next_event (x11_fw=0x637ed0) at /home/torowley/src/piglit/tests/util/piglit-framework-gl/piglit_x11_framework.c:137
#15 0x00007ffff7b352ce in enter_event_loop (winsys_fw=0x637ed0) at /home/torowley/src/piglit/tests/util/piglit-framework-gl/piglit_x11_framework.c:153
#16 0x00007ffff7b34041 in run_test (gl_fw=0x637ed0, argc=2, argv=0x7fffffffdb58) at /home/torowley/src/piglit/tests/util/piglit-framework-gl/piglit_winsys_framework.c:88
#17 0x00007ffff7b18378 in piglit_gl_test_run (argc=2, argv=0x7fffffffdb58, config=0x7fffffffda10) at /home/torowley/src/piglit/tests/util/piglit-framework-gl.c:223
#18 0x0000000000401324 in main (argc=2, argv=0x7fffffffdb58) at /home/torowley/src/piglit/tests/general/draw-vertices.c:43

/home/torowley/src/piglit/bin/fbo-depthtex -auto -fbo

Thread 1 "fbo-depthtex" received signal SIGSEGV, Segmentation fault.
0x00007ffff6016e4e in check_end_texture_render (ctx=0x7ffff7eff010, fb=0x8261cf) at ../../../mesa/src/mesa/main/fbobject.c:2566
#0  0x00007ffff6016e4e in check_end_texture_render (ctx=0x7ffff7eff010, fb=0x8261cf) at ../../../mesa/src/mesa/main/fbobject.c:2566
#1  0x00007ffff601720c in _mesa_bind_framebuffers (ctx=0x7ffff7eff010, newDrawFb=0x800c40, newReadFb=0x800c40) at ../../../mesa/src/mesa/main/fbobject.c:2675
#2  0x00007ffff6017037 in bind_framebuffer (target=36160, framebuffer=1, allow_user_names=true) at ../../../mesa/src/mesa/main/fbobject.c:2631
#3  0x00007ffff60172e3 in _mesa_BindFramebufferEXT (target=36160, framebuffer=1) at ../../../mesa/src/mesa/main/fbobject.c:2712
#4  0x0000000000401ab3 in piglit_display () at /home/torowley/src/piglit/tests/fbo/fbo-depthtex.c:144
#5  0x00007ffff7b32487 in run_test (gl_fw=0x635ed0, argc=1, argv=0x7fffffffdb58) at /home/torowley/src/piglit/tests/util/piglit-framework-gl/piglit_fbo_framework.c:52
#6  0x00007ffff7b18378 in piglit_gl_test_run (argc=1, argv=0x7fffffffdb58, config=0x7fffffffda10) at /home/torowley/src/piglit/tests/util/piglit-framework-gl.c:223
#7  0x0000000000401604 in main (argc=1, argv=0x7fffffffdb58) at /home/torowley/src/piglit/tests/fbo/fbo-depthtex.c:43
Comment 1 Brian Paul 2017-08-24 16:47:46 UTC
See proposed patch on mesa-dev.
Comment 2 Brian Paul 2017-08-24 19:59:56 UTC
Tim, I'll hold off on pushing this patch until you can test it.
Comment 3 Bruce Cherniak 2017-08-24 20:07:37 UTC
Tim headed out on vacation today.  He'll be out nearly 2 weeks.  I'm going to try to get to testing this in the next day or so.
Comment 4 Bruce Cherniak 2017-08-26 00:06:35 UTC
The proposed patch looks good.  Regressions with the 4BYTE_ALIGNED_ONLY caps set are fixed.
Comment 5 Brian Paul 2017-08-26 02:29:53 UTC
Thanks, Bruce.  Patch committed: d819b1fcec02be5e0cfc87b6246833a2a2d5f034


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.