Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compression artifacts forming when left on the same scene for a while #117

Open
Richleeson opened this issue Mar 19, 2024 · 57 comments
Open

Comments

@Richleeson
Copy link

Describe the bug
When the game is held on one scene for a while, e.g in a conversation with an NPC or just not panning then slowly compression artifacts start to take over certain models on the screen. They seem to target specific models while leaving other areas untouched. If i transition to a difference scene or pan the camera away from that area and then back to it, the issue dissappears but then comes back again after sometime.

This seems to happen at all resoltions and famerates. HDR on or off, 5.1 sound on or off, VRR on or off. No setting seems to stop it from happening.

Does no happen when using moonlight on the nvidia shield at the same settings.

To Reproduce
Happens on any game. Open the game and just wait without moving around. Slowly the compression artifacts take over certain models on the screen.

Expected behavior
Not applicable

Screenshots or Videos
20240319_132322
20240315_215822

** Logs **
I dont see any entry that only occurs while the issue is happening

Guest Information:

  • Xbox Model: [Xbox Series X]
  • TV Resolution: [2160p,4K,HDR]

Host Information

  • Operating System: [Windows 11]
  • Host Software: [Sunshine 0.22.2]
  • Monitor Resolutions [2160p,4K,HDR]
@harun911
Copy link

I can confirm, that I also have this issue.

@adonnnnn
Copy link

adonnnnn commented Apr 5, 2024

I'm having this issue as well

@TheElixZammuto
Copy link
Owner

Can you check which version of Moonlight UWP are you running on your Xbox?

@harun911
Copy link

harun911 commented Apr 6, 2024

Can you check which version of Moonlight UWP are you running on your Xbox?

I'm running version 1.15.7.70

@SteliosMoch
Copy link

SteliosMoch commented Apr 9, 2024

I can confirm this as well, i have the exact same issue. Using Version 1.16.1.

@harun911
Copy link

harun911 commented Apr 9, 2024

@TheElixZammuto Any idea what might be causing this?

@j-scrizz
Copy link

j-scrizz commented Apr 9, 2024

Can confirm, am now also getting this issue.

@hirakkopk
Copy link

It happens to me too. I've also noticed that it happens when you stay in the same image for a long time (Cutscenes for example). Sometimes it's unbearable with so many artifacts.

Disconnecting and going back sometimes solves it temporarily, but disconnecting and going back during the game causes me a lot of latency and causes frames to queue up.

@adonnnnn
Copy link

Turning on ycc422 in the display settings seems to solve this problem

@harun911
Copy link

Turning on ycc422 in the display settings seems to solve this problem

It didn't solve anything for me. Still getting rainbow artifacts.

@jmyoung
Copy link

jmyoung commented May 8, 2024

Confirmed, I have the same issue. Causing the screen areas involved to change drastically corrects the issue. Sometimes an area that 'drags down' leaves behind artifacted streaks.

This happens using H265. Not sure if it happens with x264. Didn't happen with an earlier version of the app, but I also can't confirm what version it started in.

@jmyoung
Copy link

jmyoung commented May 9, 2024

Turning on ycc422 in the display settings seems to solve this problem

No effect here. Also tried turning on/off HDR. Updated Sunshine to the latest version, no effect. When I reconfigured Sunshine to force HEVC off, and then set up Moonlight to use x264, black screen on startup. So it looks like Moonlight can only use HEVC.

The issue doesn't manifest immediately, it usually takes a few minutes, but once it's started happening, it keeps happening. Settings I'm using are;

4k resolution, 60Hz. 60M stream rate. No frame loss (wired both ends). Not using HDR. Sunshine configured with defaults. Moonlight configured with defaults, using HEVC through NVENC. Source is 4k60, XBox is set to 4k60, output display is also 4k60, no colorspace conversion going on. Console is a Series X.

Also confirmed that when artefacts appear, they do not appear on the original source, so they only appear on the Moonlight output. Interestingly, they 'drag' around when HUD elements move slightly, probably because of the spatial stuff in the codec I imagine. But anything that causes a major change to the screen causes the problem to vanish briefly before it returns.

