LizardByte / Sunshine

Self-hosted game stream host for Moonlight.
http://app.lizardbyte.dev/Sunshine/
GNU General Public License v3.0
18.51k stars 898 forks source link

Sunshine only shows half of screen when connecting to host with DisplayPort TILE mode (Dell UP3218k 8K Display) #1267

Open rubin55 opened 1 year ago

rubin55 commented 1 year ago

Is there an existing issue for this?

Is your issue described in the documentation?

Is your issue present in the nightly release?

Describe the Bug

I'm running a Dell UP3218k monitor which uses the DisplayPort TILE extension to connect a single monitor using two DP1.4 cables (this is due to bandwidth - 8k@60hz is more than a single DP1.4 cable can handle). In XrandR this shows up as follows:

Monitors: 1
0: *DELL UP3218K-1 7680/698x4320/393+0+0  DP-1 DP-2

Notice the DP-1 DP-2 at the end. When I connect to Sunshine, Sunshine only shows half the screen, everything else works normally.

Expected Behavior

I expect Sunshine to correctly show the image from DP-1 and DP-2 as one screen, just like X11 and Wayland do.

Additional Context

No response

Host Operating System

Linux

Operating System Version

Voi Linux, kernel 6.1.27

Architecture

64 bit

Sunshine commit or version

0.17.0

Package

other (self built)

GPU Type

AMD

GPU Model

Vega64

GPU Driver/Mesa Version

OpenGL version string: 4.6 (Compatibility Profile) Mesa 22.3.5

Capture Method (Linux Only)

KMS

Config

fps = ["30","60"]
vt_coder = auto
amd_rc = auto
vt_realtime = enabled
key_rightalt_to_key_win = disabled
resolutions = [
    1280x720,
    1920x1080,
    1920x1200,
    2880x1920,
    3840x2160
]
origin_pin_allowed = pc
gamepad = x360
nv_coder = auto
dwmflush = enabled
min_log_level = 2
nv_rc = auto
hevc_mode = 0
nv_preset = default
upnp = disabled
amd_coder = auto
vt_software = auto
origin_web_ui_allowed = pc
amd_quality = default
nv_tune = ull

Apps

{
    "env": {
        "PATH": "$(PATH)"
    },
    "apps": [
        {
            "name": "Desktop",
            "output": "",
            "cmd": "",
            "image-path": "assets\/desktop-alt.png"
        }
    ]
}

Relevant log output

N/A.
rubin55 commented 1 year ago

Note, I'm not (yet) running 0.19.1 due to (new?) dependency on libmfx which is not yet available on Void Linux (but will be soon, see: https://github.com/void-linux/void-packages/pull/41132)

ReenigneArcher commented 1 year ago

We don't support old versions.

rubin55 commented 1 year ago

I'll retest with latest as soon as that Void package is available so I have libmfx available, keep you posted.

rubin55 commented 11 months ago

@ReenigneArcher I just retested this on Sunshine 0.21.0. The problem still occurs. Hint in the logs:

[rubin@ADAM ~]$ sunshine
[resolutions] -- [[
    1280x720,
    1920x1080,
    1980x1200,
    2256x1504,
    3840x2160,
    7680x4320
]]
[fps] -- [[30,60]]
[2023:10:20:13:45:58]: Info: Sunshine version: 0.21.0
[2023:10:20:13:45:58]: Info: Found display [wayland-0]
[2023:10:20:13:45:58]: Info: Found interface: wl_output(4) version 4
[2023:10:20:13:45:58]: Info: Found interface: zxdg_output_manager_v1(5) version 3
[2023:10:20:13:45:58]: Warning: Missing Wayland wire for wlr-export-dmabuf
[2023:10:20:13:45:58]: Info: Found display [wayland-0]
[2023:10:20:13:45:58]: Info: Found display [wayland-0]
[2023:10:20:13:45:58]: Info: Found interface: wl_output(4) version 4
[2023:10:20:13:45:58]: Info: Found interface: zxdg_output_manager_v1(5) version 3
[2023:10:20:13:45:58]: Info: Offset: 0x0
[2023:10:20:13:45:58]: Info: Resolution: 7680x4320
[2023:10:20:13:45:58]: Info: Name: DP-1
[2023:10:20:13:45:58]: Info: Found monitor: Dell Inc. 32"
[2023:10:20:13:45:58]: Info: DP-1: Dell Inc. 32"
[2023:10:20:13:45:58]: Warning: Mismatch on expected Resolution compared to actual resolution: 3840x4320 vs 7680x4320
<...>

