On 2020/12/09 11:19, Alan Kelly wrote:
---
  Activates avx2 version of yuv2yuvX
  Adds checkasm for yuv2yuvX
  Modifies ff_yuv2yuvX_* signature to match yuv2yuvX_*
  Replaces non-temporal stores with temporal stores
  libswscale/x86/Makefile     |   1 +
  libswscale/x86/swscale.c    | 106 +++++++++-----------------------
  libswscale/x86/yuv2yuvX.asm | 118 ++++++++++++++++++++++++++++++++++++
  tests/checkasm/sw_scale.c   | 101 +++++++++++++++++++++++++++++-
  4 files changed, 249 insertions(+), 77 deletions(-)
  create mode 100644 libswscale/x86/yuv2yuvX.asm

[...]
diff --git a/tests/checkasm/sw_scale.c b/tests/checkasm/sw_scale.c
index 9efa2b4def..7009169361 100644
--- a/tests/checkasm/sw_scale.c
+++ b/tests/checkasm/sw_scale.c

[...]

+static void check_yuv2yuvX(void)
+{
+    struct SwsContext *ctx;
+    int fsi, osi;
+#define LARGEST_FILTER 8
+#define FILTER_SIZES 4
+    static const int filter_sizes[FILTER_SIZES] = {1, 4, 8, 16};
+
+    declare_func_emms(AV_CPU_FLAG_MMX, void, const int16_t *filter,
+                      int filterSize, const int16_t **src, uint8_t *dest,
+                      int dstW, const uint8_t *dither, int offset);
+
+    int dstW = SRC_PIXELS;
+    const int16_t **src;
+    LOCAL_ALIGNED_32(int16_t, filter_coeff, [LARGEST_FILTER]);
+    LOCAL_ALIGNED_32(uint8_t, dst0, [SRC_PIXELS]);
+    LOCAL_ALIGNED_32(uint8_t, dst1, [SRC_PIXELS]);
+    LOCAL_ALIGNED_32(uint8_t, dither, [SRC_PIXELS]);
+    union VFilterData{
+        const int16_t *src;
+        uint16_t coeff[8];
+    } *vFilterData;
+    uint8_t d_val = rnd();
+    randomize_buffers(filter_coeff, LARGEST_FILTER);
+    ctx = sws_alloc_context();
+    if (sws_init_context(ctx, NULL, NULL) < 0)
+        fail();
+
+    ff_sws_init_swscale_x86(ctx);
This should be ff_getSwsFunc() instead.
+    for(int i = 0; i < SRC_PIXELS; ++i){
+        dither[i] = d_val;
+    }
[...]
--
Josh
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to