EDIT: Issue happens when Moonlight is set to 4k or 1080. When it does happen, disconnecting and reconnecting stream sometimes fixes it for a while.

@Tyrielwood
Copy link

Tyrielwood commented Jun 10, 2024

I'm actually having the same issue since forever, but I didn't know how to explain it, but here we are.
I'm using the same settings

Guest Information:

Xbox Model: [Xbox Series X]
TV Resolution: [2160p,4K,HDR]
Host Information

Operating System: [Windows 11]
Host Software: [Sunshine 0.22.2]
Monitor Resolutions [2160p,4K,HDR]

And After a while it will take over the entire screen making it unusable. Weirdly enough I found it happening more often with more demanding games. Hell blade 2 in particular, during cutscenes. Just for info I'm using a 4090, so I don't think it's up to the headroom, but I noticed kicking it much later when at 1080 compared to 4k.

Disabling the HDR didn't help either.

PS: I'm noticing that it happens more often with unreal engine games.

@TheElixZammuto
Copy link
Owner

Hi everyone and sorry for the late response, to be fair I still wasn't be able to pinpoint the issue.

Does anything improve/changes if running this modified version of Sunshine? https://github.com/TheElixZammuto/Sunshine-1/actions/runs/9980350592

I also think the issue is only affecting Nvidia RTX 3xxx and 4xxx graphics card, am I right?

@harun911
Copy link

harun911 commented Jul 17, 2024

Hi everyone and sorry for the late response, to be fair I still wasn't be able to pinpoint the issue.

Does anything improve/changes if running this modified version of Sunshine? https://github.com/TheElixZammuto/Sunshine-1/actions/runs/9980350592

I also think the issue is only affecting Nvidia RTX 3xxx and 4xxx graphics card, am I right?

Would this point you in the right direction, what might be causing it?:
https://ideas.moonlight-stream.org/posts/187/enable-hevc-main10-for-sdr-content

And to answer your second question, I had colorbanding issues with my previous graphics card using your client aswell, my previous graphics card was Gigabyte GTX 1080 Ti

@Tyrielwood
Copy link

Hi everyone and sorry for the late response, to be fair I still wasn't be able to pinpoint the issue.

Does anything improve/changes if running this modified version of Sunshine? https://github.com/TheElixZammuto/Sunshine-1/actions/runs/9980350592

I also think the issue is only affecting Nvidia RTX 3xxx and 4xxx graphics card, am I right?

Reading the latest comments I tried to change the Color depth from 10bit to 8bit, and so far I wasn't able to reproduce the problem.
I'll keep you guys update if I get it again.

The setting would be in General --> TV & Display options --> Video Fidelity & overscan
It's not idea for picture quality, but at least it's possible to play more reliably, maybe it will help to pinpoint the issue!

@jmyoung
Copy link

jmyoung commented Jul 20, 2024

Does anything improve/changes if running this modified version of Sunshine? https://github.com/TheElixZammuto/Sunshine-1/actions/runs/9980350592

I also think the issue is only affecting Nvidia RTX 3xxx and 4xxx graphics card, am I right?

Thanks for the followup. I'll try that version for a few days and see what the result is. I do indeed have an RTX 3080 card.

@Tyrielwood
Copy link

Hi everyone and sorry for the late response, to be fair I still wasn't be able to pinpoint the issue.
Does anything improve/changes if running this modified version of Sunshine? https://github.com/TheElixZammuto/Sunshine-1/actions/runs/9980350592
I also think the issue is only affecting Nvidia RTX 3xxx and 4xxx graphics card, am I right?

Reading the latest comments I tried to change the Color depth from 10bit to 8bit, and so far I wasn't able to reproduce the problem. I'll keep you guys update if I get it again.

The setting would be in General --> TV & Display options --> Video Fidelity & overscan It's not idea for picture quality, but at least it's possible to play more reliably, maybe it will help to pinpoint the issue!

