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

Cannot connect a second time unless restart the system #2670

Open
3 tasks done
paulzzh opened this issue Jun 11, 2024 · 2 comments
Open
3 tasks done

Cannot connect a second time unless restart the system #2670

paulzzh opened this issue Jun 11, 2024 · 2 comments

Comments

@paulzzh
Copy link

paulzzh commented Jun 11, 2024

Is there an existing issue for this?

  • I have searched the existing issues

Is your issue described in the documentation?

  • I have read the documentation

Is your issue present in the latest beta/pre-release?

  • This issue is present in the latest pre-release

Describe the Bug

Clean install Windows and drivers
Launch the VM
Connect with moonlight
Login windows
Sunshine works perfect with hevc_qsv accelerate

Press Ctrl+Alt+Shift+Q to disconnect
Reconnect
Black screen and timeout "no video received from host"
The log repeats "Detecting monitors..."

Restart the VM
Sunshine works again

Expected Behavior

Moonlight can show the screen after disconnection and reconnection

Additional Context

I'm using Proxmox with SR-IOV to split & passthrough iGPU to the VM, with itsmikethetech's virtual display driver. #1614
Proxmox 8.2.2 with kernel 6.5.13-5-pve link

When Sunshine works the "Detecting monitors" has "Info: Capture format [DXGI_FORMAT_B8G8R8A8_UNORM]" and "Frame 1: IDR Keyframe (AV_FRAME_FLAG_KEY)".
When it repeats the "Detecting monitors" there is no "Capture format" and "IDR Keyframe".

display_wgc_ram_t::snapshot(const pull_free_image_cb_t &pull_free_image_cb, std::shared_ptr<platf::img_t> &img_out, std::chrono::milliseconds timeout, bool cursor_visible) {
HRESULT status;
texture2d_t src;
uint64_t frame_qpc;
dup.set_cursor_visible(cursor_visible);
auto capture_status = dup.next_frame(timeout, &src, frame_qpc);
if (capture_status != capture_e::ok)
return capture_status;
auto frame_timestamp = std::chrono::steady_clock::now() - qpc_time_difference(qpc_counter(), frame_qpc);
D3D11_TEXTURE2D_DESC desc;
src->GetDesc(&desc);
// Create the staging texture if it doesn't exist. It should match the source in size and format.
if (texture == nullptr) {
capture_format = desc.Format;
BOOST_LOG(info) << "Capture format ["sv << dxgi_format_to_string(capture_format) << ']';

Maybe capture_status is not capture_e::ok ?

Host Operating System

Windows

Operating System Version

windows 10 22h2

Architecture

64 bit

Sunshine commit or version

v2024.610.122248

Package

Windows - installer

GPU Type

Intel

GPU Model

Intel(R) UHD Graphics 770 (i7-14700k)

GPU Driver/Mesa Version

31.0.101.4338

Capture Method (Linux Only)

No response

Config

min_log_level = 1

Apps

No response

Relevant log output

There was an error creating your issue: body is too long (maximum is 65536 characters).
https://pastebin.com/cRsi0zbk
@ReenigneArcher
Copy link
Member

Does increasing channels to 2 solve the problem?

@paulzzh
Copy link
Author

paulzzh commented Jun 16, 2024

Does increasing channels to 2 solve the problem?

no.
I think it's a DXGI capture issue.
Just start windows and restart sunshine in WebUI first. It's black screen.

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

2 participants