On Thu, Apr 23, 2015 at 01:03:09AM +0200, Michael Niedermayer wrote: > On Wed, Apr 22, 2015 at 04:27:29PM -0400, Tucker DiNapoli wrote: > > This commit adds several new files containing yasm assembly code, they are: > > PPContext.asm; Defines the PPContext struct using the yasm struc command > > PPUtil.asm; Various utility macros used in the other asm code > > block_copy.asm; Implements the block copy function, the sse2 and avx2 > > versions copy multiple blocks at once. > > deinterlace.asm; Contains implemenations of the postprocessing filters > > with support for sse2 and avx2. > > > > Adding these new functions to postprocess_template entailed adding a new > > templates for AVX2 and modifying the current SSE2 template to use the > > sse2 functions. > > A new deinterlace function was added to move the logic of which > > deinterlace function to use out of the postprocess function and make > > adding the new functions eaiser. > > > > Being as the filters don't reproduce the exact results as the mmx/c > > versions they are > > not actually used, the code to enable them is present, but commented out. > > --- > > Please remove all code that does not work > and resubmit what does work and can be enabled > > If code doesnt work it cannot be pushed to git, and pushing to git > is required for the qualification task
also if i enable the code like below, i just get green and black stripes, how can this be tested ? diff --git a/libpostproc/postprocess.c b/libpostproc/postprocess.c index 63b01a5..20df267 100644 --- a/libpostproc/postprocess.c +++ b/libpostproc/postprocess.c @@ -545,13 +545,13 @@ static av_always_inline void do_a_deblock_C(uint8_t *src, int step, # define TEMPLATE_PP_AVX2 1 # include "postprocess_template.c" # else -/*# if HAVE_AVX2_INLINE +# if HAVE_AVX2_INLINE # define TEMPLATE_PP_AVX2 1 # include "postprocess_template.c" # elif HAVE_SSE2_INLINE # define TEMPLATE_PP_SSE2 1 -# include "postprocess_template.c"*/ -# if HAVE_MMXEXT_INLINE +# include "postprocess_template.c" +# elif HAVE_MMXEXT_INLINE # define TEMPLATE_PP_MMXEXT 1 # include "postprocess_template.c" # elif HAVE_AMD3DNOW_INLINE @@ -579,9 +579,9 @@ static inline void postProcess(const uint8_t src[], int srcStride, uint8_t dst[] #if CONFIG_RUNTIME_CPUDETECT #if ARCH_X86 && HAVE_INLINE_ASM // ordered per speed fastest first -/* if (c->cpuCaps & AV_CPU_FLAG_AVX2) pp = postProcess_avx2; - else if (c->cpuCaps & AV_CPU_FLAG_SSE2) pp = postProcess_sse2;*/ - if (c->cpuCaps & AV_CPU_FLAG_MMXEXT) pp = postProcess_MMX2; + if (c->cpuCaps & AV_CPU_FLAG_AVX2) pp = postProcess_avx2; + else if (c->cpuCaps & AV_CPU_FLAG_SSE2) pp = postProcess_sse2; + else if (c->cpuCaps & AV_CPU_FLAG_MMXEXT) pp = postProcess_MMX2; else if (c->cpuCaps & AV_CPU_FLAG_3DNOW) pp = postProcess_3DNow; else if (c->cpuCaps & AV_CPU_FLAG_MMX) pp = postProcess_MMX; #elif HAVE_ALTIVEC [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Why not whip the teacher when the pupil misbehaves? -- Diogenes of Sinope
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel