ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.19k stars 174 forks source link

Enabling "Change desktop resolution to match streaming client" for remote play does nothing #6577

Open JWolvers opened 4 years ago

JWolvers commented 4 years ago
System information

``` Computer Information: Manufacturer: Unknown Model: Unknown Form Factor: Desktop No Touch Input Detected Processor Information: CPU Vendor: AuthenticAMD CPU Brand: AMD Ryzen 7 3700X 8-Core Processor CPU Family: 0x17 CPU Model: 0x71 CPU Stepping: 0x0 CPU Type: 0x0 Speed: 3600 Mhz 16 logical processors 8 physical processors HyperThreading: Supported FCMOV: Supported SSE2: Supported SSE3: Supported SSSE3: Supported SSE4a: Supported SSE41: Supported SSE42: Supported AES: Supported AVX: Supported AVX2: Unsupported AVX512F: Unsupported AVX512PF: Unsupported AVX512ER: Unsupported AVX512CD: Unsupported AVX512VNNI: Unsupported SHA: Unsupported CMPXCHG16B: Supported LAHF/SAHF: Supported PrefetchW: Unsupported Operating System Version: "Arch Linux" (64 bit) Kernel Name: Linux Kernel Version: 5.3.5-arch1-1-ARCH X Server Vendor: The X.Org Foundation X Server Release: 12005000 X Window Manager: KWin Steam Runtime Version: steam-runtime_0.20191007.0 Video Card: Driver: X.Org AMD NAVI10 (DRM 3.33.0, 5.3.5-arch1-1-ARCH, LLVM 9.0.0) Driver Version: 4.5 (Compatibility Profile) Mesa 19.2.1 OpenGL Version: 4.5 Desktop Color Depth: 24 bits per pixel Monitor Refresh Rate: 143 Hz VendorID: 0x1002 DeviceID: 0x731f Revision Not Detected Number of Monitors: 1 Number of Logical Video Cards: 1 Primary Display Resolution: 3840 x 1080 Desktop Resolution: 3840 x 1080 Primary Display Size: 47.24" x 13.39" (49.09" diag) 120.0cm x 34.0cm (124.7cm diag) Primary VRAM: 8192 MB Sound card: Audio device: ATI R6xx HDMI Memory: RAM: 32044 Mb Miscellaneous: UI Language: English LANG: en_US.UTF-8 Total Hard Disk Space Available: 224021 Mb Largest Free Hard Disk Block: 80080 Mb VR Headset: None detected Steam Linux Runtime Information: { "can-write-uinput" : true, "steam-installation" : { "path" : "/home/mrwolvetech/.local/share/Steam", "data_path" : "/home/mrwolvetech/.local/share/Steam", "issues" : [ ] }, "runtime" : { "path" : "/home/mrwolvetech/.local/share/Steam/ubuntu12_32/steam-runtime", "version" : "0.20191007.0", "issues" : [ ] }, "os-release" : { "id" : "arch", "name" : "Arch Linux", "pretty_name" : "Arch Linux", "build_id" : "rolling" }, "architectures" : { "i386-linux-gnu" : { "can-run" : true, "library-issues-summary" : [ ], "graphics-details" : { "x11/vulkan" : { "messages" : "WARNING: [Loader Message] Code 0 : Skipping manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json - The file has already been read once\nWARNING: [Loader Message] Code 0 : Layer \"VK_LAYER_RENDERDOC_Capture\" using deprecated 'vkGetInstanceProcAddr' tag which was deprecated starting with JSON file version 1.1.0. Instead, use the new vkNegotiateLayerInterfaceVersion function to return the GetInstanceProcAddr function for this layer.\nWARNING: [Loader Message] Code 0 : Layer \"VK_LAYER_RENDERDOC_Capture\" using deprecated 'vkGetDeviceProcAddr' tag which was deprecated starting with JSON file version 1.1.0. Instead, use the new vkNegotiateLayerInterfaceVersion function to return the GetDeviceProcAddr function for this layer.\nWARNING: [Loader Message] Code 0 : Skipping manifest file /usr/share/vulkan/icd.d/radeon_icd.i686.json - The file has already been read once\nWARNING: [Loader Message] Code 0 : Skipping manifest file /usr/share/vulkan/icd.d/radeon_icd.x86_64.json - The file has already been read once\nWARNING: [Loader Message] Code 0 : Skipping manifest file /usr/share/vulkan/icd.d/amd_icd64.json - The file has already been read once\nERROR: [Loader Message] Code 0 : /usr/lib/libvulkan_radeon.so: wrong ELF class: ELFCLASS64\nERROR: [Loader Message] Code 0 : /usr/lib/amdvlk64.so: wrong ELF class: ELFCLASS64\nWARNING: radv is not a conformant vulkan implementation, testing use only.\n", "renderer" : "AMD RADV NAVI10 (LLVM 9.0.0)", "version" : "1.1.107 (device 1002:731f) (driver 19.2.1)" }, "glx/gl" : { "renderer" : "AMD NAVI10 (DRM 3.33.0, 5.3.5-arch1-1-ARCH, LLVM 9.0.0)", "version" : "4.5 (Compatibility Profile) Mesa 19.2.1" }, "egl_x11/gl" : { "renderer" : "AMD NAVI10 (DRM 3.33.0, 5.3.5-arch1-1-ARCH, LLVM 9.0.0)", "version" : "4.5 (Compatibility Profile) Mesa 19.2.1" }, "egl_x11/glesv2" : { "renderer" : "AMD NAVI10 (DRM 3.33.0, 5.3.5-arch1-1-ARCH, LLVM 9.0.0)", "version" : "OpenGL ES 3.2 Mesa 19.2.1" } } }, "x86_64-linux-gnu" : { "can-run" : true, "library-issues-summary" : [ ], "graphics-details" : { "x11/vulkan" : { "messages" : "ERROR: [Loader Message] Code 0 : /usr/lib32/libvulkan_radeon.so: wrong ELF class: ELFCLASS32\nERROR: [Loader Message] Code 0 : /usr/lib32/libvulkan_radeon.so: wrong ELF class: ELFCLASS32\nWARNING: radv is not a conformant vulkan implementation, testing use only.\nWARNING: radv is not a conformant vulkan implementation, testing use only.\n", "renderer" : "Unknown AMD GPU", "version" : "1.1.121 (device 1002:731f) (driver 2.0.109)" }, "glx/gl" : { "renderer" : "AMD NAVI10 (DRM 3.33.0, 5.3.5-arch1-1-ARCH, LLVM 9.0.0)", "version" : "4.5 (Compatibility Profile) Mesa 19.2.1" }, "egl_x11/gl" : { "renderer" : "AMD NAVI10 (DRM 3.33.0, 5.3.5-arch1-1-ARCH, LLVM 9.0.0)", "version" : "4.5 (Compatibility Profile) Mesa 19.2.1" }, "egl_x11/glesv2" : { "renderer" : "AMD NAVI10 (DRM 3.33.0, 5.3.5-arch1-1-ARCH, LLVM 9.0.0)", "version" : "OpenGL ES 3.2 Mesa 19.2.1" } } } }, "locale-issues" : [ "c-utf8-missing", "i18n-supported-missing" ], "locales" : { "" : { "resulting-name" : "en_US.UTF-8", "charset" : "UTF-8", "is_utf8" : true }, "C" : { "resulting-name" : "C", "charset" : "ANSI_X3.4-1968", "is_utf8" : false }, "C.UTF-8" : { "error-domain" : "srt-locale-error-quark", "error-code" : 0, "error" : "No such file or directory" }, "en_US.UTF-8" : { "resulting-name" : "en_US.UTF-8", "charset" : "UTF-8", "is_utf8" : true } }, "egl" : { "icds" : [ { "json_path" : "/usr/share/glvnd/egl_vendor.d/50_mesa.json", "library_path" : "libEGL_mesa.so.0" } ] }, "vulkan" : { "icds" : [ { "json_path" : "/usr/share/vulkan/icd.d/radeon_icd.i686.json", "library_path" : "/usr/lib32/libvulkan_radeon.so", "api_version" : "1.1.107" }, { "json_path" : "/usr/share/vulkan/icd.d/radeon_icd.x86_64.json", "library_path" : "/usr/lib/libvulkan_radeon.so", "api_version" : "1.1.107" }, { "json_path" : "/usr/share/vulkan/icd.d/amd_icd64.json", "library_path" : "/usr/lib/amdvlk64.so", "api_version" : "1.1.121" }, { "json_path" : "/usr/share/vulkan/icd.d/radeon_icd.i686.json", "library_path" : "/usr/lib32/libvulkan_radeon.so", "api_version" : "1.1.107" }, { "json_path" : "/usr/share/vulkan/icd.d/radeon_icd.x86_64.json", "library_path" : "/usr/lib/libvulkan_radeon.so", "api_version" : "1.1.107" }, { "json_path" : "/usr/share/vulkan/icd.d/amd_icd64.json", "library_path" : "/usr/lib/amdvlk64.so", "api_version" : "1.1.121" } ] } } The Steam Linux Runtime container tool is not installed. ```

Please describe your issue in as much detail as possible:

I'm running a 3840x1080 screen. I would like to use steam remote play to stream to my 1080p TV. So I enabled "Change desktop resolution to match streaming client" but this does nothing. This results in letterboxing the ultra wide image on my TV, which kinda makes it unusable.

The weird this is this only occurs in games or the desktop. Big picture mode is fine.

Steps for reproducing this issue:

  1. Have an host with an different aspect-ratio screen.
  2. Enable "Change desktop resolution to match streaming client"
  3. Start streaming the desktop or a game, and observe the letterboxed image.
libgradev commented 4 years ago

In addition to this some games refuse to display - Shadow of War via Proton - when the streaming resolution is wrong.

Currently I'm using a script to fire xrandr and work around this...

karasuhebi commented 4 years ago

We have the opposite issue on Windows. With the option enabled. Windows changes resolutions correctly so you can play games and your desktop is set to the right resolution, but Big Picture Mode is screwed up: https://steamcommunity.com/app/353380/discussions/0/1694922526914392193/

I wonder if this is related somehow?

superclark715 commented 4 years ago

On linux mint 20 and having the same issue. Makes remote play pretty much unusable, which sucks considering nvidia won't support gamestream for linux.

rtorrero commented 3 years ago

In addition to this some games refuse to display - Shadow of War via Proton - when the streaming resolution is wrong.

