[Mesa-dev] [Bug 31587] strange segfault in vgFinish
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Sat Nov 20 04:38:46 PST 2010
https://bugs.freedesktop.org/show_bug.cgi?id=31587
--- Comment #2 from Luca Barbato <lu_zero at gentoo.org> 2010-11-20 04:38:46 PST ---
I got a FPE a little further, this time in vgDrawPath. Still null pointers
Program received signal SIGFPE, Arithmetic exception.
0x00002aaaaeac6e5b in
llvm::LiveIntervals::addIntervalsForSpills(llvm::LiveInterval const&,
llvm::SmallVectorImpl<llvm::LiveInterval*>&, llvm::MachineLoopInfo const*,
llvm::VirtRegMap&) () from /usr/lib64/egl/pipe_swrast.so
(gdb) bt
#0 0x00002aaaaeac6e5b in
llvm::LiveIntervals::addIntervalsForSpills(llvm::LiveInterval const&,
llvm::SmallVectorImpl<llvm::LiveInterval*>&, llvm::MachineLoopInfo const*,
llvm::VirtRegMap&) () from /usr/lib64/egl/pipe_swrast.so
#1 0x00002aaaaea69088 in (anonymous
namespace)::StandardSpiller::spill(llvm::LiveInterval*,
llvm::SmallVectorImpl<llvm::LiveInterval*>&, llvm::SlotIndex*)
() from /usr/lib64/egl/pipe_swrast.so
#2 0x00002aaaaea3bbd2 in (anonymous
namespace)::RALinScan::assignRegOrStackSlotAtInterval(llvm::LiveInterval*) ()
from /usr/lib64/egl/pipe_swrast.so
#3 0x00002aaaaea3dd60 in (anonymous namespace)::RALinScan::linearScan() ()
from /usr/lib64/egl/pipe_swrast.so
#4 0x00002aaaaea3eb48 in (anonymous
namespace)::RALinScan::runOnMachineFunction(llvm::MachineFunction&) () from
/usr/lib64/egl/pipe_swrast.so
#5 0x00002aaaaecf831c in llvm::FPPassManager::runOnFunction(llvm::Function&)
() from /usr/lib64/egl/pipe_swrast.so
#6 0x00002aaaaecf84b4 in llvm::FunctionPassManagerImpl::run(llvm::Function&)
() from /usr/lib64/egl/pipe_swrast.so
#7 0x00002aaaaecf86ae in llvm::FunctionPassManager::run(llvm::Function&) ()
from /usr/lib64/egl/pipe_swrast.so
#8 0x00002aaaae9cb0ac in llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*,
llvm::MutexGuard const&) () from /usr/lib64/egl/pipe_swrast.so
#9 0x00002aaaae9cb474 in llvm::JIT::getPointerToFunction(llvm::Function*) ()
from /usr/lib64/egl/pipe_swrast.so
---Type <return> to continue, or q <return> to quit---
#10 0x00002aaaae9e3f56 in
llvm::ExecutionEngine::getPointerToGlobal(llvm::GlobalValue const*) () from
/usr/lib64/egl/pipe_swrast.so
#11 0x00002aaaae7d3172 in draw_llvm_generate (llvm=<value optimized out>,
variant=<value optimized out>) at draw/draw_llvm.c:1189
#12 0x00002aaaae7d3a50 in draw_llvm_create_variant (llvm=0x705070,
num_inputs=<value optimized out>, key=0x7fffffffb710)
at draw/draw_llvm.c:326
#13 0x00002aaaae7d5683 in llvm_middle_end_prepare (middle=0x71efe0,
in_prim=<value optimized out>, opt=<value optimized out>,
max_vertices=<value optimized out>)
at draw/draw_pt_fetch_shade_pipeline_llvm.c:161
#14 0x00002aaaae7a9745 in vsplit_prepare (frontend=0x71c1d0, in_prim=0,
middle=0x7dc210, opt=0) at draw/draw_pt_vsplit.c:170
#15 0x00002aaaae7a588b in draw_pt_arrays (draw=<value optimized out>, prim=6,
start=0, count=4) at draw/draw_pt.c:111
#16 0x00002aaaae7a5a6d in draw_vbo (draw=0x703f10, info=0x7fffffffbaf0)
at draw/draw_pt.c:481
#17 0x00002aaaae784350 in llvmpipe_draw_vbo (pipe=0x702fa0,
info=0x7fffffffbaf0) at lp_draw_arrays.c:81
#18 0x00002aaaafc0680a in util_draw_arrays (pipe=0x702fa0,
vbuf=<value optimized out>, offset=<value optimized out>, prim_type=6,
num_verts=4, num_attribs=<value optimized out>) at ./util/u_draw.h:58
---Type <return> to continue, or q <return> to quit---
#19 util_draw_vertex_buffer (pipe=0x702fa0, vbuf=<value optimized out>,
offset=<value optimized out>, prim_type=6, num_verts=4,
num_attribs=<value optimized out>) at util/u_draw_quad.c:63
#20 0x00002aaaafbf54a6 in renderer_draw_quad (r=0x74dfc0,
x1=<value optimized out>, y1=<value optimized out>,
x2=<value optimized out>, y2=<value optimized out>,
depth=<value optimized out>) at renderer.c:217
#21 0x00002aaaafbc0b77 in surface_fill (x=<value optimized out>,
y=<value optimized out>, width=<value optimized out>,
height=<value optimized out>, value=<value optimized out>) at mask.c:392
#22 mask_fill (x=<value optimized out>, y=<value optimized out>,
width=<value optimized out>, height=<value optimized out>,
value=<value optimized out>) at mask.c:678
#23 0x00002aaaafbc05f1 in setup_new_alpha_mask (ctx=0x74ae70)
at vg_manager.c:123
#24 vg_context_update_draw_buffer (ctx=0x74ae70) at vg_manager.c:258
#25 vg_manager_validate_framebuffer (ctx=0x74ae70) at vg_manager.c:313
#26 0x00002aaaafbdd2f4 in vg_validate_state (ctx=0x6bda50) at vg_context.c:345
#27 0x00002aaaafbed408 in path_render (p=0x753650, paintModes=2)
at path.c:1527
#28 0x00002aaaaad4fab5 in _vg_surface_paint (abstract_surface=0x752880,
op=<value optimized out>, source=<value optimized out>, clip=0x0)
---Type <return> to continue, or q <return> to quit---
at cairo-vg-surface.c:1259
#29 0x00002aaaaad19f57 in _cairo_surface_paint (surface=0x752880,
op=CAIRO_OPERATOR_OVER, source=0x7fffffffbe40, clip=0x0)
at cairo-surface.c:2023
#30 0x00002aaaaacf0a42 in _cairo_gstate_paint (gstate=0x2aaaaaf8db28)
at cairo-gstate.c:1049
#31 0x00002aaaaace75e4 in *INT_cairo_paint (cr=0x2aaaaaf8d960) at cairo.c:2232
#32 0x000000000040f2e4 in draw (cr=0x2aaaaaf8d960,
width=<value optimized out>, height=<value optimized out>) at a1-bug.c:41
#33 0x000000000040bbb3 in cairo_test_for_target (ctx=0x7fffffffd7a0,
target=0x666bc0, dev_offset=<value optimized out>,
similar=<value optimized out>) at cairo-test.c:984
#34 0x000000000040d387 in _cairo_test_context_run_for_target (
ctx=<value optimized out>, target=<value optimized out>,
similar=<value optimized out>, dev_offset=<value optimized out>)
at cairo-test.c:1617
#35 0x000000000040e7f9 in _cairo_test_runner_draw (
argc=<value optimized out>, argv=<value optimized out>)
at cairo-test-runner.c:269
#36 main (argc=<value optimized out>, argv=<value optimized out>)
at cairo-test-runner.c:924
(gdb) bt
#0 0x00002aaaaeac6e5b in
llvm::LiveIntervals::addIntervalsForSpills(llvm::LiveInterval const&,
llvm::SmallVectorImpl<llvm::LiveInterval*>&, llvm::MachineLoopInfo const*,
llvm::VirtRegMap&) () from /usr/lib64/egl/pipe_swrast.so
#1 0x00002aaaaea69088 in (anonymous
namespace)::StandardSpiller::spill(llvm::LiveInterval*,
llvm::SmallVectorImpl<llvm::LiveInterval*>&, llvm::SlotIndex*)
() from /usr/lib64/egl/pipe_swrast.so
#2 0x00002aaaaea3bbd2 in (anonymous
namespace)::RALinScan::assignRegOrStackSlotAtInterval(llvm::LiveInterval*) ()
from /usr/lib64/egl/pipe_swrast.so
#3 0x00002aaaaea3dd60 in (anonymous namespace)::RALinScan::linearScan() ()
from /usr/lib64/egl/pipe_swrast.so
#4 0x00002aaaaea3eb48 in (anonymous
namespace)::RALinScan::runOnMachineFunction(llvm::MachineFunction&) () from
/usr/lib64/egl/pipe_swrast.so
#5 0x00002aaaaecf831c in llvm::FPPassManager::runOnFunction(llvm::Function&)
() from /usr/lib64/egl/pipe_swrast.so
#6 0x00002aaaaecf84b4 in llvm::FunctionPassManagerImpl::run(llvm::Function&)
() from /usr/lib64/egl/pipe_swrast.so
#7 0x00002aaaaecf86ae in llvm::FunctionPassManager::run(llvm::Function&) ()
from /usr/lib64/egl/pipe_swrast.so
#8 0x00002aaaae9cb0ac in llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*,
llvm::MutexGuard const&) () from /usr/lib64/egl/pipe_swrast.so
#9 0x00002aaaae9cb474 in llvm::JIT::getPointerToFunction(llvm::Function*) ()
from /usr/lib64/egl/pipe_swrast.so
---Type <return> to continue, or q <return> to quit---
#10 0x00002aaaae9e3f56 in
llvm::ExecutionEngine::getPointerToGlobal(llvm::GlobalValue const*) () from
/usr/lib64/egl/pipe_swrast.so
#11 0x00002aaaae7d3172 in draw_llvm_generate (llvm=<value optimized out>,
variant=<value optimized out>) at draw/draw_llvm.c:1189
#12 0x00002aaaae7d3a50 in draw_llvm_create_variant (llvm=0x705070,
num_inputs=<value optimized out>, key=0x7fffffffb710)
at draw/draw_llvm.c:326
#13 0x00002aaaae7d5683 in llvm_middle_end_prepare (middle=0x71efe0,
in_prim=<value optimized out>, opt=<value optimized out>,
max_vertices=<value optimized out>)
at draw/draw_pt_fetch_shade_pipeline_llvm.c:161
#14 0x00002aaaae7a9745 in vsplit_prepare (frontend=0x71c1d0, in_prim=0,
middle=0x7dc210, opt=0) at draw/draw_pt_vsplit.c:170
#15 0x00002aaaae7a588b in draw_pt_arrays (draw=<value optimized out>, prim=6,
start=0, count=4) at draw/draw_pt.c:111
#16 0x00002aaaae7a5a6d in draw_vbo (draw=0x703f10, info=0x7fffffffbaf0)
at draw/draw_pt.c:481
#17 0x00002aaaae784350 in llvmpipe_draw_vbo (pipe=0x702fa0,
info=0x7fffffffbaf0) at lp_draw_arrays.c:81
#18 0x00002aaaafc0680a in util_draw_arrays (pipe=0x702fa0,
vbuf=<value optimized out>, offset=<value optimized out>, prim_type=6,
num_verts=4, num_attribs=<value optimized out>) at ./util/u_draw.h:58
---Type <return> to continue, or q <return> to quit---
#19 util_draw_vertex_buffer (pipe=0x702fa0, vbuf=<value optimized out>,
offset=<value optimized out>, prim_type=6, num_verts=4,
num_attribs=<value optimized out>) at util/u_draw_quad.c:63
#20 0x00002aaaafbf54a6 in renderer_draw_quad (r=0x74dfc0,
x1=<value optimized out>, y1=<value optimized out>,
x2=<value optimized out>, y2=<value optimized out>,
depth=<value optimized out>) at renderer.c:217
#21 0x00002aaaafbc0b77 in surface_fill (x=<value optimized out>,
y=<value optimized out>, width=<value optimized out>,
height=<value optimized out>, value=<value optimized out>) at mask.c:392
#22 mask_fill (x=<value optimized out>, y=<value optimized out>,
width=<value optimized out>, height=<value optimized out>,
value=<value optimized out>) at mask.c:678
#23 0x00002aaaafbc05f1 in setup_new_alpha_mask (ctx=0x74ae70)
at vg_manager.c:123
#24 vg_context_update_draw_buffer (ctx=0x74ae70) at vg_manager.c:258
#25 vg_manager_validate_framebuffer (ctx=0x74ae70) at vg_manager.c:313
#26 0x00002aaaafbdd2f4 in vg_validate_state (ctx=0x6bda50) at vg_context.c:345
#27 0x00002aaaafbed408 in path_render (p=0x753650, paintModes=2)
at path.c:1527
#28 0x00002aaaaad4fab5 in _vg_surface_paint (abstract_surface=0x752880,
op=<value optimized out>, source=<value optimized out>, clip=0x0)
(gdb) frame 11
#11 0x00002aaaae7d3172 in draw_llvm_generate (llvm=<value optimized out>,
variant=<value optimized out>) at draw/draw_llvm.c:1189
1189 code = LLVMGetPointerToGlobal(llvm->draw->engine,
variant->function);
(gdb) list
1184 if (gallivm_debug & GALLIVM_DEBUG_IR) {
1185 lp_debug_dump_value(variant->function);
1186 debug_printf("\n");
1187 }
1188
1189 code = LLVMGetPointerToGlobal(llvm->draw->engine,
variant->function);
1190 variant->jit_func = (draw_jit_vert_func)pointer_to_func(code);
1191
1192 if (gallivm_debug & GALLIVM_DEBUG_ASM) {
1193 lp_disassemble(code);
(gdb) frame 12
#12 0x00002aaaae7d3a50 in draw_llvm_create_variant (llvm=0x705070,
num_inputs=<value optimized out>, key=0x7fffffffb710)
at draw/draw_llvm.c:326
326 draw_llvm_generate(llvm, variant);
(gdb) print *llvm
$12 = {draw = 0x703f10, jit_context = {vs_constants = 0x0,
gs_constants = 0x0, planes = 0x0, viewport = 0x0, textures = {{width = 0,
height = 0, depth = 0, last_level = 0, row_stride = {
0 <repeats 16 times>}, img_stride = {0 <repeats 16 times>}, data = {
0x0 <repeats 16 times>}, min_lod = 0, max_lod = 0, lod_bias = 0,
border_color = {0, 0, 0, 0}} <repeats 16 times>}},
vs_variants_list = {base = 0x0, next = 0x706398, prev = 0x706398},
nr_variants = 0, module = 0x6f19e0, engine = 0x693320, provider = 0x6f19e0,
target = 0x6909d0, pass = 0x6f38e0, context_ptr_type = 0x715960,
vertex_header_ptr_type = 0x7735b0, buffer_ptr_type = 0x715a50,
vb_ptr_type = 0x715e50}
(gdb) print *key
$13 = {nr_vertex_elements = 2, nr_samplers = 0, clip_xy = 1, clip_z = 1,
clip_user = 0, clip_halfz = 0, bypass_viewport = 0, need_edgeflags = 0,
nr_planes = 6, pad = 0, vertex_element = {{src_offset = 0,
instance_divisor = 0, vertex_buffer_index = 0,
src_format = PIPE_FORMAT_R32G32B32A32_FLOAT}}}
(gdb) print *shader
$14 = {base = {draw = 0x703f10, state = {tokens = 0x756050}, info = {
num_tokens = 8, num_inputs = 1 '\001', num_outputs = 1 '\001',
input_semantic_name = '\000' <repeats 31 times>,
input_semantic_index = '\000' <repeats 31 times>,
input_interpolate = '\000' <repeats 31 times>,
input_centroid = '\000' <repeats 31 times>,
input_usage_mask = "\017", '\000' <repeats 30 times>,
input_cylindrical_wrap = '\000' <repeats 31 times>,
output_semantic_name = '\000' <repeats 31 times>,
output_semantic_index = '\000' <repeats 31 times>, file_mask = {0, 3,
1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, file_count = {0, 2, 1, 1, 1, 0, 0, 0,
0, 0, 0, 0}, file_max = {-1, 1, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1},
immediate_count = 0, num_instructions = 4, opcode_count = {0, 1, 0, 0,
0, 0, 0, 1, 1, 0 <repeats 108 times>, 1, 0 <repeats 27 times>},
writes_z = 0 '\000', writes_stencil = 0 '\000',
writes_edgeflag = 0 '\000', uses_kill = 0 '\000', indirect_files = 0,
properties = {{name = 0, data = {0, 0, 0, 0, 0, 0, 0, 0}}, {name = 0,
data = {0, 0, 0, 0, 0, 0, 0, 0}}, {name = 0, data = {0, 0, 0, 0, 0,
0, 0, 0}}, {name = 0, data = {0, 0, 0, 0, 0, 0, 0, 0}}, {
name = 0, data = {0, 0, 0, 0, 0, 0, 0, 0}}}, num_properties = 0},
position_output = 0, edgeflag_output = 0, immediates = 0x0, varient = {
0x0 <repeats 16 times>}, nr_varients = 0, last_varient = 0,
---Type <return> to continue, or q <return> to quit---
create_varient = 0x2aaaae7afc70 <draw_vs_create_varient_generic>,
prepare = 0x2aaaae7d4d50 <vs_llvm_prepare>,
run_linear = 0x2aaaae7d4d60 <vs_llvm_run_linear>,
delete = 0x2aaaae7d4e70 <vs_llvm_delete>}, variant_key_size = 20,
variants = {base = 0x0, next = 0x756748, prev = 0x756748},
variants_created = 0, variants_cached = 0}
#28 0x00002aaaaad4fab5 in _vg_surface_paint (abstract_surface=0x752880,
op=<value optimized out>, source=<value optimized out>, clip=0x0)
at cairo-vg-surface.c:1259
1259 vgDrawPath (fullext, VG_FILL_PATH);
(gdb) list
1254
1255 fullext = vgCreatePath (VG_PATH_FORMAT_STANDARD,
VG_PATH_DATATYPE_F,
1256 1,0,0,0, VG_PATH_CAPABILITY_ALL);
1257 vgAppendPathData (fullext, sizeof(segs), segs, data);
1258
1259 vgDrawPath (fullext, VG_FILL_PATH);
1260
1261 vgDestroyPath (fullext);
1262 }
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the mesa-dev
mailing list