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
See proposed patch on mesa-dev.
Tim, I'll hold off on pushing this patch until you can test it.
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.
The proposed patch looks good. Regressions with the 4BYTE_ALIGNED_ONLY caps set are fixed.
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.