[Intel-gfx] libva to play h264 on GMA4500HD
Alexey Fisher
bug-track at fisher-privat.net
Tue Jul 13 15:48:52 CEST 2010
On Di, 2010-07-13 at 01:47 +0100, Pedro Ribeiro wrote:
> 2010/7/12 Niccolò Belli <darkbasic4 at gmail.com>:
> > I fear there is still no support for gma45...
> >
> > Darkbasic
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> >
>
> Support should come in Q3 according to the devs.
I just digged to the code. Now i a bit disappointed, at the time i
choice this board, intel made difference between GMA4500 and GMA4500HD.
In the code there is no difference. it is just one of the boards form
kernels_gen4 with not really "hardware" acceleration:
i965_media_h264.c
if (IS_IRONLAKE(i965->intel.device_id)) {
h264_avc_kernels = h264_avc_kernels_gen5;
avc_mc_kernel_offset = avc_mc_kernel_offset_gen5;
intra_kernel_header = &intra_kernel_header_gen5;
i965_h264_context->use_avc_hw_scoreboard = 1;
i965_h264_context->use_hw_w128 = 1;
} else {
h264_avc_kernels = h264_avc_kernels_gen4;
avc_mc_kernel_offset = avc_mc_kernel_offset_gen4;
intra_kernel_header = &intra_kernel_header_gen4;
i965_h264_context->use_avc_hw_scoreboard = 0; <===
i965_h264_context->use_hw_w128 = 0; <===
}
Any way, there is always some thing better...
About the bug, i see gen4 is enabled to do h264.
Devs put assert here to prevent some thing bad - thank you.
Here is what i get:
i965_avc_ildb.c:620
============================================
assert(avc_ildb_context->urb.cs_start +
avc_ildb_context->urb.num_cs_entries *
avc_ildb_context->urb.size_cs_entry <=
URB_SIZE((&i965->intel)));
===============================================
and here is why i get it:
avc_ildb_context->urb.cs_start = 640
avc_ildb_context->urb.num_cs_entries = 1
avc_ildb_context->urb.size_cs_entry = 1
URB_SIZE((&i965->intel)) = 384
URB_SIZE is definded here:
i965_defines.h
========================================
#define URB_SIZE(intel) (IS_IRONLAKE(intel->device_id) ? 1024 :
\
IS_G4X(intel->device_id) ? 384 : 256)
===============================================
After it I tried to do some thing bad and set
avc_ildb_context->urb.size_vfe_entry = 380;
so i got GPU freeze. Now i'm happy :)
Hope this info help you.
Regards,
Alexey
More information about the Intel-gfx
mailing list