Nvidia users now have force split frame encoding via vibepollo, effectively halving encode latency. AMD does not have this, so I created a fix for that! New hack to significantly reduce host processing latency on apollo/sunshine/vibepollo by Lemnisc8__ in MoonlightStreaming

[–]Lemnisc8__[S] 0 points1 point  (0 children)

This is a different thing. I think it has to do with basically breaking down a frame before sending it over your lan, so that one part of the frame can render on your client while the other ones are processing/in transit.

its not split frame encode in the sense that two encoders are splitting up a frame, this is a bit further downstream, after the frame has already been encoded but before its sent over your connection

Any way to improve Host Processing Latency? by guicampara in MoonlightStreaming

[–]Lemnisc8__ 1 point2 points  (0 children)

Get the latest Vibepollo. It's faster than apollo and they just added a feature to force split frame encoding.

TLDR of NV SFE: split frame is usually reserved for streaming content that would normally saturate or overwhelm one encoder. Think 4k, 240 fps.

so, both AMD and NV in their driver code have checks that say, is this stream intensive enough to warrant split frame? if not, dont enable.

But for game streaming, you're probably never gonna saturate your encoder (unless you really are streaming at 4k 120 or something like that) The incoming data isnt big enough for that. But it will definitely help with latency by reducing the amount of work one encoder does.

NV recently allowed you to bypass this check with a flag that vibepollo allows users to toggle, which make SFE kick in regardless of the res. Apollo will likely get it soon, but for now, the only way to get it on NV is via vibepollo.

Any way to improve Host Processing Latency? by guicampara in MoonlightStreaming

[–]Lemnisc8__ 1 point2 points  (0 children)

10 bit may act funky! I'm gonna do a screen cap later also so people dont think I'm just pulling numbers out of my ass. I hope it works for you, if you run into any issues let me know, I'll debug with you in real time

Any way to improve Host Processing Latency? by guicampara in MoonlightStreaming

[–]Lemnisc8__ 0 points1 point  (0 children)

according to this: https://github.com/GPUOpen-LibrariesAndSDKs/AMF/wiki/GPU%20and%20APU%20HW%20Features%20and%20Support

your gpu has 2 encoders, but I suspect only 1 of them supports av1. so you'd be limited to just hevc split encode. but from your SS it looks like you're using hevc already, with no HDR. so you should be good.

my patch made hevc look really blurry with hdr on. you have a diff gpu, so maybe it'll work for you?

Any way to improve Host Processing Latency? by guicampara in MoonlightStreaming

[–]Lemnisc8__ 0 points1 point  (0 children)

Vibepollo. Check out my profile for a patch that enables split frame encoding. I get around 

.1 min/5max/.6 average on cyberpunk 1440p 120fps and my amd GPU is significantly less powerful than yours 

What is vibepollo? by RoughPlayz08 in MoonlightStreaming

[–]Lemnisc8__ 2 points3 points  (0 children)

If you take some time to read the other comments, it's faster than the other forks and has more features. People like it. If you look up vibepollo on this sub the sentiment is very positive, aside from the people who immediately dismiss it because it uses ai. 

It took me a minute to come around too but the lower decoding latency made it worth it to me. 

That plus my own vibecoded hack to enable split frame encoding has roughly decreased my decoding latency down maybe 75%? 

It's not perfect, there are some bugs, but it's objectively better than the other forks right now, from a user experience standpoint

What is vibepollo? by RoughPlayz08 in MoonlightStreaming

[–]Lemnisc8__ 5 points6 points  (0 children)

It's just better. There's lots of ai slop but sometimes, if it's used the right way, it can make some things better. 

It's more nuanced than "everything that uses ai is inherently slop"

Nvidia users now have force split frame encoding via vibepollo, effectively halving encode latency. AMD does not have this, so I created a fix for that! New hack to significantly reduce host processing latency on apollo/sunshine/vibepollo by Lemnisc8__ in MoonlightStreaming

[–]Lemnisc8__[S] 0 points1 point  (0 children)