Update to this. It didn't solve the problem, but it made it less likely to happen at least,
Today it happened watching a YouTube video on the browser of all things... And a restart was needed to get back to normality

@BradyBrenot
Copy link
Contributor

BradyBrenot commented Aug 6, 2024

I'll note that I regularly use other Moonlight clients with HEVC enabled and this is the only one that exhibits this bug. I've spent hours streaming with an Nvidia Shield and a Pixel 6 Pro. I also use a Logitech G Cloud but I don't think I have HEVC on for that (no HDR capability).

I'm figuring out how to get this building locally so if I have time I can poke at this and the occasional crashes I'm getting.

Edit: Some testing: Sunshine logs are the same as those that show up when I use an Android client with HEVC and HDR enabled to stream (Color range is different but I changed that to match and saw no change.) Bug seems more likely to happen in HDR/4k/while a game is playing, doesn't seem to happen on the desktop at 1440.

BradyBrenot added a commit to BradyBrenot/moonlight-xbox that referenced this issue Aug 8, 2024
To mitigate TheElixZammuto#117 (Compression artifacts forming when left on the same scene for a while), request an IDR frame from the host every 1000 packets. This seems to reset the decoder well enough to completely avoid slow corruption problem, but shouldn't add too much extra bandwidth.

Unless I'm missing something, Sunshine never sends I or IDR frames after initially establishing the stream unless it's specifically asked to by the client.
@ryaneford
Copy link

Sorry just adding that this seems to still be an issue. Can you confirm this doesn't happen on dev mode or am I misremembering?

@harun911
Copy link

harun911 commented Sep 5, 2024

@TheElixZammuto Any chance of merging BradyBrenot's changes so we can just regular mainline sunshine?

@tcamargo
Copy link

tcamargo commented Sep 12, 2024

Hi @TheElixZammuto !

I'm able to quickly reproduce the problem in the opening sequence of God of War.

WhatsApp Image 2024-09-12 at 17 29 42_7364a775
Sorry for the poor picture.

Does anything improve/changes if running this modified version of Sunshine? https://github.com/TheElixZammuto/Sunshine-1/actions/runs/9980350592

I also think the issue is only affecting Nvidia RTX 3xxx and 4xxx graphics card, am I right?

That change seems to fix it!

Guest Information:
Xbox Model: [Xbox Series X]
TV Resolution: [2160p,4K,HDR]

Host Information
Operating System: [Windows 11]
Host Software: [Sunshine 0.23.1] and [0.0.0.3bf5fc8.dirty]
Monitor Resolutions [2160p,4K,HDR]

@Uberrr
Copy link

Uberrr commented Sep 15, 2024

When using this version of Sunshine, is it safe to update it? Or should I just keep it as is

@Lohengrim
Copy link

Hi everyone and sorry for the late response, to be fair I still wasn't be able to pinpoint the issue.

Does anything improve/changes if running this modified version of Sunshine? https://github.com/TheElixZammuto/Sunshine-1/actions/runs/9980350592

I also think the issue is only affecting Nvidia RTX 3xxx and 4xxx graphics card, am I right?

AMD 6750 XT here and same artifacts if the image is static for some time.
I'm yet to check that modified sunshine ver.

@bytehow
Copy link

bytehow commented Sep 24, 2024

@TheElixZammuto

Does anything improve/changes if running this modified version of Sunshine? https://github.com/TheElixZammuto/Sunshine-1/actions/runs/9980350592

I also think the issue is only affecting Nvidia RTX 3xxx and 4xxx graphics card, am I right?

After running this build for about 2.5 hours, I didn't experience a single artifact!! I think this fixed it for me :)

Guest Information
Xbox Model: [Xbox Series X]
TV Resolution: [2160p,4K,HDR]
Code: HEVC
Bitrate: Maxed out on the bit rate slider
Framerate: 120 fps

Host Information
Operating System: [Windows 11]
Host Software: [0.0.0.3bf5fc8.dirty]
Monitor Resolutions [2160p,4K,HDR]
GPU: NVidia 3080 Ti FE

