Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/videolan/dav1d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2021-03-16 15:01:14 +0300
committerMartin Storsjö <martin@martin.st>2021-04-22 15:31:04 +0300
commitee54837b0be349ac05c7806ba9df5810fb2ca693 (patch)
tree5871739e2cb0470fa49e154e1cea7245914aa469 /tests
parentd130da9c315d5a1d3968d278bbee2238ad9051e7 (diff)
checkasm: filmgrain: Add a padded check for fgy and fguv
This clearly specifies how much overwrite is allowed.
Diffstat (limited to 'tests')
-rw-r--r--tests/checkasm/filmgrain.c32
1 files changed, 20 insertions, 12 deletions
diff --git a/tests/checkasm/filmgrain.c b/tests/checkasm/filmgrain.c
index 73d3038..a74d09b 100644
--- a/tests/checkasm/filmgrain.c
+++ b/tests/checkasm/filmgrain.c
@@ -137,10 +137,10 @@ static void check_gen_grnuv(const Dav1dFilmGrainDSPContext *const dsp) {
}
static void check_fgy_sbrow(const Dav1dFilmGrainDSPContext *const dsp) {
- ALIGN_STK_64(pixel, c_dst, 128 * 32,);
- ALIGN_STK_64(pixel, a_dst, 128 * 32,);
- ALIGN_STK_64(pixel, src, 128 * 32,);
- const ptrdiff_t stride = 128 * sizeof(pixel);
+ PIXEL_RECT(c_dst, 128, 32);
+ PIXEL_RECT(a_dst, 128, 32);
+ PIXEL_RECT(src, 128, 32);
+ const ptrdiff_t stride = c_dst_stride;
declare_func(void, pixel *dst_row, const pixel *src_row, ptrdiff_t stride,
const Dav1dFilmGrainData *data, size_t pw,
@@ -199,12 +199,15 @@ static void check_fgy_sbrow(const Dav1dFilmGrainDSPContext *const dsp) {
row_num = rnd() & 0x7ff;
}
+ CLEAR_PIXEL_RECT(c_dst);
+ CLEAR_PIXEL_RECT(a_dst);
call_ref(c_dst, src, stride, fg_data, w, scaling, grain_lut, h,
row_num HIGHBD_TAIL_SUFFIX);
call_new(a_dst, src, stride, fg_data, w, scaling, grain_lut, h,
row_num HIGHBD_TAIL_SUFFIX);
- checkasm_check_pixel(c_dst, stride, a_dst, stride, w, h, "dst");
+ checkasm_check_pixel_padded_align(c_dst, stride, a_dst, stride,
+ w, h, "dst", 32, 2);
}
}
fg_data[0].overlap_flag = 1;
@@ -216,11 +219,11 @@ static void check_fgy_sbrow(const Dav1dFilmGrainDSPContext *const dsp) {
}
static void check_fguv_sbrow(const Dav1dFilmGrainDSPContext *const dsp) {
- ALIGN_STK_64(pixel, c_dst, 128 * 32,);
- ALIGN_STK_64(pixel, a_dst, 128 * 32,);
- ALIGN_STK_64(pixel, src, 128 * 32,);
- ALIGN_STK_64(pixel, luma_src, 128 * 32,);
- const ptrdiff_t lstride = 128 * sizeof(pixel);
+ PIXEL_RECT(c_dst, 128, 32);
+ PIXEL_RECT(a_dst, 128, 32);
+ PIXEL_RECT(src, 128, 32);
+ PIXEL_RECT(luma_src, 128, 32);
+ const ptrdiff_t lstride = luma_src_stride;
declare_func(void, pixel *dst_row, const pixel *src_row, ptrdiff_t stride,
const Dav1dFilmGrainData *data, size_t pw,
@@ -233,7 +236,7 @@ static void check_fguv_sbrow(const Dav1dFilmGrainDSPContext *const dsp) {
const enum Dav1dPixelLayout layout = layout_idx + 1;
const int ss_x = layout != DAV1D_PIXEL_LAYOUT_I444;
const int ss_y = layout == DAV1D_PIXEL_LAYOUT_I420;
- const ptrdiff_t stride = (ss_x ? 96 : 128) * sizeof(pixel);
+ const ptrdiff_t stride = c_dst_stride;
for (int csfl = 0; csfl <= 1; csfl++) {
if (check_func(dsp->fguv_32x32xn[layout_idx],
@@ -317,12 +320,17 @@ static void check_fguv_sbrow(const Dav1dFilmGrainDSPContext *const dsp) {
row_num = rnd() & 0x7ff;
}
+ CLEAR_PIXEL_RECT(c_dst);
+ CLEAR_PIXEL_RECT(a_dst);
call_ref(c_dst, src, stride, fg_data, w, scaling, grain_lut[1], h,
row_num, luma_src, lstride, uv_pl, is_identity HIGHBD_TAIL_SUFFIX);
call_new(a_dst, src, stride, fg_data, w, scaling, grain_lut[1], h,
row_num, luma_src, lstride, uv_pl, is_identity HIGHBD_TAIL_SUFFIX);
- checkasm_check_pixel(c_dst, stride, a_dst, stride, w, h, "dst");
+ checkasm_check_pixel_padded_align(c_dst, stride,
+ a_dst, stride,
+ w, h, "dst",
+ 32 >> ss_x, 2);
}
}