aboutsummaryrefslogtreecommitdiff
path: root/src/x86/filmgrain.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/x86/filmgrain.h')
-rw-r--r--src/x86/filmgrain.h10
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
}