1 (edited by gerappa 25-06-2024 06:20:14)

Topic: RIFE: gpu_thread must be between 1 and 1 (inclusive)

Hello,

My problem is this:
I get an error if i raise the GPU thread more than 1 (only 1 GPU thread speed is useless).

I have ATI 7900XT and didn't change the video card driver for a while because it was perfectly working with the 2 threads by this driver version: whql-amd-software-adrenalin-edition-23.11.1-win10-win11-nov3-rdna
I always have to go back to this version, because newer than this couldn't handle more than 1 GPU thread. But i can't stuck this driver version forever, so i have to go on an update and deal with the error.

Could you please update / make compatible the script for newer ATI video card driver version?
I am available for testing if necessary.

Post's attachments

2024-06-25_073017.jpg, 32.89 kb, 588 x 71
2024-06-25_073017.jpg 32.89 kb, 34 downloads since 2024-06-25 

2024-06-25_073043.jpg, 52.27 kb, 500 x 269
2024-06-25_073043.jpg 52.27 kb, 33 downloads since 2024-06-25 

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

This is what a Vulkan driver reporting about the hardware caps, we can do nothing about it.

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

Is there anything i can do about it? Any setting, another "unlocked" driver or tool?
It was worked before, so maybe have a chance to get back this somewhow.

4 (edited by flowreen91 25-06-2024 20:15:45)

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

gerappa wrote:

Is there anything i can do about it?

Refund the Radeon RX 7900 XT and get any cheap RTX.
Or downgrade the driver like gerappa managed to fix it here:
https://www.svp-team.com/forum/viewtopi … 001#p84001

According to this video it says that installing "Driver Only" prevents issues:
https://www.youtube.com/watch?v=xCX3acP3At4&t=128s
Does the GPU thread issue persists even in this case?

gerappa try to go to
https://github.com/styler00dollar/Vapou … n/releases
and download each windows .dll from recent releases, rename it to rife_vs.dll and replace the initial "C:\Program Files (x86)\SVP 4\rife\rife_vs.dll"

more specifically it mentions on this commit that they changed the crashing "gpu_thread must be between 1 and 1 inclusive" into a warning:
https://github.com/styler00dollar/Vapou … r9_mod_v14

not sure if it would actually fix anything, but please take a look.
Thanks!

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

Thank you for the suggestions!
I tried all of them (except the refund) big_smile It's too late for that, and overall it's not that bad videocard.
"Driver only" didn't worked unfortunately.
Change the DLL also didn't worked at all (actually froze the video completely).
What i also tried an alternate driver for AMD, but somehow this is also not worked.
Yes the downgrade as i wrote in another post is working, but stay on that version forever is not a solution. Especially because this card is still supported in many ways (like driver based hotfix for games etc.)
On the other hand this is the most annoying thing, because before it worked, so the videocard is able to do it, just the stupid driver not allow it/limit it (if i understands well). But why?

I give up sad

6 (edited by flowreen91 27-06-2024 08:31:47)

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

gerappa wrote:

Change the DLL also didn't worked at all (actually froze the video completely).
just the stupid driver not allow it/limit it (if i understands well). But why?

@SVP devs, for us to correctly use the latest rife_vs.dll file from https://github.com/styler00dollar/Vapou … n/releases do we need to update something else too?

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

> for us to correctly use the latest rife_vs.dll file

why exactly you want this?

8 (edited by flowreen91 27-06-2024 09:54:58)

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

Chainik wrote:

why exactly you want this?

We want this:
1. to just keep stuff up to date whenever possible
2. to see if gerappa can use 2 threads if that line was turned into a warning:
more specifically it mentions on this commit that they changed the crashing "gpu_thread must be between 1 and 1 inclusive" into a warning:
https://github.com/styler00dollar/Vapou … r9_mod_v14
3. maybe u can recompile the old SVP compatible vs_rife.dll file with that fix so gerappa can check if it unlocks that extra thread?

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

> to see if gerappa can use 2 threads if that line was turned into a warning

still the device will be reporting queueCount = 1
https://registry.khronos.org/vulkan/spe … rties.html

I really doubt there're any performance benefits settings "thread" count higher than device caps

but here you are...

Post's attachments

rife_vs.dll 4.57 mb, 47 downloads since 2024-06-27 

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

.dll attached

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

Chainik wrote:

.dll attached

gerappa's reaction:
https://gyazo.com/a7a6cfd662e826dac89d6b08adf9bd4c

