-
Notifications
You must be signed in to change notification settings - Fork 28
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
Comments
I can confirm, that I also have this issue. |
I'm having this issue as well |
Can you check which version of Moonlight UWP are you running on your Xbox? |
I'm running version 1.15.7.70 |
I can confirm this as well, i have the exact same issue. Using Version 1.16.1. |
@TheElixZammuto Any idea what might be causing this? |
Can confirm, am now also getting this issue. |
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. |
Turning on ycc422 in the display settings seems to solve this problem |
It didn't solve anything for me. Still getting rainbow artifacts. |
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. |
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. |
I'm actually having the same issue since forever, but I didn't know how to explain it, but here we are. Guest Information: Xbox Model: [Xbox Series X] Operating System: [Windows 11] 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. |
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?: 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 |
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. The setting would be in General --> TV & Display options --> Video Fidelity & overscan |
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. |
Update to this. It didn't solve the problem, but it made it less likely to happen at least, |
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. |
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.
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? |
@TheElixZammuto Any chance of merging BradyBrenot's changes so we can just regular mainline sunshine? |
Hi @TheElixZammuto ! I'm able to quickly reproduce the problem in the opening sequence of God of War.
That change seems to fix it! Guest Information: Host Information |
When using this version of Sunshine, is it safe to update it? Or should I just keep it as is |
AMD 6750 XT here and same artifacts if the image is static for some time. |
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 Host Information Both console and host are hardwired over GbE |
Will this fix be implemented on the official version of sunshine? |
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. |
I believe something is broken with this? Looks like it is failing to build. |
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? |
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. |
@woiza do you notice any other differences between that apollo release and the customized sunshine build that Elix has posted here? |
@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... |
@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. |
@harun911 yes, that is possible. The virtual display is optional. You can use any screen/display with Apollo. |
@woiza Thanks for letting me know man, I'll try apollo later this evening |
@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! |
I installed Apollo on a fresh windows install and got it working with
Virtual Display on my MacBook no problem but i fired it up on my series X
and i got a whole host of errors connecting with all options on Apollo. Was
there a setting i need to look at?
…On Tue, Nov 12, 2024 at 5:06 PM harun911 ***@***.***> wrote:
@woiza <https://github.com/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!
—
Reply to this email directly, view it on GitHub
<#117 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AK3FR2CE66ZRYH5CE6OACML2AJ3W5AVCNFSM6AAAAABE6DQGMKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINZRGY4DAMRQHE>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
@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. |
i was just about to post that i found that i had to add the
permissions. thanks for getting to this before me :D
…On Thursday, 14 Nov 2024, 9:57 am, wrote:
@ryaneford I think I had that too, the first time I connected. Somewhere in the apollo settings there's a list of connects clients and their permissions. You have to check a couple of checkboxes that give permissions to the xbox client so it can view the stream. You are receiving this because you were mentioned.Message ID:
|
@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? |
What about AMD users? I use an 6750 XT and suffer the same artifacts. |
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. |
Tried apollo with my AMD card. Same issues. No special option to clean the screen other than disconect & connect again periodically. |
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? |
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: @TheElixZammuto Do you think you could add IDR to moonlight? Maybe as an option in the UI? |
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.
|
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. |
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. |
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. |
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? |
Please don't forget that AMD users (as me) also have the same issue so it is not only a NVENC issue. As always, discnnecting session and reconnecting again cleaned the game image |
@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, |
Adjusting the Xbox Moonlight settings to: 1920x1080, 120fps, h.264 and HDR: off, fixed the issue for me. |
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. |
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 :| |
I just want to add another data point for this bug. Here is my setup: Server
Client
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.
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. |
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 |
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
** Logs **
I dont see any entry that only occurs while the issue is happening
Guest Information:
Host Information
The text was updated successfully, but these errors were encountered: