[FFmpeg-devel] H.264 Regressions for x86_32/gcc 2.95.3
Michael Niedermayer
michaelni
Fri Feb 8 12:32:50 CET 2008
Hi
On Thu, Feb 07, 2008 at 10:31:00PM -0800, Mike Melanson wrote:
> Loren Merritt wrote:
> > Doesn't crash for me (but I don't have gcc 2.95), so I have to ask for all
> > the normal bugreport details.
> > Also, do your cpu and assembler support ssse3? If not, it might be one of
> > the previous few commits that broke, and you just weren't using that code.
>
> For every checkin (though they sometimes get stacked), the code is built
> for a variety of different gcc versions and the exact same tests are
> run. The database demonstrates that the tests worked until that commit.
>
> The testing CPU supports SSSE3. If it did not and it tried to run a bad
> instruction, the program would have been killed for cause of illegal
> instruction, not segfault.
>
> If the assembler did not support the instructions, I tend to think the
> program would not build at all.
>
> > If I had to guess, it might be the notorious non-support of aligned
> > variables.
>
> Could be:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x0810ddc4 in put_h264_qpel16_mc23_ssse3 (dst=0x8299fc5 "\203?\020\203? ?",
> src=0x8653210 '\200' <repeats 64 times>,
> "\"\213???????????????????????????????\214|xuutsqkif`XPH>71./136;?DHLO^rwz~\203\215\215\215\215\205\177|zzzzz}}}}{|vswqieeeefoxtt\200\201\205\207\210\203|y\177~~\177\203\202\202\202\203\202\204z__][",
> 'Z' <repeats 12 times>..., stride=140782355)
> at /home/melanson/ffmpeg/ffmpeg-main/libavcodec/i386/h264dsp_mmx.c:1894
> 1894 QPEL_H264_HV2_XMM(put_, PUT_OP, ssse3)
> (gdb) bt
> #0 0x0810ddc4 in put_h264_qpel16_mc23_ssse3 (
> dst=0x8299fc5 "\203?\020\203? ?",
> src=0x8653210 '\200' <repeats 64 times>,
> "\"\213???????????????????????????????\214|xuutsqkif`XPH>71./136;?DHLO^rwz~\203\215\215\215\215\205\177|zzzzz}}}}{|vswqieeeefoxtt\200\201\205\207\210\203|y\177~~\177\203\202\202\202\203\202\204z__][",
> 'Z' <repeats 12 times>..., stride=140782355)
> at /home/melanson/ffmpeg/ffmpeg-main/libavcodec/i386/h264dsp_mmx.c:1894
>
>
> Everything after that in the backtrace is unknown. The dst argument here
> is shown to be 0x8299fc5. Is that cause for concern?
>
> I missed the whole alignment debate, apparently (though I see the
> alignment message on any crash). I am guessing that certain gcc versions
> < 4.2 do not honor alignment directives?
There where many aligning bugs in gcc. One was that it ignored alignment
directives for variables on the stack at least sometimes, we had a workaround
for that which loren removed in r11875 (a wanrnig fix ironically). I do not
know if this is related to the problem you have. Possibly r11875 just slows
down the mmx code without really breaking sse*
Another is that gcc couldnt align anything more than the alignment the
stack had on entry (main() or for example avcodec_decode_video())
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Asymptotically faster algorithms should always be preferred if you have
asymptotical amounts of data
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080208/9aed3a1a/attachment.pgp>
More information about the ffmpeg-devel
mailing list