Currently I'm using a script to fire xrandr and work around this...

Could you share more details about your workaround? I still have this issue :/

CoWinkKeyDinkInc commented 3 years ago

This problem still persists. Using Arch Linux host with KDE and an RX 580 and a guest using Arch Linux and Intel Graphics. The resolution doesn't set to that of the guest, which is a pretty low resolution 16:9 display.

djibux commented 3 years ago

I am also experiencing this issue on Debian Bullseye. I have a 21:9 display, Big Picture aspect ration is good on my HD TV, but games, and the desktop, are displayed in wide aspect ratio. The behaviour is exactly the same with "Change desktop resolution to match streaming client" checked or unchecked.

@rtorrero, I have also set up a simple startup script that I launch using a Gnome extension called Handy scripts 2:

#!/bin/bash
xrandr --output DisplayPort-2 --mode "1920x1080" -r 120
pacmd set-card-profile alsa_card.pci-0000_05_00.1 off

The second part of the script is a workaround for #6749.

mwpow3ll commented 2 years ago

Also experiencing this issue when attempting to remote play from my linux (fedora 35) server to the Steam Deck! Remote play streams 1920x1080 to the Steam Deck's 7" screen which makes everything tiny and quite unreadable instead of downgrading to 1280x800 and then streaming to the Deck.

