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

First connection errors #123

Closed
ipnface opened this issue Nov 27, 2024 · 23 comments
Closed

First connection errors #123

ipnface opened this issue Nov 27, 2024 · 23 comments

Comments

@ipnface
Copy link

ipnface commented Nov 27, 2024

On the first connection to the Host, pop-up warnings flash up that both the host and client can't encode/decode AV1 or do HDR.

A black screen then appears on connection.

Once you quit the first connection and reconnect a second time everything works as normal, with AV1 and HDR.

Is there any way to fix this?

@ClassicOldSong
Copy link
Owner

It's more likely caused by your host's configuration. Could you please share your PC configuration?

@ipnface
Copy link
Author

ipnface commented Nov 27, 2024

What details of PC configuration do you need exactly?

Host
14900KF
4090
32GB Ram

Client
N100
16GB Ram

@ClassicOldSong
Copy link
Owner

Oh you're using the desktop client. It's weirdly slow when initiating a stream and this message might actually be caused by the client itself. Can you confirm the same message still pops up with Android client or iOS client?

@ipnface
Copy link
Author

ipnface commented Nov 27, 2024

Same errors occur using your Artemis moonlight fork for Android, however it loads the screen after the AV1 warning, no black screen. HEVC fallback.

Each time opening on Artemis says no AV1 decoder found. Not just first time. It never uses AV1 despite having it selected in Artemis settings.

Phone
Qualcomm Snapdragon 8+ Gen 1 (has AV1 decoder)

@ClassicOldSong
Copy link
Owner

Yeah so it's the client's issue. I haven't got time to look into the desktop client yet so unfortunately I can't be sure what's happening. What's the error on Artemis then?

@ipnface
Copy link
Author

ipnface commented Nov 27, 2024

Actually from Google maybe the Qualcomm Snapdragon 8+ Gen 1 doesn't have AV1 decode. Getting conflicting answers online. Thanks for your help in any case, I guess we can leave it there.

@ClassicOldSong
Copy link
Owner

The status overlay will show what decoder is actually used. IIRC 8G1 doesn't have AV1, it starts supporting AV1 from 8G2.

@Wordsmith9091
Copy link

Wordsmith9091 commented Dec 7, 2024

I get a similar problem using Apollo, whether using Artemis or a standard Moonlight client.

On my first attempt to connect, I'll get a momentary error on the overlay telling me the server device GPU doesn't support HDR. Colors will be noticeably distorted.

Then I'll disconnect and reconnect, and HDR will work fine.

This is with Apollo running on an up-to-date Windows 11 install, with a 5900x and a 4080 Super with up-to-date drivers. The client devices have been Artemis on a Galaxy S24+ (Snapdragon 8 Gen 3) and Moonlight on my M2 Max Macbook Pro Pro.

This is whether I try to force AV1, HEVC or have it set to auto in the codec setting in the client.

@ClassicOldSong
Copy link
Owner

ClassicOldSong commented Dec 7, 2024

It's a Windows issue. Probably that's why Parsec still doesn't make HDR on their virtual display available.

@Wordsmith9091
Copy link

Is it particular to newer builds of Windows? I didn't run into this issue when using the mainline Sunshine, but having it mirror my real physical primary display (instead of a virtual device driver), which was HDR-capable and had it enabled in Windows. But that was also now a couple of months ago, and I don't know if anything's changed since then.

Or is it something about the way Windows with the virtual driver specifically -- perhaps when the virtual driver is set to configure its capabilities on-demand based on the client settings? If so, would there be any way to work around this by having a setting in the server config to force HDR on? It works fine on a second connection -- could the server be "primed" to mimic whatever's happening between the first and second connection? If not with Apollo itself, with something Artemis does?

For a while, I was briefly trying Sunshine AIO, but I gave up on it when some of the scripts were failing on my machine after an update, and this project seemed (and has been!) much more seamless overall to use. I don't think I ran into this issue there though, either.

(Forgive the rambling speculation -- I have only a minor insight into how any of this might work)

@ClassicOldSong
Copy link
Owner

ClassicOldSong commented Dec 7, 2024

perhaps when the virtual driver is set to configure its capabilities on-demand based on the client settings

It's this problem, and it exists through Win11 23H2 and 24H2. MTT's VDD doesn't expose this problem since the virtual display it creates presists, and the problem only happens when a new display is just added. I have already workaround the color issue by toggling HDR on and off on the newly attached virtual display automatically but don't know why it can't detect HDR capability on your system on the first connection.

Windows is still very janky about HDR so... that's why there's the message about HDR in the README.

@ClassicOldSong
Copy link
Owner

@Wordsmith9091
Copy link

Wordsmith9091 commented Jan 2, 2025

Unfortunately, I'm still getting the error that the server doesn't support HDR rendering on a first connection. As with before, if I disconnect and reconnect, HDR is working properly on the virtual display. This is with Artemis on Android but I've seen it with Moonlight on other OSes as well.

@ClassicOldSong
Copy link
Owner

You need to set encoder support to always advertise. Then it'll work.

@Wordsmith9091
Copy link

Wordsmith9091 commented Jan 2, 2025

Sorry, where do I set that? Under "advanced," I have Apollo will advertise support for HVEC based on encoder capabilities" (and the same for AV1.)

Under the codec settings in Artemis, it looks like I had it as "prefer HEVC" (though I'd thought I had it on automatic).

This is on Win 11, latest NVidia drivers, Apollo v0.2.7. The client is the latest version of Artemis on a Samsung S24+.

@ClassicOldSong
Copy link
Owner

Set them both to always advertise. You don't change your GPU very often right 😂

When using headless mode, the initial probing for encoder support is skipped, so it can only read from user configs. Previous versions didn't do that, encoder capabilities were left blank at startup, probing was delayed to the first connection, that's why it only had that message on the first connection.

@Scotchy49
Copy link

Running master and setting both settings to always advertise, I have still the same error and behaviour.

@ClassicOldSong
Copy link
Owner

image
Like this? I have got rid of those messages both on desktop and Android.

@Wordsmith9091
Copy link

Same. I had both set as in the screenshot, and still got the same message and behavior.

@Scotchy49
Copy link

image Like this? I have got rid of those messages both on desktop and Android.

Yep, like that and still have the errors

@ClassicOldSong
Copy link
Owner

Weird, have you pulled the latest master? Or can you try my build?

@Wordsmith9091
Copy link

This was on .2.7. Do you mean a build newer than that, and if so where do I get it? I'd be glad to test again,but can't until later tonight.

@Scotchy49
Copy link

Weird, have you pulled the latest master? Or can you try my build?

I actually didn't notice you had pushed additional commits since yesterday, sorry.
I have just re-built master and cannot reproduce the issue anymore, so it seems to have done the trick!

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

4 participants