[FFmpeg-devel] [PATCH] vp9: 16bpp tm/dc/h/v intra pred simd (mostly sse2) functions.

Matt Oliver protogonoi at gmail.com
Tue Oct 6 08:31:18 CEST 2015


On 6 October 2015 at 07:51, Ronald S. Bultje <rsbultje at gmail.com> wrote:

> Hi,
>
> On Mon, Oct 5, 2015 at 7:39 AM, Ronald S. Bultje <rsbultje at gmail.com>
> wrote:
>
> > Hi,
> >
> > On Mon, Oct 5, 2015 at 5:54 AM, Henrik Gramner <henrik at gramner.com>
> wrote:
> >
> >> On Mon, Oct 5, 2015 at 10:55 AM, Matt Oliver <protogonoi at gmail.com>
> >> wrote:
> >> > This patch has broken the 32bit msvc builds:
> >> >
> >>
> http://fate.ffmpeg.org/report.cgi?time=20151005065109&slot=x86_32-msvc12-windows-native
> >> >
> >> > I had a look through the code but couldnt find the cause. The error
> >> message
> >> > just points to the code line for a macro instantiation and I'm not
> >> familiar
> >> > enough with the code to be able to work out where within the macro the
> >> > error is actually occurring and why. So ill leave this one to someone
> >> more
> >> > familiar with the code.
> >>
> >> I see where the problem is.
> >>
> >> Using stack space in cglobal requires an extra register if the stack
> >> alignment is less than mmsize (32-bit msvc only has 4-byte stack
> >> alignment), and if the function already utilizes all available
> >> registers that will result in failure.
> >>
> >> The fix is either to reduce the number of registers used by the
> >> function or to only enable the function on x86-32 if the stack is at
> >> least 16-byte aligned. x86inc has the variable STACK_ALIGNMENT which
> >> can be tested for this, in C there's the HAVE_ALIGNED_STACK define
> >> which is set if the stack is 16-byte aligned.
> >
> >
> > Yeah, it should use 6 regs, I'll send a patch.
> >
>
> Should be fixed now, apologies for the breakage.
>
>
Yep, looks all good now, thanks


More information about the ffmpeg-devel mailing list