Both console and host are hardwired over GbE

@SteliosMoch
Copy link

Will this fix be implemented on the official version of sunshine?

@theBeaz
Copy link

theBeaz commented Oct 12, 2024

Just checking in to say that this is the same visual artifacting I saw when I reported this a long time ago: #89

I swear this had been working perfectly for a while... just came back to stream Diablo 4 and the issue pops up extremely quickly. Doesn't happen with any other Moonlight client.

@theBeaz
Copy link

theBeaz commented Oct 12, 2024

Hi everyone and sorry for the late response, to be fair I still wasn't be able to pinpoint the issue.

Does anything improve/changes if running this modified version of Sunshine? https://github.com/TheElixZammuto/Sunshine-1/actions/runs/9980350592

I also think the issue is only affecting Nvidia RTX 3xxx and 4xxx graphics card, am I right?

I believe something is broken with this? Looks like it is failing to build.

@woiza
Copy link

woiza commented Oct 26, 2024

@TheElixZammuto

Here's the response from the sunshine team regarding intra refresh:

Intra-refresh isn't relevant for us because we do not request periodic intra frames. We only request a key frame when a frame is lost, and we do really need the full key frame at that point rather than a slice of intra-coded blocks.

Does your client do the same?

@woiza
Copy link

woiza commented Oct 27, 2024

Check out the new Apollo release which supports NVENC intra refresh:

https://github.com/ClassicOldSong/Apollo/releases/tag/v0.2.5-alpha.1

Enabling it eliminates artifacts! I played for three hours without a single issue. You can find this setting under NVENC.

@harun911
Copy link

harun911 commented Nov 2, 2024

@woiza do you notice any other differences between that apollo release and the customized sunshine build that Elix has posted here?

@woiza
Copy link

woiza commented Nov 3, 2024

@harun911 Apollo has UI elements (NVENC settings) for enabling and disabling intra refresh. Moreover, it has a few nice features which Sunshine lacks, especially the included virtual screen is a game changer for me. It works very well...
You can install both and even additionally to NVIDIA Gamestream. You just have to make sure to use different ports.

@harun911
Copy link

harun911 commented Nov 3, 2024

@woiza is it also possible to use without the virtual display? I'm using sunshine with a dummy plug. I've exported the EDID of my TV and flashed it to the dummy plug, making my PC think as if my actual TV with all it's specs is attached to the PC. (It won't get any more compatible then this) and rather keep on using my dummy plug. The only thing that's killing me are those compression artifacts. Maybe I'll try to run them side by side.

@woiza
Copy link

woiza commented Nov 3, 2024

@harun911 yes, that is possible. The virtual display is optional. You can use any screen/display with Apollo.

@harun911
Copy link

harun911 commented Nov 3, 2024

@woiza Thanks for letting me know man, I'll try apollo later this evening

@harun911
Copy link

@woiza Apollo works flawlessly with intra refresh. I can recommend everyone to switch to Apolllo (a fork of sunshine) and activate Intra Refesh under NVENC settings. The virtual display also works flawlessly and correctly sets the Refesh rate and resolution for your connected client (whether it be the xbox, your phone or another pc). When the stream is disconnected, Apollo also conveniently disposes the created virtual monitor. No more compression artifacts everyone!

@ryaneford
Copy link

ryaneford commented Nov 14, 2024 via email

@harun911
Copy link

harun911 commented Nov 14, 2024

@ryaneford I think I had that too, the first time I connected. Somewhere in the apollo settings there's a list of connected clients and their permissions. The first connected client automatically gets God mode and then for every new client you have to check a couple of checkboxes that give permissions to that client so it can view the stream.

@ryaneford
Copy link

ryaneford commented Nov 14, 2024 via email

@ns6089
Copy link

ns6089 commented Nov 19, 2024

@TheElixZammuto By the way, I'm getting exact same artifacts on android when trying to stream full range to a device that doesn't support it properly. Does moonlight-xbox use full range by default?

@Lohengrim
Copy link

What about AMD users? I use an 6750 XT and suffer the same artifacts.
Does apollo has an option that is needed to be activated too? I suppose that NVENC intra refresh will only affect Nvidia users.

@theBeaz
Copy link

theBeaz commented Nov 24, 2024

@woiza Apollo works flawlessly with intra refresh. I can recommend everyone to switch to Apolllo (a fork of sunshine) and activate Intra Refesh under NVENC settings. The virtual display also works flawlessly and correctly sets the Refesh rate and resolution for your connected client (whether it be the xbox, your phone or another pc). When the stream is disconnected, Apollo also conveniently disposes the created virtual monitor. No more compression artifacts everyone!

Just want to comment that even with Apollo the compression artifacts are there. But with the NVENC refresh setting you'll see periodic "screen wipes" that attempt to clear up the screen. In some games/scenes you'll start to see the issue cropping up pretty heavily and the nvenc setting working overtime to fix it. Eventually it goes away... for a little while.

This is still only an issue with THIS Xbox client. I never see this artifact issue via MacOS or Linux (Steam Deck) Moonlight clients.

@Lohengrim
Copy link

Tried apollo with my AMD card. Same issues. No special option to clean the screen other than disconect & connect again periodically.
Clearly something is off only on Xbox client. At least a workaround to refresh the artifacts everynow and then is needed.

@harun911
Copy link

harun911 commented Nov 25, 2024

@woiza Apollo works flawlessly with intra refresh. I can recommend everyone to switch to Apolllo (a fork of sunshine) and activate Intra Refesh under NVENC settings. The virtual display also works flawlessly and correctly sets the Refesh rate and resolution for your connected client (whether it be the xbox, your phone or another pc). When the stream is disconnected, Apollo also conveniently disposes the created virtual monitor. No more compression artifacts everyone!

Just want to comment that even with Apollo the compression artifacts are there. But with the NVENC refresh setting you'll see periodic "screen wipes" that attempt to clear up the screen. In some games/scenes you'll start to see the issue cropping up pretty heavily and the nvenc setting working overtime to fix it. Eventually it goes away... for a little while.

This is still only an issue with THIS Xbox client. I never see this artifact issue via MacOS or Linux (Steam Deck) Moonlight clients.

That's odd, because intra Refesh with apollo has completely fixed my compression artifact issues. I have been using it for more then 10 sessions, with sessions lasting between 2 and 6 hours. Had 0 artifacts. Maybe it's a setting on your end? Do you have HDR on or something? Have you altered any color settings in the nvidia configuration menu?

@woiza
Copy link

woiza commented Nov 25, 2024

Apollo ant intra refresh mitigate this issue but don't resolve it completely. Every now and then there are still artefacts. Also, afaik intra refresh is only available for NVIDIA and requires Apollo. Sunshine rejected the addition of intra refresh:
LizardByte/Sunshine#3323

@TheElixZammuto Do you think you could add IDR to moonlight? Maybe as an option in the UI?
#140

@ns6089
Copy link

ns6089 commented Nov 25, 2024

Intra refresh is only available for NVIDIA

AMF can do it too, just needs a small patch on top of ffmpeg.

But I'm still wondering about what's causing the issue in the first place.

  • It does look like out-of-gamut issue
  • It's not caused by full range like it happens on android since moonlight-xbox seem to request full range only in HDR
  • It may be caused by the non-standard rgb-to-yuv function in sunshine/moonlight, one LSB overflow in UV plane is entirely possible because of UV center offset. But I'm personally not willing to touch it because of the amount of potential back-and-forth required (and I don't have the hardware to test it).

@theBeaz
Copy link

theBeaz commented Nov 25, 2024

@woiza Apollo works flawlessly with intra refresh. I can recommend everyone to switch to Apolllo (a fork of sunshine) and activate Intra Refesh under NVENC settings. The virtual display also works flawlessly and correctly sets the Refesh rate and resolution for your connected client (whether it be the xbox, your phone or another pc). When the stream is disconnected, Apollo also conveniently disposes the created virtual monitor. No more compression artifacts everyone!

