Hello Ilia, I was your last commit which fixing xvmc support for nv30 hw in mesa git tree. Maybe you can help me. I have graphics card nvidia geforce 6600 gt (nv43 chip) According to wiki page http://nouveau.freedesktop.org/wiki/FeatureMatrix/ xvmc support for nv43 is already done. When I start xvmcinfo it print:
$ ./xvmcinfo Xv version 2.2 XvMC version 1.1 screen number 0 info for adaptor 0 [NV40 texture adapter] number of XvMC surface types: 2 info about surface 0: max_width=2048 max_height=2048 subpicture_max_width=2048 subpicture_max_height=2048 chroma_format: XVMC_CHROMA_FORMAT_420 mc_type: format : MPEG2 accelaration start from : IDCT flags: XVMC_BACKEND_SUBPICTURE XVMC_SUBPICTURE_INDEPENDENT_SCALING info about surface 1: max_width=2048 max_height=2048 subpicture_max_width=2048 subpicture_max_height=2048 chroma_format: XVMC_CHROMA_FORMAT_422 mc_type: format : MPEG2 accelaration start from : IDCT flags: XVMC_BACKEND_SUBPICTURE XVMC_SUBPICTURE_INDEPENDENT_SCALING info for adaptor 1 [NV40 high quality adapter] number of XvMC surface types: 0 info for adaptor 2 [NV Video Blitter] number of XvMC surface types: 0 So some xvmc support is there (via nouveau xvmc library). But when I tried to use mpeg2play_accel testing application (or mplayer) it crash. Here is gdb backtrace from coredump file: (gdb) bt #0 0x0000000000000000 in ?? () #1 0x00007fca300cd345 in XvMCCreateContext (dpy=0xbefd00, port=63, surface_type_id=842094169, width=720, height=480, flags=1, context=0x60dee0) at context.c:248 #2 0x000000000040941f in init_display () at display.c:270 #3 0x0000000000402f0c in initdecoder () at mpeg2dec.c:211 #4 0x0000000000402b57 in main (argc=2, argv=0x7fff94c89f10) at mpeg2dec.c:121 (gdb) bt full #0 0x0000000000000000 in ?? () No symbol table info available. #1 0x00007fca300cd345 in XvMCCreateContext (dpy=0xbefd00, port=63, surface_type_id=842094169, width=720, height=480, flags=1, context=0x60dee0) at context.c:248 found_port = true scrn = 0 chroma_format = 1 mc_type = 65538 surface_flags = 6 subpic_max_w = 2048 subpic_max_h = 2048 ret = 0 vscreen = 0xbf13f0 pipe = 0xc191e0 context_priv = 0xbfead0 csc = {{0, 0, 0, 0}, {-2.02570359e-26, 4.59163468e-41, 5.89217978e-39, 0}, {-2.02575536e-26, 4.59163468e-41, 8.44951942e-10, 4.5842078e-41}} #2 0x000000000040941f in init_display () at display.c:270 surface_type_id = 842094169 result = 0 i = 4204800 color = 0 root = 652 #3 0x0000000000402f0c in initdecoder () at mpeg2dec.c:211 i = 640 blk_cnt_tab = {6, 8, 12} #4 0x0000000000402b57 in main (argc=2, argv=0x7fff94c89f10) at mpeg2dec.c:121 first = 1 framenum = 0 runtime = 0 tstart = {tv_sec = 140735689563912, tv_usec = 4236512} tstop = {tv_sec = 0, tv_usec = 4204800} It looks like that in mesa code is calling pipe->create_video_decoder(...) but create_video_decoder is NULL and then it crash. (gdb) print *pipe $1 = {screen = 0xbffa50, priv = 0xbf13f0, draw = 0x0, destroy = 0x7fca300d00a0 <nv30_context_destroy>, draw_vbo = 0x7fca300da250 <nv30_draw_vbo>, render_condition = 0x7fca300dd760 <nv40_query_render_condition>, create_query = 0x7fca300dd510 <nv30_query_create>, destroy_query = 0x7fca300dd500 <nv30_query_destroy>, begin_query = 0x7fca300dd890 <nv30_query_begin>, end_query = 0x7fca300dd670 <nv30_query_end>, get_query_result = 0x7fca300dd410 <nv30_query_result>, create_blend_state = 0x7fca300d47f0 <nv30_blend_state_create>, bind_blend_state = 0x7fca300d3da0 <nv30_blend_state_bind>, delete_blend_state = 0x7fca300d4160 <nv30_blend_state_delete>, create_sampler_state = 0x7fca300d69f0 <nv30_sampler_state_create>, bind_fragment_sampler_states = 0x7fca300d72a0 <nv30_fragtex_sampler_states_bind>, bind_vertex_sampler_states = 0x7fca300d79a0 <nv40_verttex_sampler_states_bind>, bind_geometry_sampler_states = 0, bind_compute_sampler_states = 0, delete_sampler_state = 0x7fca300d69e0 <nv30_sampler_state_delete>, create_rasterizer_state = 0x7fca300d44a0 <nv30_rasterizer_state_create>, bind_rasterizer_state = 0x7fca300d3db0 <nv30_rasterizer_state_bind>, delete_rasterizer_state = 0x7fca300d4150 <nv30_rasterizer_state_delete>, create_depth_stencil_alpha_state = 0x7fca300d4170 <nv30_zsa_state_create>, bind_depth_stencil_alpha_state = 0x7fca300d3dc0 <nv30_zsa_state_bind>, delete_depth_stencil_alpha_state = 0x7fca300d4140 <nv30_zsa_state_delete>, create_fs_state = 0x7fca300d7cb0 <nv30_fp_state_create>, bind_fs_state = 0x7fca300d7c40 <nv30_fp_state_bind>, delete_fs_state = 0x7fca300d7c50 <nv30_fp_state_delete>, create_vs_state = 0x7fca300d8240 <nv30_vp_state_create>, bind_vs_state = 0x7fca300d8230 <nv30_vp_state_bind>, delete_vs_state = 0x7fca300d8360 <nv30_vp_state_delete>, create_gs_state = 0, bind_gs_state = 0, delete_gs_state = 0, create_vertex_elements_state = 0x7fca300d9d90 <nv30_vertex_state_create>, bind_vertex_elements_state = 0x7fca300d9d40 <nv30_vertex_state_bind>, delete_vertex_elements_state = 0x7fca300d9d60 <nv30_vertex_state_delete>, set_blend_color = 0x7fca300d3dd0 <nv30_set_blend_color>, set_stencil_ref = 0x7fca300d3df0 <nv30_set_stencil_ref>, set_sample_mask = 0x7fca300d3e10 <nv30_set_sample_mask>, set_clip_state = 0x7fca300d4080 <nv30_set_clip_state>, set_constant_buffer = 0x7fca300d4c30 <nv30_set_constant_buffer>, set_framebuffer_state = 0x7fca300d3f50 <nv30_set_framebuffer_state>, set_polygon_stipple = 0x7fca300d3e30 <nv30_set_polygon_stipple>, set_scissor_states = 0x7fca300d3ef0 <nv30_set_scissor_states>, set_viewport_states = 0x7fca300d3f10 <nv30_set_viewport_states>, set_fragment_sampler_views = 0x7fca300d7330 <nv30_fragtex_set_sampler_views>, set_vertex_sampler_views = 0x7fca300d7a30 <nv40_verttex_set_sampler_views>, set_geometry_sampler_views = 0, set_compute_sampler_views = 0, set_shader_resources = 0, set_vertex_buffers = 0x7fca300d4000 <nv30_set_vertex_buffers>, set_index_buffer = 0x7fca300d4dc0 <nv30_set_index_buffer>, create_stream_output_target = 0, stream_output_target_destroy = 0, set_stream_output_targets = 0, resource_copy_region = 0x7fca300d2e30 <nv30_resource_copy_region>, blit = 0x7fca300d3370 <nv30_blit>, clear = 0x7fca300d8be0 <nv30_clear>, clear_render_target = 0x7fca300d95c0 <nv30_clear_render_target>, clear_depth_stencil = 0x7fca300d91b0 <nv30_clear_depth_stencil>, flush = 0x7fca300d0130 <nv30_context_flush>, create_sampler_view = 0x7fca300d6ec0 <nv30_sampler_view_create>, sampler_view_destroy = 0x7fca300d7220 <nv30_sampler_view_destroy>, create_surface = 0x7fca300d3be0 <nv30_miptree_surface_new>, surface_destroy = 0x7fca300d3d60 <nv30_miptree_surface_del>, transfer_map = 0x7fca30031040 <u_transfer_map_vtbl>, transfer_flush_region = 0x7fca30031050 <u_transfer_flush_region_vtbl>, transfer_unmap = 0x7fca30031060 <u_transfer_unmap_vtbl>, transfer_inline_write = 0x7fca30031070 <u_transfer_inline_write_vtbl>, texture_barrier = 0, create_video_decoder = 0, create_video_buffer = 0, create_compute_state = 0, bind_compute_state = 0, delete_compute_state = 0, set_compute_resources = 0, set_global_binding = 0, launch_grid = 0, get_sample_position = 0} Can you look at this xvmc problem? At least mesa should not crash if there is problem or unsupported hardware. If you need some more debug info (or full coredump file) I can send it. -- Pali Rohár pali.ro...@gmail.com
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev