[FFmpeg-devel] [FFMpeg-Devel][GSoC][PATCH 2/2] postproc: Added support for sse2/avx2 versions of the do_a_deblock function
Michael Niedermayer
michaelni at gmx.at
Thu Apr 23 12:30:25 CEST 2015
On Thu, Apr 23, 2015 at 12:20:38AM -0400, Tucker DiNapoli wrote:
> I added a new file with the sse2/avx2 code for do_a_deblock.
> I also moved the code for running vertical deblock filters into it's own
> function, both to clean up the postprocess funciton and to make it
> easier to integrate the new sse2/avx2 versions of these filters.
> ---
> libpostproc/postprocess_template.c | 123 +++++++---
> libpostproc/x86/Makefile | 1 +
> libpostproc/x86/deblock.asm | 454 +++++++++++++++++++++++++++++++++++++
> 3 files changed, 545 insertions(+), 33 deletions(-)
> create mode 100644 libpostproc/x86/deblock.asm
putting a av_log() before the old inline asm for do_a_deblock*()
and a jump to NULL in the yasm code shows that only the old code is
executed when testing as in:
./ffplay matrixbench_mpeg2.mpg -vf pp=ha/va
postproc clearly does not use the new code so i have no idea how to
test it
tested both on AVX and AVX2 machines
also there is:
In file included from libpostproc/postprocess.c:538:0:
libpostproc/postprocess_template.c: In function ‘deblock_MMX’:
libpostproc/postprocess_template.c:3414:20: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
static inline void RENAME(deblock)(uint8_t *dstBlock, int stride,
^
diff --git a/libpostproc/postprocess_template.c b/libpostproc/postprocess_template.c
index 9bff458..f98a00c 100644
--- a/libpostproc/postprocess_template.c
+++ b/libpostproc/postprocess_template.c
@@ -2649,6 +2649,7 @@ static av_always_inline void RENAME(do_a_deblock)(uint8_t *src, int step, int st
int64_t dc_mask, eq_mask, both_masks;
int64_t sums[10*8*2];
src+= step*3; // src points to begin of the 8x8 Block
+ av_log(0,0, "Old do_a_deblock\n");
//{ START_TIMER
__asm__ volatile(
"movq %0, %%mm7 \n\t"
diff --git a/libpostproc/x86/deblock.asm b/libpostproc/x86/deblock.asm
index fbee291..1aa91f5 100644
--- a/libpostproc/x86/deblock.asm
+++ b/libpostproc/x86/deblock.asm
@@ -28,6 +28,9 @@
cglobal do_a_deblock, 5, 6, 7, 22 * mmsize ;src, step, stride, ppcontext, mode
;; stride, mode arguments are unused, but kept for compatability with
;; existing c version. They will be removed eventually
+xor r0, r0
+jmp r0
+
lea r0, [r0 + r1*2]
add r0, r1
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
it is not once nor twice but times without number that the same ideas make
their appearance in the world. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150423/fa7b75d4/attachment.asc>
More information about the ffmpeg-devel
mailing list