12 (edited by gerappa 27-06-2024 12:32:26)

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

Woowww, believe it or not it's working. (almost)
The video when i switch to RIFE, i can play even 4K videos. The only problem is if i fast forward to another time position the player immediatelly die with the error (see the picture at the bottom)


A little additional info:
Before the topic started i used avisynth i just changed to vapoursynth for testing purpose (but same error message as avisynth about the thread numbers). Now i changed to Vapoursynth because of the dll.

On the other hand i understand why Chainik said it doesn't matter if we replace the vs_rife.dll to the latest one, because with the current dll and with the old driver would allow the 2 threads.
So the limitation should be on driver level, if i understands well.
But in this case i don't understand what they fix in the Vapoursynth at r9_mod_v14 -> adjusting gpu_thread related code and changing workflows to latest vapoursynth

Overall, it looks like it's not the driver problem anymore, the vs_rife.dll was the problem, but still have this seek error. i will try another player (now i use  Potplayer)

EDIT:  with MPC-HC i got this dump when i try to seek forward in the video:

rife_vs!VapourSynthPluginInit2+0x1baa7
rife_vs!VapourSynthPluginInit2+0x34f1d
rife_vs!VapourSynthPluginInit2+0x34903
rife_vs!VapourSynthPluginInit2+0x2cccf
rife_vs!VapourSynthPluginInit2+0x2c6f8
rife_vs+0x2235
rife_vs+0x505b
vapoursynth!getVapourSynthAPI+0xcadf
vapoursynth+0xfe1c0
vapoursynth_cp38_win_amd64+0x83eac
python38!Py_CheckFunctionResult+0x516
python38!Py_BuildValue_SizeT+0x884
python38!PyObject_GenericSetAttrWithDict+0xcf7
python38!PyDict_SetDefault+0x3be
vapoursynth_cp38_win_amd64!PyInit_vapoursynth+0x1732e
vapoursynth_cp38_win_amd64+0x4c31c
vapoursynth_cp38_win_amd64+0x4b906
python38!Py_gitversion+0x9af4
python38!PyEval_EvalFrameDefault+0x195a
python38!PyEval_EvalCodeWithName+0x228
python38!PyEval_EvalCodeEx+0x9b
python38!PyEval_EvalCode+0x2d
vapoursynth_cp38_win_amd64!PyInit_vapoursynth+0x1be5f
vapoursynth_cp38_win_amd64+0x709f8
vapoursynth_cp38_win_amd64+0x742dc
vapoursynth_cp38_win_amd64+0x74f19
vsscript!vsscript_evaluateFile+0x17b
vapoursynth_filter_64!DllMain+0x10e6a
vapoursynth_filter_64!DllMain+0xdf18
vapoursynth_filter_64+0x1938a
vapoursynth_filter_64!DllMain+0x16d3c
lavvideo!CLAVVideo::DeliverToRenderer+0x12b0
lavvideo!CLAVVideo::Deliver+0x273
lavvideo!CDecD3D11::DeliverD3D11Frame+0x1f9
lavvideo!CDecD3D11::HandleDXVA2Frame+0x107
lavvideo!CDecAvcodec::DecodePacket+0xcbe
lavvideo!CDecAvcodec::Decode+0x1a5
lavvideo!CDecBase::Decode+0x13a
lavvideo!CLAVVideo::Receive+0x219
lavvideo!CDeCSSTransformInputPin::Receive+0x5e
lavsplitter!CLAVOutputPin::DeliverPacket+0x4ae
lavsplitter!CLAVOutputPin::ThreadProc+0x272
lavsplitter!CAMThread::InitialThreadProc+0x4c
lavsplitter!thread_start<unsigned int (__cdecl*)(void *),1>+0x50
kernel32!BaseThreadInitThunk+0x1d
ntdll!RtlUserThreadStart+0x28
Post's attachments

2024-06-27_141635.jpg, 22.61 kb, 401 x 170
2024-06-27_141635.jpg 22.61 kb, 30 downloads since 2024-06-27 

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

> Overall, it looks like it's not the driver problem anymore, the vs_rife.dll was the problem

.dll is not the problem, it just preventing user from setting dangerous values, leading to undefined behavior

overall setting threads higher than driver-reported value is not practically usable
q.e.d. big_smile

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

gerappa wrote:

Before the topic started i used avisynth

SVP devs please provide the avisynth rife.dll too with same fix applied. Maybe it won't have the seek crash.
Thanks!

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

