diff options
Diffstat (limited to 'src/x86/filmgrain.h')
-rw-r--r-- | src/x86/filmgrain.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/x86/filmgrain.h b/src/x86/filmgrain.h index eeaa328..8f6ac8f 100644 --- a/src/x86/filmgrain.h +++ b/src/x86/filmgrain.h @@ -73,9 +73,11 @@ static ALWAYS_INLINE void film_grain_dsp_init_x86(Dav1dFilmGrainDSPContext *cons if (!(flags & DAV1D_X86_CPU_FLAG_AVX512ICL)) return; - c->fgy_32x32xn = BF(dav1d_fgy_32x32xn, avx512icl); - c->fguv_32x32xn[DAV1D_PIXEL_LAYOUT_I420 - 1] = BF(dav1d_fguv_32x32xn_i420, avx512icl); - c->fguv_32x32xn[DAV1D_PIXEL_LAYOUT_I422 - 1] = BF(dav1d_fguv_32x32xn_i422, avx512icl); - c->fguv_32x32xn[DAV1D_PIXEL_LAYOUT_I444 - 1] = BF(dav1d_fguv_32x32xn_i444, avx512icl); + if (BITDEPTH == 8 || !(flags & DAV1D_X86_CPU_FLAG_SLOW_GATHER)) { + c->fgy_32x32xn = BF(dav1d_fgy_32x32xn, avx512icl); + c->fguv_32x32xn[DAV1D_PIXEL_LAYOUT_I420 - 1] = BF(dav1d_fguv_32x32xn_i420, avx512icl); + c->fguv_32x32xn[DAV1D_PIXEL_LAYOUT_I422 - 1] = BF(dav1d_fguv_32x32xn_i422, avx512icl); + c->fguv_32x32xn[DAV1D_PIXEL_LAYOUT_I444 - 1] = BF(dav1d_fguv_32x32xn_i444, avx512icl); + } #endif } |