[Libva] Crashes in gpe pipeline with vpp sharpening
Antti Seppälä
a.seppala at gmail.com
Thu Nov 27 23:55:10 PST 2014
Hello.
I'm experiencing frequent crashes in libva-intel-driver when using vpp
sharpening filter.
I'm deinterlacing a surface with vpp and then trying to run vpp
sharpening filter on to that surface. The sharpening process works for
a while (approx 4-6 minutes ~ 13000 surfaces) but then an assert or
segmentation fault occurs in libva-intel-driver.
Here's my setup:
libva-1.4.1
libva-intel-driver-1.4.2.pre1 (from git)
Intel D54250WYK NUC kit (Haswell i5)
Here is gdb backtrace of the assert:
i965_gpe_utils.c:626: gen7_gpe_media_rw_surface_setup: Assertion
`bo->virtual' failed.
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffc6ad1700 (LWP 15044)]
0x00007ffff62ef297 in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff62ef297 in raise () from /lib64/libc.so.6
#1 0x00007ffff62f05b8 in abort () from /lib64/libc.so.6
#2 0x00007ffff62e83c6 in __assert_fail_base () from /lib64/libc.so.6
#3 0x00007ffff62e8472 in __assert_fail () from /lib64/libc.so.6
#4 0x00007fffdd99782e in gen7_gpe_media_rw_surface_setup
(ctx=ctx at entry=0x9c2fd0, gpe_context=gpe_context at entry=0x7fffbc2677e8,
obj_surface=obj_surface at entry=0x9c96c8,
binding_table_offset=binding_table_offset at entry=1088,
surface_state_offset=surface_state_offset at entry=0) at i965_gpe_utils.c:626
#5 0x00007fffdd97d67a in gen75_gpe_process_surfaces_setup
(vpp_gpe_ctx=0x7fffbc2677e0, ctx=0x9c2fd0) at gen75_vpp_gpe.c:136
#6 gen75_gpe_process_prepare (vpp_gpe_ctx=0x7fffbc2677e0,
ctx=0x9c2fd0) at gen75_vpp_gpe.c:323
#7 gen75_gpe_process (vpp_gpe_ctx=0x7fffbc2677e0, ctx=0x9c2fd0) at
gen75_vpp_gpe.c:352
#8 vpp_gpe_process (ctx=ctx at entry=0x9c2fd0,
vpp_gpe_ctx=vpp_gpe_ctx at entry=0x7fffbc2677e0) at gen75_vpp_gpe.c:613
#9 0x00007fffdd97e37f in vpp_gpe_process_sharpening
(vpp_gpe_ctx=0x7fffbc2677e0, ctx=0x9c2fd0) at gen75_vpp_gpe.c:766
#10 vpp_gpe_process_picture (ctx=ctx at entry=0x9c2fd0,
vpp_gpe_ctx=0x7fffbc2677e0) at gen75_vpp_gpe.c:833
#11 0x00007fffdd97c02a in gen75_vpp_gpe (proc_ctx=0x7fffbc256d80,
ctx=0x9c2fd0) at gen75_picture_process.c:105
#12 gen75_proc_picture (ctx=0x9c2fd0, profile=VAProfileNone,
codec_state=0x9c6a18, hw_context=0x7fffbc256d80) at
gen75_picture_process.c:201
#13 0x00007ffff3d5adef in vaEndPicture () from /usr/lib64/libva.so.1
(gdb) bt full
#0 0x00007ffff62ef297 in raise () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007ffff62f05b8 in abort () from /lib64/libc.so.6
No symbol table info available.
#2 0x00007ffff62e83c6 in __assert_fail_base () from /lib64/libc.so.6
No symbol table info available.
#3 0x00007ffff62e8472 in __assert_fail () from /lib64/libc.so.6
No symbol table info available.
#4 0x00007fffdd99782e in gen7_gpe_media_rw_surface_setup
(ctx=ctx at entry=0x9c2fd0, gpe_context=gpe_context at entry=0x7fffbc2677e8,
obj_surface=obj_surface at entry=0x9c96c8,
binding_table_offset=binding_table_offset at entry=1088,
surface_state_offset=surface_state_offset at entry=0) at i965_gpe_utils.c:626
ss = <optimized out>
bo = 0x7fffbd9e2500
__PRETTY_FUNCTION__ = "gen7_gpe_media_rw_surface_setup"
#5 0x00007fffdd97d67a in gen75_gpe_process_surfaces_setup
(vpp_gpe_ctx=0x7fffbc2677e0, ctx=0x9c2fd0) at gen75_vpp_gpe.c:136
obj_surface = 0x9c96c8
i = 0
input_surface_sum = 4 '\004'
#6 gen75_gpe_process_prepare (vpp_gpe_ctx=0x7fffbc2677e0,
ctx=0x9c2fd0) at gen75_vpp_gpe.c:323
No locals.
#7 gen75_gpe_process (vpp_gpe_ctx=0x7fffbc2677e0, ctx=0x9c2fd0) at
gen75_vpp_gpe.c:352
va_status = <optimized out>
#8 vpp_gpe_process (ctx=ctx at entry=0x9c2fd0,
vpp_gpe_ctx=vpp_gpe_ctx at entry=0x7fffbc2677e0) at gen75_vpp_gpe.c:613
No locals.
#9 0x00007fffdd97e37f in vpp_gpe_process_sharpening
(vpp_gpe_ctx=0x7fffbc2677e0, ctx=0x9c2fd0) at gen75_vpp_gpe.c:766
filter = <optimized out>
thr_param_size = 24
i = <optimized out>
va_status = <optimized out>
filter_ids = <optimized out>
pipe = <optimized out>
obj_buf = <optimized out>
origin_in_obj_surface = <optimized out>
origin_out_obj_surface = 0x7fffbc255c50
sharpening_intensity = <optimized out>
thr_param = {base = {pic_width = 720, pic_height = 576, v_pos
= <optimized out>, h_pos = <optimized out>}, l_amount = <optimized
out>,
d_amount = <optimized out>}
pos = <optimized out>
#10 vpp_gpe_process_picture (ctx=ctx at entry=0x9c2fd0,
vpp_gpe_ctx=0x7fffbc2677e0) at gen75_vpp_gpe.c:833
va_status = 0
pipe = <optimized out>
filter = <optimized out>
i = <optimized out>
obj_surface = <optimized out>
__PRETTY_FUNCTION__ = "vpp_gpe_process_picture"
#11 0x00007fffdd97c02a in gen75_vpp_gpe (proc_ctx=0x7fffbc256d80,
ctx=0x9c2fd0) at gen75_picture_process.c:105
va_status = 0
#12 gen75_proc_picture (ctx=0x9c2fd0, profile=VAProfileNone,
codec_state=0x9c6a18, hw_context=0x7fffbc256d80) at
gen75_picture_process.c:201
obj_buf = <optimized out>
filter = <optimized out>
proc_st = 0x9c6a18
proc_ctx = 0x7fffbc256d80
pipeline_param = 0x7fffbd9e1b10
obj_dst_surf = <optimized out>
obj_src_surf = <optimized out>
__PRETTY_FUNCTION__ = "gen75_proc_picture"
filter_id = <optimized out>
#13 0x00007ffff3d5adef in vaEndPicture () from /usr/lib64/libva.so.1
No symbol table info available.
Here is gdb backtrace of the segfault:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffc6ad1700 (LWP 14872)]
gen75_gpe_process_parameters_fill (ctx=<optimized out>,
vpp_gpe_ctx=0x7fffb0266ba0) at gen75_vpp_gpe.c:238
238 *command_ptr++ = (CMD_MEDIA_OBJECT | (size/sizeof(int) + 6 - 2));
(gdb) bt
#0 gen75_gpe_process_parameters_fill (ctx=<optimized out>,
vpp_gpe_ctx=0x7fffb0266ba0) at gen75_vpp_gpe.c:238
#1 gen75_gpe_process_pipeline_setup (vpp_gpe_ctx=0x7fffb0266ba0,
ctx=0x30) at gen75_vpp_gpe.c:268
#2 gen75_gpe_process_prepare (vpp_gpe_ctx=0x7fffb0266ba0, ctx=0x30)
at gen75_vpp_gpe.c:328
#3 gen75_gpe_process (vpp_gpe_ctx=0x7fffb0266ba0, ctx=0x30) at
gen75_vpp_gpe.c:352
#4 vpp_gpe_process (ctx=ctx at entry=0x9c2ff0,
vpp_gpe_ctx=vpp_gpe_ctx at entry=0x7fffb0266ba0) at gen75_vpp_gpe.c:613
#5 0x00007fffdd97e37f in vpp_gpe_process_sharpening
(vpp_gpe_ctx=0x7fffb0266ba0, ctx=0x9c2ff0) at gen75_vpp_gpe.c:766
#6 vpp_gpe_process_picture (ctx=ctx at entry=0x9c2ff0,
vpp_gpe_ctx=0x7fffb0266ba0) at gen75_vpp_gpe.c:833
#7 0x00007fffdd97c02a in gen75_vpp_gpe (proc_ctx=0x7fffb0256c70,
ctx=0x9c2ff0) at gen75_picture_process.c:105
#8 gen75_proc_picture (ctx=0x9c2ff0, profile=VAProfileNone,
codec_state=0x9c6a28, hw_context=0x7fffb0256c70) at
gen75_picture_process.c:201
#9 0x00007ffff3d5adef in vaEndPicture () from /usr/lib64/libva.so.1
(gdb) bt full
#0 gen75_gpe_process_parameters_fill (ctx=<optimized out>,
vpp_gpe_ctx=0x7fffb0266ba0) at gen75_vpp_gpe.c:238
command_ptr = 0x4
i = 0
size = 24
position = <optimized out>
#1 gen75_gpe_process_pipeline_setup (vpp_gpe_ctx=0x7fffb0266ba0,
ctx=0x30) at gen75_vpp_gpe.c:268
No locals.
#2 gen75_gpe_process_prepare (vpp_gpe_ctx=0x7fffb0266ba0, ctx=0x30)
at gen75_vpp_gpe.c:328
No locals.
#3 gen75_gpe_process (vpp_gpe_ctx=0x7fffb0266ba0, ctx=0x30) at
gen75_vpp_gpe.c:352
va_status = <optimized out>
#4 vpp_gpe_process (ctx=ctx at entry=0x9c2ff0,
vpp_gpe_ctx=vpp_gpe_ctx at entry=0x7fffb0266ba0) at gen75_vpp_gpe.c:613
No locals.
#5 0x00007fffdd97e37f in vpp_gpe_process_sharpening
(vpp_gpe_ctx=0x7fffb0266ba0, ctx=0x9c2ff0) at gen75_vpp_gpe.c:766
filter = <optimized out>
thr_param_size = 24
i = <optimized out>
va_status = <optimized out>
filter_ids = <optimized out>
pipe = <optimized out>
obj_buf = <optimized out>
origin_in_obj_surface = <optimized out>
origin_out_obj_surface = 0x9c9390
sharpening_intensity = <optimized out>
thr_param = {base = {pic_width = 720, pic_height = 576, v_pos
= <optimized out>, h_pos = <optimized out>}, l_amount = <optimized
out>,
d_amount = <optimized out>}
pos = <optimized out>
#6 vpp_gpe_process_picture (ctx=ctx at entry=0x9c2ff0,
vpp_gpe_ctx=0x7fffb0266ba0) at gen75_vpp_gpe.c:833
va_status = 0
pipe = <optimized out>
filter = <optimized out>
i = <optimized out>
obj_surface = <optimized out>
__PRETTY_FUNCTION__ = "vpp_gpe_process_picture"
#7 0x00007fffdd97c02a in gen75_vpp_gpe (proc_ctx=0x7fffb0256c70,
ctx=0x9c2ff0) at gen75_picture_process.c:105
va_status = 0
#8 gen75_proc_picture (ctx=0x9c2ff0, profile=VAProfileNone,
codec_state=0x9c6a28, hw_context=0x7fffb0256c70) at
gen75_picture_process.c:201
obj_buf = <optimized out>
filter = <optimized out>
proc_st = 0x9c6a28
proc_ctx = 0x7fffb0256c70
pipeline_param = 0x7fffb19de600
obj_dst_surf = <optimized out>
obj_src_surf = <optimized out>
__PRETTY_FUNCTION__ = "gen75_proc_picture"
filter_id = <optimized out>
#9 0x00007ffff3d5adef in vaEndPicture () from /usr/lib64/libva.so.1
No symbol table info available.
I don't have any idea how to proceed next. Any help would be appreciated.
Br,
--
Antti Seppälä
More information about the Libva
mailing list