> Maybe it won't have the seek crash.

_very_ unlikely

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

well, whatever you did the base problem solved, just still can't use because of the seeking problem.
Thank you anyway, and also thanks for flowreen91 to not give up on this big_smile

17 (edited by csoquan 03-07-2024 16:36:42)

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

gerappa wrote:

Hello,

My problem is this:
I get an error if i raise the GPU thread more than 1 (only 1 GPU thread speed is useless).

I have ATI 7900XT and didn't change the video card driver for a while because it was perfectly working with the 2 threads by this driver version: whql-amd-software-adrenalin-edition-23.11.1-win10-win11-nov3-rdna
I always have to go back to this version, because newer than this couldn't handle more than 1 GPU thread. But i can't stuck this driver version forever, so i have to go on an update and deal with the error.

Could you please update / make compatible the script for newer ATI video card driver version?
I am available for testing if necessary.

the latest mpv is the problem, i have the same problem after yesterday update which i can't transcoding with Intel Quicksync (iGPU UHD 770) using RIFE AI.
So i reinstall SVP with Offline Package and troubleshoot every update.
After install the latest mpv it show the error.

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

"the same problem" is only regarding AMD cards and AMD drivers
it has nothing common with NV cards and mpv versions

19 (edited by csoquan 03-07-2024 16:47:21)

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

Chainik wrote:

"the same problem" is only regarding AMD cards and AMD drivers
it has nothing common with NV cards and mpv versions

My bad, it was Intel iGPU UHD 770 when watching video.
And transcoding also have the error which fail the transcoding from start.

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

Chainik wrote:

> to see if gerappa can use 2 threads if that line was turned into a warning

still the device will be reporting queueCount = 1
https://registry.khronos.org/vulkan/spe … rties.html

I really doubt there're any performance benefits settings "thread" count higher than device caps

but here you are...

That DLL finally allowed my 7900XTX to work 4 threads and do x4 framerate (24->96). Fantastic. That's with currently latest AMD drivers v24.6.1.

21 (edited by gerappa 26-07-2024 14:42:07)

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

Santr wrote:

That DLL finally allowed my 7900XTX to work 4 threads and do x4 framerate (24->96). Fantastic. That's with currently latest AMD drivers v24.6.1.

That uploaded DLL by Chainik? For me also allowed any threads (4 too) but couldn't fast forward or jump to another time. Is it working for you? same driver version too.

22 (edited by Santr 27-07-2024 15:56:05)

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

gerappa wrote:

That uploaded DLL by Chainik? For me also allowed any threads (4 too) but couldn't fast forward or jump to another time. Is it working for you? same driver version too.

Yep, MPC-BE crashes every time, so I switched to MPV that comes with SVP - no problems with it whatsoever. Works better than MPC-BE, in fact: faster and stable as a rock. But I had to tinker with the config file to set it up to my liking, which is pretty much its biggest downside. The manual is pretty detailed, though: https://mpv.io/manual/stable/#options

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

Santr wrote:

Yep, MPC-BE crashes every time, so I switched to MPV that comes with SVP - no problems with it whatsoever. Works better than MPC-BE, in fact: faster and stable as a rock. But I had to tinker with the config file to set it up to my liking, which is pretty much its biggest downside. The manual is pretty detailed, though: https://mpv.io/manual/stable/#options

Actually, yes it is really working with MVP, no crash when jump fast forward. It would be good to know, how to solve this in other players...
I am using Potplayer, MPV is little bit basic to me, even have tons of options. Big issues like it can't handle dual subtitle, and the HDR->SDR conversion is slightly flickering, and many confortable function is missing for me.

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

gerappa wrote:

It would be good to know, how to solve this in other players...

Yep. Unfortunately, only those players' developers can solve this issue, since it's tied to the player's renderer. I don't know about PotPlayer's devs but MPC-BE devs have never been receptive to fixing issues they don't encounter themselves, so we're most likely out of luck with them.

Re: RIFE: gpu_thread must be between 1 and 1 (inclusive)

Santr wrote:

Yep. Unfortunately, only those players' developers can solve this issue, since it's tied to the player's renderer. I don't know about PotPlayer's devs but MPC-BE devs have never been receptive to fixing issues they don't encounter themselves, so we're most likely out of luck with them.

Once i wrote to the Potplayer dev's for bugreport and gave some ideas... how to say....they were not nice.  So, i don't think they will fix anything.
There is no workaround sad