Please prioritize this issue @slouken ... Steam Deck needs it.

Nitue commented 2 years ago

Similar issues here. Running Pop_OS! on my PC and attempting to stream to Steam Deck. Having this option checked or not has no effect, I get no video to Steam Deck. Audio and input seems to work occasionally.

ghost commented 2 years ago

Same issue here, Fedora host trying to stream to a Retroid Pocket 2+ (480p).

PadreAdamo commented 2 years ago

Same here... Opensuse 3440x1440p amdgpu HOST to a 1080p client and black screen, freezing, weird issues described above.

JSaterdalen commented 1 year ago

Same. Trying to stream from Fedora 36 on an ultrawide monitor to the Steam Deck. Works if I switch the game to run in windowed mode (in the game's display properties) but performance suffers.

OkkioXavier commented 1 year ago

Same issue on 5.19.16-2-MANJARO

DesignCell commented 1 year ago

This issue stops me from streaming from my Windows 10 desktop ultrawide to my SteamDeck. Manually changing the host resolution runs correctly.

Streaming to the steam deck, the "Change desktop resolution to match streaming client" does have a changed effect but not the desired.

"Change desktop resolution to match streaming client" Disabled: Ultrawide is letterboxed on the SteamDeck's 16:10. "Change desktop resolution to match streaming client" Enabled: Ultrawide is stretched to the SteamDeck's 16:10.

My next action for a work around may be setting up a headless host for streaming to my deck but this would be the extreme solution.

DM0407 commented 1 year ago

I didn't want to run a cron job because I wanted to know if and when it ran. I ended up with a variation of the scripts above and add it to Steam via "Add Non Steam Game" and run as needed. You would need to run again to bring it back to your original resolution.

#!/bin/bash
export DISPLAY=:0
export cmd=steam_monitor
ps_out=`ps -ef | grep $cmd | grep -v 'grep' | grep -v $0`
result=$(echo $ps_out | grep "$1")
if [[ "$result" != "" ]];then
  pactl set-sink-volume @DEFAULT_SINK@ 10%
  xrandr --output DisplayPort-0 --mode 1920x1080 

  echo running

else
  xrandr --output DisplayPort-0 --mode 3440x1440 --refresh 160.00
  echo not running
fi
ThomasNyk commented 1 year ago

Having the same issue stream to a streamdeck from an Arch pc X11 Nvidia rtx 3060 laptop with official drivers

CryoByte33 commented 1 year ago

This is still an issue in Fedora 37, with both NVIDIA and AMD GPUs, using both X11 and Wayland.

netvip3r commented 1 year ago

Similar misbehavior can also be seen with the Steam Link for Windows and Android versions of the application as well. All versions will

Host Res: 2560 x 1080 - 21:9 (2.33:1)

Windows Client Res: 1920 x 1280 - 3:2 (1.5:1) ver 1.2.0.241

Android Client Res: 2160 x 1080 - 18:9 (2:1) ver 1.2.0.241

Linux Client Res: 1920 x 1080 - 16:9 (1.78:1) ver (will update later) - Deb/Arch distros same experience as posted above.

Posting my experience with other platforms incase it helps.

bioxz commented 9 months ago

Would love to see an update on this. Using a 1440p monitor streaming to the deck without change of resolution does not work, text is unreadable. I tried to work through the log to see if anything regarding display or resolution fails, but wasn't able to find anything. Is this feature even supported on Linux?

I guess reaper is the tool providing the stream? Starting ATS I get this output (alongside more messages):

$HOME/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=270880 -- $HOME/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '$HOME/.local/share/Steam/steamapps/common/American Truck Simulator/bin/linux_x64/amtrucks'\0
Streaming initialized and listening on port 27031
Streaming started to steamdeck at 192.168.1.145:53197, audio channels = 2, MTU = 1468
Streaming quality: k_EStreamQualityBalanced
Streaming bitrate: Automatic
Device form factor: computer
Maximum capture: 1280x800 59.56 FPS
Game: American Truck Simulator (270880)
Setting target bitrate to 15000 Kbit/s, burst bitrate is 75000 Kbit/s
GameScope focus changed to appID 0
Window title set to American Truck Simulator
Streamed game has created a window
Changing record window: 0x8200007
SynchronizeClientState(): setting capture size 2560x1440
SynchronizeClientState(): setting title to American Truck Simulator

So the target resolution is communicated, but it seems like there no interaction to either the display manager or something else to change the resolution. I actually would have expected an instance of gamescope to spawn and run in the target resolution (this is what I might try as a workaround), but nothing.

Edit: I just installed gamescope and changed the launch options to

gamescope -W 1280 -H 800 -r 60 -- %command%

Everything works perfectly with the deck! Can we just get that as a feature on the Linux client so I don't have to add this to the game I stream only? It seems like a great option to me.

luisfagundes94 commented 5 months ago

Getting the same issue in 2024. Hardware decoding on/off doesn't make a difference in this case..

Log:

Streaming started to steamdeck at 0.0.0.0:0, audio channels = 2, MTU = 1472
Streaming quality: k_EStreamQualityBeautiful
Streaming bitrate: Automatic
Device form factor: computer
Maximum capture: 1280x800 60.00 FPS
Video Streaming: enabled
Audio Streaming: enabled
Input Streaming: enabled

=====================================================================
Game: Martha Is Dead (515960)
Setting target bitrate to 15000 Kbit/s, burst bitrate is 75000 Kbit/s
GameScope focus changed to appID 0
Window title set to Martha Is Dead
Streamed game has created a window
Changing record window: 0x7200001
SynchronizeClientState(): setting capture size 3440x1440
SynchronizeClientState(): setting title to Martha Is Dead
SynchronizeClientState(): setting icon 32x32
SynchronizeClientState(): setting activity to k_EStreamActivityGame: Martha Is Dead
Recording system audio
PulseAudio: Sink alsa_output.usb-GuangZhou_FiiO_Electronics_Co._Ltd_FiiO_K3-00.iec958-stereo is default
PulseAudio: Adding sink[0] alsa_output.pci-0000_01_00.1.hdmi-stereo with priority 1, monitor is alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor
PulseAudio: Adding sink[1] alsa_output.usb-Generic_USB_Audio-00.analog-stereo with priority 1, monitor is alsa_output.usb-Generic_USB_Audio-00.analog-stereo.monitor
PulseAudio: Adding sink[2] alsa_output.usb-GuangZhou_FiiO_Electronics_Co._Ltd_FiiO_K3-00.iec958-stereo with priority 7, monitor is alsa_output.usb-GuangZhou_FiiO_Electronics_Co._Ltd_FiiO_K3-00.iec958-stereo.monitor
PulseAudio: Recording on device alsa_output.usb-GuangZhou_FiiO_Electronics_Co._Ltd_FiiO_K3-00.iec958-stereo.monitor
Audio mix: start=2018508545, returned=0
Audio source [System Pulse]: init=0, adjustment=0, through=0, last_start=0, mixed=0, drop_before=0, drop_after=0
PulseAudio: Connected to device alsa_output.usb-GuangZhou_FiiO_Electronics_Co._Ltd_FiiO_K3-00.iec958-stereo.monitor (3, not suspended).
PulseAudio: Using sample spec 's16le 2ch 48000Hz', channel map 'front-left,front-right'.
CLIENT: Got control packet k_EStreamControlSetQoS
CLIENT: Got control packet k_EStreamControlSetTargetBitrate
CLIENT: Starting audio stream: frequency=48000, channels=2
CLIENT: Opened audio device: format=2, channels=2, frequency=48000
CLIENT: Initialized audio decoder: codec=3, sample rate=48000, channels=2
CLIENT: Got control packet k_EStreamControlStartAudioData
CLIENT: Got control packet k_EStreamControlSetSpectatorMode
CLIENT: Got control packet k_EStreamControlSetCaptureSize
CLIENT: Got control packet k_EStreamControlSetTitle
CLIENT: Got control packet k_EStreamControlSetIcon
CLIENT: Got control packet k_EStreamControlSetActivity
>>> Switching video stream from NONE to GameOverlay_MovieStream_17024
BuildCompleteAppOverviewChange: 550 apps
Video Encoder Changed
>>> Capture method set to Game Vulkan NV12 + NVENC H264
>>> Capture resolution set to 1280x536
>>> Capture colorspace set to BT.601 limited range
CLIENT: Sending HID device 28de/1205/0 Valve Software Steam Controller at /dev/hidraw1
CLIENT: Sending HID device 28de/1205/1 Valve Software Steam Controller at /dev/hidraw2
CLIENT: Sending HID device 28de/1205/2 Valve Software Steam Controller at /dev/hidraw4
CLIENT: Got control packet k_EStreamControlStartVideoData
CLIENT: Got control packet k_EStreamControlVideoEncoderInfo
>>> Client video decoder set to VAAPI tiled hardware decoding
CLIENT: Got control packet k_EStreamControlSetCursorScale
CLIENT: Got control packet k_EStreamControlSetCursorScale
CLIENT: CVDPAUAccel: GL_NV_vdpau_interop not available on current context
CLIENT: ffmpeg verbose: Trying to use DRM render node for device 0.
CLIENT: ffmpeg verbose: libva: VA-API version 1.18.0
CLIENT: ffmpeg verbose: libva: Trying to open /usr/lib/dri/radeonsi_drv_video.so
CLIENT: ffmpeg verbose: libva: Found init function __vaDriverInit_1_18
CLIENT: ffmpeg verbose: libva: va_openDriver() returns 0
CLIENT: ffmpeg verbose: Initialised VAAPI connection: version 1.18
CLIENT: ffmpeg verbose: VAAPI driver: Mesa Gallium driver 23.1.3 for AMD Custom GPU 0405 (vangogh, LLVM 15.0.7, DRM 3.54, 6.1.52-valve16-1-neptune-61).
CLIENT: ffmpeg verbose: Driver not found in known nonstandard list, using standard behaviour.
CLIENT: VAAPI tiled hardware decoding
CLIENT: ffmpeg verbose: Reinit context to 1280x544, pix_fmt: vaapi_vld
CLIENT: Got control packet k_EStreamControlSetCursorScale
CLIENT: Got control packet k_EStreamControlSetCursorScale
CLIENT: Got control packet k_EStreamControlSetCursorScale
CLIENT: Got control packet k_EStreamControlSetCursorScale
CLIENT: Texture rect: 1280x536 at 0,0
CLIENT: Video rect: 1280x800 at 0,0
CLIENT: Video size: 1280x536, output size: 1280x800, overlay size: 1280x800
CLIENT: Texture rect: 1280x536 at 0,0
CLIENT: Video rect: 1280x536 at 0,132
CLIENT: Texture rect: 1280x536 at 0,0
CLIENT: Video rect: 1280x536 at 0,132
CLIENT: Video size: 1280x536, output size: 1280x800, overlay size: 1280x800
CLIENT: Texture rect: 1280x536 at 0,0
CLIENT: Video rect: 1280x536 at 0,132
CLIENT: Texture rect: 1280x536 at 0,0
CLIENT: Video rect: 1280x536 at 0,132
green3g commented 1 month ago

I have Manjaro Desktop with KDE wayland with an nvidia 2060rtx and am streaming to the Steam link app on an Nvidia shield (android).

I have a 2k monitor plugged into the GPU. And am streaming to a 1080p TV in the living room.

If I change the resolution to 1080 in Manjaro prior to starting the game stream it looks great. But it's annoying to have to change it back and forth each time. Are there any plans to address this issue ?