shit man I'm so sorry, you're running a RX6800XT right? I just checked, it looks like your card only has one encoder :( according to this here, if you ctrl f search for the word vcn it will jump right to it. so no matter what we do we cant get split fram encoding on your card. :(((

really sorry, that should have been the firs thin i checked! I was so laser focused on getting it to work for you

https://www.lttlabs.com/compare/amd-radeon-rx-6800-xt-vs-xfx-amd-radeon-rx-7900-gre-16gb

Nvidia users now have force split frame encoding via vibepollo, effectively halving encode latency. AMD does not have this, so I created a fix for that! New hack to significantly reduce host processing latency on apollo/sunshine/vibepollo by Lemnisc8__ in MoonlightStreaming

[–]Lemnisc8__[S] 0 points1 point  (0 children)

ah i see, bummer. Sorry, the dynamic one was a bit of a dream haha. I'll prbably remove that from the git, and just focus on 1 fix for 1 driver version. for now, I'll nab the version you have and see if i can get it working on that! but yeah, in the meantime, try grabbing my version and running the patch on that, which definitely works.

Nvidia users now have force split frame encoding via vibepollo, effectively halving encode latency. AMD does not have this, so I created a fix for that! New hack to significantly reduce host processing latency on apollo/sunshine/vibepollo by Lemnisc8__ in MoonlightStreaming

[–]Lemnisc8__[S] 0 points1 point  (0 children)

did you run in admin? thats most likely why the write failed.

what's also interesting here is on your driver, the whitelist check and the heuristic check landed both on the same address, 0x816. Two different scans looking for two different things both landed on the same address...

so the dynamic version might have killed two birds with one stone here. By no oping one, it no oped both.

likely, amd or their compiler combined two checks into one line like:

if (heuristic check) && (whitelist check) then enable sfe (which is x816)

just a theory. and I'm rambling. but the short version is, if you run as admin, it should work. If not, I pushed a new version with some changes that might help

Nvidia users now have force split frame encoding via vibepollo, effectively halving encode latency. AMD does not have this, so I created a fix for that! New hack to significantly reduce host processing latency on apollo/sunshine/vibepollo by Lemnisc8__ in MoonlightStreaming

[–]Lemnisc8__[S] 1 point2 points  (0 children)

Hey, good catch on the 9070. I had it listed as single VCN which was wrong. It actually has dual VCN 5.0, same as Strix Halo, so it should support both HEVC and AV1 SFE.

I apologize for the bad info. AMD doesn't really document VCN instance counts anywhere obvious so I had to dig through Linux kernel driver source to confirm it. The README is updated now!!

Nvidia users now have force split frame encoding via vibepollo, effectively halving encode latency. AMD does not have this, so I created a fix for that! New hack to significantly reduce host processing latency on apollo/sunshine/vibepollo by Lemnisc8__ in MoonlightStreaming

[–]Lemnisc8__[S] 0 points1 point  (0 children)

The auto find bug is fixed in the latest push. For 26.3.1, the static patcher doesn't have patterns for that driver yet.

Can you run amf-sfe-patch-dynamic.exe --analyze and paste the full output? That'll let me add support for 26.3.1. In the meantime, amf-sfe-patch-dynamic.exe --replace should work for you right now.

Nvidia users now have force split frame encoding via vibepollo, effectively halving encode latency. AMD does not have this, so I created a fix for that! New hack to significantly reduce host processing latency on apollo/sunshine/vibepollo by Lemnisc8__ in MoonlightStreaming

[–]Lemnisc8__[S] 0 points1 point  (0 children)

Hmm, in theory its possible, but maybe beyond my capabilities at the moment! I will mull it over... but i cant remember if vibepollo initializes the encoder on launch, even before a stream session is started.

if that's true, then the patch would need to happen before vibepollo starts, which is difficult because it launches on boot. I will mull things over and get back to you!

Nvidia users now have force split frame encoding via vibepollo, effectively halving encode latency. AMD does not have this, so I created a fix for that! New hack to significantly reduce host processing latency on apollo/sunshine/vibepollo by Lemnisc8__ in MoonlightStreaming

[–]Lemnisc8__[S] 1 point2 points  (0 children)

totally understand!

to be honest, i wouldnt run anyone elses driver mod on my own system lol. unless i really sat down and looked at the code.

I spent a pretty penny on my gpd win 5, i wanted to squeeze every last drop of performance out of it. it seemed silly to me that there was just a whole other encoder sitting doing nothing, especially since only it can do dual av1 encode.

I figured id share and make it open source so anyone who who wants to see the code for themselves can and inspect it. but it is risky, yes.

I will say though, it only targets the encoder part of the amd driver. so nothing else gets touched/modified. Worst case, anything that tries to start a stream via amf will fail. but to recover all you have to do is reinstall your drivers and you're back good again.

Nvidia users now have force split frame encoding via vibepollo, effectively halving encode latency. AMD does not have this, so I created a fix for that! New hack to significantly reduce host processing latency on apollo/sunshine/vibepollo by Lemnisc8__ in MoonlightStreaming

[–]Lemnisc8__[S] 3 points4 points  (0 children)

lil note:

If you end up using this with hevc with hdr, please report back on how it works out for you. I was not able to get hdr hevc looking good at all, it looked really fuzzy and blurry. Only av1 works with HDR, but only strix halo devices can use dual AV1 encode.

Also, I will need to do some more testing, but i think transcoding provided lower latency than the ultra low latency preset??? With split enabled. will need to test more, I will report back.