Just want to comment that even with Apollo the compression artifacts are there. But with the NVENC refresh setting you'll see periodic "screen wipes" that attempt to clear up the screen. In some games/scenes you'll start to see the issue cropping up pretty heavily and the nvenc setting working overtime to fix it. Eventually it goes away... for a little while.
This is still only an issue with THIS Xbox client. I never see this artifact issue via MacOS or Linux (Steam Deck) Moonlight clients.

That's odd, because intra Refesh with apollo has completely fixed my compression artifact issues. I have been using it for more then 10 sessions, with sessions lasting between 2 and 6 hours. Had 0 artifacts. Maybe it's a setting on your end? Do you have HDR on or something? Have you altered any color settings in the nvidia configuration menu?

Nope. Nothing special. No HDR or special color settings. Just 4K120 in SDR. And again - only the Xbox client. I’ve done extensive testing across other clients and Xbox test builds in dev mode (reported this issue in an earlier build almost a year ago). The game you are playing can also affect the issue (or perhaps the perception of it). It’s very obvious when it’s happening in a game like Cyberpunk or Starfield. You’ll see the Apollo setting literally wiping the screen. To be fair - the Apollo hack helped make it more tolerable, but I’d love for it to be actually fixed in the client.

@woiza
Copy link

woiza commented Nov 25, 2024

Can confirm, 1440p/4k 120 SDR and only this client. Using Sunshine/Apollo with other clients I have (LG TV, Radxa Rock 3A and Rock 5B) I cannot reproduce this issue.

@harun911
Copy link

harun911 commented Nov 25, 2024

@woiza Apollo works flawlessly with intra refresh. I can recommend everyone to switch to Apolllo (a fork of sunshine) and activate Intra Refesh under NVENC settings. The virtual display also works flawlessly and correctly sets the Refesh rate and resolution for your connected client (whether it be the xbox, your phone or another pc). When the stream is disconnected, Apollo also conveniently disposes the created virtual monitor. No more compression artifacts everyone!

Just want to comment that even with Apollo the compression artifacts are there. But with the NVENC refresh setting you'll see periodic "screen wipes" that attempt to clear up the screen. In some games/scenes you'll start to see the issue cropping up pretty heavily and the nvenc setting working overtime to fix it. Eventually it goes away... for a little while.
This is still only an issue with THIS Xbox client. I never see this artifact issue via MacOS or Linux (Steam Deck) Moonlight clients.

That's odd, because intra Refesh with apollo has completely fixed my compression artifact issues. I have been using it for more then 10 sessions, with sessions lasting between 2 and 6 hours. Had 0 artifacts. Maybe it's a setting on your end? Do you have HDR on or something? Have you altered any color settings in the nvidia configuration menu?

Nope. Nothing special. No HDR or special color settings. Just 4K120 in SDR. And again - only the Xbox client. I’ve done extensive testing across other clients and Xbox test builds in dev mode (reported this issue in an earlier build almost a year ago). The game you are playing can also affect the issue (or perhaps the perception of it). It’s very obvious when it’s happening in a game like Cyberpunk or Starfield. You’ll see the Apollo setting literally wiping the screen. To be fair - the Apollo hack helped make it more tolerable, but I’d love for it to be actually fixed in the client.

I agree, I think all of us would love to have this actually fixed in this client. One other thing I noticed is, that the xbox moonlight client only works properly for me when cold booting the xbox. If I don't cold boot, I get random screen flickering and frame pacing issues. So the only way for me to properly enjoy using the xbox moonlight client, is restarting my xbox right after waking it up and only then connect to my desktop pc through moonlight. No idea, what it could be, but it's another nuisance I discovered while using this client. I have cyberpunk installed, but didn't properly play it for a long sessions yet, I'll try it out somewhere next week and see if I can induce the artifacts while playing a different game.

@TheElixZammuto
Copy link
Owner

