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 [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
