HomeOfAviSynthPlusEvolution / neo_FFT3D

Forked from pinterf/fft3dfilter
GNU General Public License v2.0
19 stars 3 forks source link

deadlock #4

Closed realfinder closed 3 years ago

realfinder commented 4 years ago

hi, at least in x64, using TDeint after neo_fft3d case deadlock, if old fft3dfilter instead of neo_fft3d used then it's fine with no deadlock

colorbars()
converttoyv12
neo_fft3d
TDeint(1)
Selur commented 3 years ago

does also happen with 32bit

msg7086 commented 3 years ago

There seems to be a recursive mutex inside AviSynth code that locks new frame allocation.

I added mt = false to disable planar based multi-threading by default. Please test and let me know.

realfinder commented 3 years ago

seems work fine, thanks

For comparison only, planar based multi-threading in f3kdb (old not neo) seems fine

colorbars()
converttoyv12
f3kdb
TDeint(1)

so there are mt problem in neo_FFT3D or because it's more complicated than f3kdb? anyway I will close this

msg7086 commented 3 years ago

I couldn't figure out. It dies when I request a new empty frame, and the locking happens inside avs core. Maybe it has some weird multi threading requirement that I'm not aware of.