| Summary: | [llvmpipe] SIGSEGV src/gallium/drivers/llvmpipe/lp_rast_priv.h:218 | ||
|---|---|---|---|
| Product: | Mesa | Reporter: | Vinson Lee <vlee> |
| Component: | Other | Assignee: | mesa-dev |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | medium | Keywords: | have-backtrace |
| Version: | git | ||
| Hardware: | x86-64 (AMD64) | ||
| OS: | Linux (All) | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
I can't reproduce this, and valgrind didn't show anything suspicious neither. Is this a regression? I see the problem though, we're missing a test for non-zero cbuf in lp_rast_shade_tile (which we already do in lp_rast_shade_quads_mask). For some reason though when I run the test it never touches lp_rast_shade_tile just lp_rast_shade_quads_mask which certainly explains why it doesn't crash - from a quick glance with the geometry I get lp_rast_shade_tile should be impossible. In any case I increased the FB_SIZE in the piglit test which made it crash indeed. I'm going to post a fix... I still have no idea why this could happen with the fb size used by this piglit test but fixed with 576868140bbb1abd177e7fd122720883d773137e. |
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.
mesa: c0bd206a148b8fcda253359efe8c95871f89bd05 (master 10.3.0-devel) Run piglit test fbo-drawbuffers-none glBlendFunci on llvmpipe. $ ./bin/fbo-drawbuffers-none glBlendFunci -auto Testing glBlendFunci. Segmentation fault (core dumped) (gdb) bt #0 0x00007f49681c56a7 in lp_rast_get_unswizzled_color_block_pointer (task=0x1e27838, buf=0, x=0, y=0, layer=0) at src/gallium/drivers/llvmpipe/lp_rast_priv.h:218 #1 0x00007f49681c6328 in lp_rast_shade_tile (task=0x1e27838, arg=...) at src/gallium/drivers/llvmpipe/lp_rast.c:316 #2 0x00007f49681c6d5b in do_rasterize_bin (task=0x1e27838, bin=0x7f496b95b1e8, x=0, y=0) at src/gallium/drivers/llvmpipe/lp_rast.c:589 #3 0x00007f49681c6dc8 in rasterize_bin (task=0x1e27838, bin=0x7f496b95b1e8, x=0, y=0) at src/gallium/drivers/llvmpipe/lp_rast.c:608 #4 0x00007f49681c6ed8 in rasterize_scene (task=0x1e27838, scene=0x7f496b95b010) at src/gallium/drivers/llvmpipe/lp_rast.c:657 #5 0x00007f49681c71a4 in thread_function (init_data=0x1e27838) at src/gallium/drivers/llvmpipe/lp_rast.c:778 #6 0x00007f49681c4ce9 in impl_thrd_routine (p=0x1e18c40) at include/c11/threads_posix.h:87 #7 0x00007f496716c182 in start_thread (arg=0x7f4966b0f700) at pthread_create.c:312 #8 0x00007f496afb330d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 (gdb) frame 0 #0 0x00007f49681c56a7 in lp_rast_get_unswizzled_color_block_pointer (task=0x1e27838, buf=0, x=0, y=0, layer=0) at src/gallium/drivers/llvmpipe/lp_rast_priv.h:218 218 format_bytes = util_format_get_blocksize(task->scene->fb.cbufs[buf]->format); (gdb) print task->scene->fb.cbufs[buf] $1 = (struct pipe_surface *) 0x0