The last warning line indicates that the display detection logic sees only one half of the screen. Connecting works, but you only see half of the screen on the client.

rubin55 commented 11 months ago

I also did a quick test using an X11 session, fwiw, no mismatch warning, same outcome, but different screen listings:

[rubin@ADAM ~]$ sunshine
[resolutions] -- [[
    1280x720,
    1920x1080,
    1980x1200,
    2256x1504,
    3840x2160,
    7680x4320
]]
[fps] -- [[30,60]]
[2023:10:20:18:41:40]: Info: Sunshine version: 0.21.0
[2023:10:20:18:41:40]: Error: Environment variable WAYLAND_DISPLAY has not been defined
[2023:10:20:18:41:40]: Info: Detecting monitors
[2023:10:20:18:41:40]: Info: Detected monitor 0: DP-1, connected: true
[2023:10:20:18:41:40]: Info: Detected monitor 1: DP-2, connected: true
[2023:10:20:18:41:40]: Info: Detected monitor 2: DP-3, connected: false
[2023:10:20:18:41:40]: Info: Detected monitor 3: HDMI-1, connected: false
LizardByte-bot commented 8 months ago

It seems this issue hasn't had any activity in the past 90 days. If it's still something you'd like addressed, please let us know by leaving a comment. Otherwise, to help keep our backlog tidy, we'll be closing this issue in 10 days. Thanks!

rubin55 commented 8 months ago

This is still an issue.

LizardByte-bot commented 5 months ago

It seems this issue hasn't had any activity in the past 90 days. If it's still something you'd like addressed, please let us know by leaving a comment. Otherwise, to help keep our backlog tidy, we'll be closing this issue in 10 days. Thanks!

rubin55 commented 5 months ago

This issue is still relevant with latest sunshine.

LizardByte-bot commented 2 months ago

It seems this issue hasn't had any activity in the past 90 days. If it's still something you'd like addressed, please let us know by leaving a comment. Otherwise, to help keep our backlog tidy, we'll be closing this issue in 10 days. Thanks!

rubin55 commented 2 months ago

This issue is still relevant with latest sunshine.

rubin55 commented 1 month ago

Just a quick update: This issue still exists in current git-master, both on X11 and Wayland: When a display is connected with two cables and running in TILED mode, Sunshine will only stream one half of the screen.

ReenigneArcher commented 1 month ago

Honestly, no one else seems to have this type of setup so it's unlikely to ever receive attention.

rubin55 commented 1 month ago

There are quite a few high resolution displays that use TILE mode to present the screen as one screen at higher frame-rates (i.e., not just the Dell UP3218K, also things like the Dell UP2414Q, LG UltraFine 5K 27MD5KA, 2022 Apple Studio Display, etc). I work around it by simply having a second "regular" screen that I share instead, but it is a sad state of affairs.

Would it be possible to financially sponsor a fix for this issue?

Coincedentally, a new (first time since the Dell UP3218k, which is from 2016 I think) 8K display by ASUS was announced a few months ago, that supports DisplayPort 2.1, HDMI 2.1, which has the bandwidth to handle 8K@60hz without tile mode.. for 8000 bucks.

Anyways, I think quite a few peeps would be happy if this could be made to work.

ReenigneArcher commented 1 month ago

Would it be possible to financially sponsor a fix for this issue?

Not to me, I couldn't replicate this problem even if I wanted to as I don't use any 8k displays. But I won't stop you from hiring someone else.