Hi everyone!

I made LizardByte/Sunshine#3415 for Sunshine (and related Moonlight Xbox and libraries) to workarond the issue once and for all. Unfortunately I don't have the hardware to test this better and find a real solution

@ns6089 Would it help if I manage to make the app dump the NALs so that you can analyze these further?

@Lohengrim
Copy link

Lohengrim commented Nov 26, 2024

Please don't forget that AMD users (as me) also have the same issue so it is not only a NVENC issue.
Today I streamed from a Steam Deck in desktop mode to the XBOX just for the lols, and same issues. Took a while as it is random but after ~20 minutes all screen started to turn white texture by texture.

As always, discnnecting session and reconnecting again cleaned the game image

@ns6089
Copy link

ns6089 commented Nov 27, 2024

@ns6089 Would it help if I manage to make the app dump the NALs so that you can analyze these further?

@TheElixZammuto Not really, it's easy to get that from sunshine unless moonlight-common-c manages to mangle the network layer somehow. What can potentially help is raw decoder input paired with raw decoder output (in YUV, before all color conversion), since that's where the issue manifests. But even that will be very large and painful to analyze,

@dmRiku
Copy link

dmRiku commented Dec 1, 2024

Adjusting the Xbox Moonlight settings to: 1920x1080, 120fps, h.264 and HDR: off, fixed the issue for me.

@jmyoung
Copy link

jmyoung commented Dec 8, 2024

Haven't looked at this in a while because I haven't been playing any games on the XBSX that use Moonlight. But I am now.

Problem still exists, including with the custom built Sunshine server mentioned above and with the latest version of Apollo. However, both of those servers exhibit the behaviour that I'll mention below;

Settings are still 4k60, non-HDR, h265. I don't see the problem at 1080p, but I expect given what's being said above that is probably because the data rate would be a lot lower. What I see with Apollo and the custom build is that the display "wipes" from top to bottom, wiping off some of the artefacting, which after several instances of "wiping" it clears up. But then it comes back again shortly after.

As others have said, I only ever see this with the XBox Moonlight client. Other Moonlight clients (Windows, Android, haven't tried iOS) do not display this artefacting, on the same network, and even literally on the same network port. Setup I use is entirely wired 1Gb/s.

@jmyoung
Copy link

jmyoung commented Dec 9, 2024

Another comment while I'm thinking of it. My bitrate is set to 60Mb/s, which is well below max throughput that my network will support (again, 1Gb/s wired). I run my other Moonlight devices at 80Mb/s. I do wonder if this is correlated to a max throughput issue on the client itself - I might try dropping bitrate to 40Mb/s and see what happens.

EDIT: Decreased to 40Mb/s, and also tried 20Mb/s. Problem was actually worse at lower bitrates, which is unusual and not expected at all. So I pushed up the bitrate to 80Mb/s, and it still happened but with reduced severity. I have no explanation for this :|

@acodrington
Copy link

I just want to add another data point for this bug. Here is my setup:

Server

  • Apollo (latest version v0.2.6-alpha.3)
  • Windows 11 24H2
  • Ethernet wired connection
  • Nvidia 3080
  • AMD 5800X

Client

  • Xbox Series S
  • 4K TV w/ HDR, 120Hz refresh rate
  • Ethernet wired connection

I am able to get a reliable 4K120, HDR, H265 streaming connection with no other issues besides these rainbow effect artifacts.

On the client side, I have experimented with various combinations of the following, but with no change in results.

  • HDR / SDR
  • 60Hz / 120Hz
  • 4K /1080p
  • H264 / H265

Enabling Intra Refresh in Apollo is the only thing that has made a difference, but as described by others, I will still occasionally see artifacts which then get 'wiped'

I'm happy to perform any testing if that would help.

@TheElixZammuto
Copy link
Owner

Pushed Moonlight 1.16.4 that adds the intra-refresh workaround

Please use the latest nightly version of Sunshine to test it out, otherwise it won't work, right now there are no stable releases that supports that feature

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests