Cameron Gutman
fe6562e31c
Allow forcing Metal renderer on or off via VT_FORCE_METAL=1 and VT_FORCE_METAL=0 respectively
2024-04-19 00:27:45 -05:00
Cameron Gutman
654e386263
Only pace presentation if display sync is enabled
2024-04-19 00:17:13 -05:00
Cameron Gutman
76d0eb6b63
Avoid trying VDPAU when Vulkan is preferred
...
The VDPAU renderer causes interoperability issues with Vulkan.
2024-04-18 00:41:24 -05:00
Cameron Gutman
76ff53f09f
Move warning dialog checks into the Window's onCompleted() function
...
The old issue with dialogs appearing behind the main window only impacts the old non-QC2 dialogs,
which we haven't used for several years.
2024-04-14 14:49:35 -05:00
Cameron Gutman
37d92dee16
Revert "Fix hiding the main UI window while streaming on Qt 6.7"
...
The original issue on Qt 6.7 was caused by conflicts with the window state set in main.qml
which was addressed by afbc49e39a .
The remaining issue with Qt 6.7 clobbering window state and position when hiding a window
looks like a legitimate Qt bug.
This reverts commit ebe270bec5 .
2024-04-14 14:08:53 -05:00
Cameron Gutman
afbc49e39a
Apply the main window visibility property only at startup
...
Otherwise it can affect the state of the window when showing again streaming
2024-04-14 13:35:41 -05:00
Cameron Gutman
d1ccd19fcc
Make StreamingPreferences a proper singleton
...
This removes the need for several hacks in SettingsView to force updates and improves performance by not reloading preferences all over the place.
2024-04-14 13:01:30 -05:00
Cameron Gutman
ebe270bec5
Fix hiding the main UI window while streaming on Qt 6.7
2024-04-13 00:05:49 -05:00
Cameron Gutman
784234c857
Fix updating bitrate text upon language change on Qt 6.7
2024-04-13 00:05:11 -05:00
Cameron Gutman
6a85996b4a
Clear the minimized state on the Qt window if the SDL window is not minimized
2024-04-07 00:42:51 -05:00
Cameron Gutman
c6710f93dc
Enable Steam Controller detection on Steam Link
...
Fixes #697
2024-04-06 20:03:54 -05:00
Cameron Gutman
5e46c4ec2b
Update Windows and Mac prebuilt libraries
...
SDL2 -> 1fa6142
FFmpeg -> 7.0
opus -> 1.5.1
dav1d -> 1.4.1
2024-04-06 19:56:38 -05:00
Cameron Gutman
011feab6ce
Add workaround for broken Qt EGLFS card selection logic
2024-04-06 14:35:34 -05:00
Cameron Gutman
f8c5d3c0ce
Update AppImage libraries
...
FFmpeg -> 7.0
SDL2 -> 1fa61429
libplacebo -> 7b294350
2024-04-06 12:44:50 -05:00
Cameron Gutman
74d452bf35
Limit mDNS resolution retry count
2024-04-06 12:40:32 -05:00
Cameron Gutman
fd2ff61a40
Support Vulkan AV1 decoding with FFmpeg 7.0
2024-04-06 12:31:14 -05:00
Cameron Gutman
8a87a09947
Flush stale gamepad events after checking for unmapped gamepads
2024-03-31 14:56:46 -05:00
Cameron Gutman
cf544a8703
Don't reload preferences every time we poll for GUI gamepad input
2024-03-31 14:54:36 -05:00
Cameron Gutman
0e1190a059
Remove Optimus block for modern Nvidia drivers
...
Now that we use D3D11 and don't fall back to D3D9, it should be safe to allow Optimus again.
This will re-enable Optimus for D3D9 on Windows 8.1, but all of the reported problems were on Windows 10 so it will hopefully be a non-issue.
Fixes #1241
2024-03-28 21:06:15 -05:00
Cameron Gutman
f2535f1e6e
Avoid D3D9 fallback on lack of codec support unless a D3D11 FL11.0 GPU wasn't found
...
We'd rather not waste time (and risk crashes) loading the D3D9 driver if the GPU doesn't have the physical decoding hardware at all.
2024-03-26 23:59:18 -05:00
Cameron Gutman
cefa567f95
Demote DXVA2 renderer to second pass of hwaccels
2024-03-26 23:04:54 -05:00
Cameron Gutman
9be782ae8e
Fix some harmless compiler warnings
2024-03-26 21:59:39 -05:00
Cameron Gutman
610e07d4bd
Improve state propagation between Qt and SDL windows
2024-03-26 21:42:13 -05:00
Cameron Gutman
97bd515b11
Remove leftover preferred Metal device logic
2024-03-26 01:16:57 -05:00
Cameron Gutman
a45695a22a
Rework Qt window handling during SDL window creation
...
- Avoids blindly enumeration all top-level windows
- Properly tracks screen changes during the connection process
- Starts stream window minimized if the Qt window was minimized
Fixes #1231
2024-03-24 21:38:54 -05:00
Cameron Gutman
0d67fd1ff0
Batch mouse motion events on the SDL side
2024-03-24 20:35:23 -05:00
Cameron Gutman
a093a0ae59
Restore AVSampleDisplayLayer renderer for dGPU/eGPU systems
...
These sometimes have issues importing decoded frames for Metal rendering.
2024-03-24 17:47:29 -05:00
Cameron Gutman
c9ad8ffa69
Stop using true fullscreen mode on Mac
...
It has numerous issues on modern Macs and seems to get worse every macOS release.
2024-03-24 13:55:43 -05:00
Cameron Gutman
9987914ebb
Update SDL_GameControllerDB
2024-03-20 02:04:01 -05:00
Cameron Gutman
bec053e3cf
Update AppImage dependencies
2024-03-18 01:44:08 -05:00
Cameron Gutman
d364b24378
Fix broken on-link detection that caused non-VPN WAN connections to use LAN MTU
...
Fixes #1101
2024-03-15 20:04:51 -05:00
Cameron Gutman
89a628a0dd
Use 'git apply' instead of 'git am'
2024-03-02 12:18:14 -06:00
Cameron Gutman
4fb9681b7f
Update moonlight-common-c
2024-03-02 11:26:54 -06:00
Cameron Gutman
c13128ca1d
Add libplacebo patch from Chiaki4Deck to resolve AppImage hangs on Steam Deck
2024-03-02 11:25:53 -06:00
Cameron Gutman
ceca83346b
Use FIFO present mode for VSync
2024-03-02 11:19:52 -06:00
Cameron Gutman
06ef10a2ad
Update README to clarify requirements for Vulkan video
...
See #1186
2024-02-18 15:23:35 -06:00
Cameron Gutman
7b29b22192
Update dependencies
...
SDL -> df00a7dd4
SDL_ttf -> 2.22.0
FFmpeg -> 3e79074c4 (n6.1)
dav1d -> 1.4.0
libplacebo -> 3ba18d
2024-02-17 16:14:39 -06:00
Cameron Gutman
289a7165b3
Remove dSYM files from macOS app bundle
...
macdeployqt incorrectly copies these if they are installed, which bloats the final DMG significantly.
See https://bugreports.qt.io/browse/QTBUG-56590
2024-02-17 14:19:05 -06:00
Cameron Gutman
62011c37f4
Fix build with SDL 2.0.20 and earlier
...
Fixes #1186
2024-02-17 13:31:53 -06:00
Cameron Gutman
919e44b29b
Fix __builtin_cpu_supports(aes) for GCC 6-9
2024-02-17 13:28:32 -06:00
Cameron Gutman
32be1b158b
Update VCRedist
2024-02-16 23:06:52 -06:00
Cameron Gutman
f635860afd
Update to WiX 4.0.4
2024-02-16 23:05:58 -06:00
Cameron Gutman
3b078f095b
Update AppVeyor image for macOS
2024-02-16 23:01:44 -06:00
Cameron Gutman
896456a8ac
Wait for command buffer completion before returning from renderFrame()
2024-02-11 00:15:32 -06:00
Cameron Gutman
8959ddbeb6
Rewrite overlay support in Metal renderer to avoid additional subviews
...
Subviews cause our Metal layer to fall out of the direct composition path on Intel hardware
2024-02-11 00:15:07 -06:00
Cameron Gutman
767215fce5
Rewrite old frame pacing logic for Metal renderer
2024-02-10 22:49:13 -06:00
Cameron Gutman
3ef05f3a35
Completely switch to D3D11VA over DXVA2 for supported GPUs in all scenarios
...
Fixes #1179
2024-02-09 01:24:03 -06:00
Cameron Gutman
12624bc5c4
Avoid the composited display path for our Metal layer
2024-02-08 18:19:01 -06:00
Cameron Gutman
5bd0dea85d
Enable Metal validation in debug builds
2024-02-08 18:07:43 -06:00
Cameron Gutman
80242f2e90
Fix Metal debug layer validation errors
2024-02-08 18:06:46 -06:00
Cameron Gutman
cf3e328f9d
Add seamless resize support for Metal renderer
2024-02-08 18:05:47 -06:00
Cameron Gutman
b972a22459
Use SDL helpers to create Metal view
2024-02-07 03:26:09 -06:00
Cameron Gutman
db06239018
Rewrite the macOS renderer using CAMetalLayer
...
This allows v-sync to be disabled on macOS and lets us remove a whole bunch of old hacks.
Further optimizations of the new renderer are still needed.
2024-02-07 02:40:35 -06:00
Cameron Gutman
7f83b79c19
Update AppImage dependencies
2024-02-05 23:11:02 -06:00
Cameron Gutman
47b3aff352
Update moonlight-common-c with RTSP encryption
2024-02-05 23:01:25 -06:00
Cameron Gutman
679f237c1b
Update bug report template
2024-02-05 22:16:49 -06:00
Cameron Gutman
3d8de56f25
Add fast AES detection for RISC-V using hwprobe() syscall
2024-01-23 02:28:28 -06:00
Cameron Gutman
66fb0465c4
Update moonlight-common-c with finalized encryption changes
2024-01-19 19:05:59 -06:00
Cameron Gutman
8bbc9b2c57
Fix build with old ARM headers and opt-out of fast AES on RISC-V for now
2024-01-15 17:36:57 -06:00
Cameron Gutman
be7694dd8b
Improve fast AES heuristic for Linux ARM and unknown platforms
2024-01-15 14:16:56 -06:00
Cameron Gutman
ce8b24dfa7
Implement fast AES detection logic for Windows and macOS
2024-01-15 13:40:13 -06:00
Cameron Gutman
75ddac54c5
Update moonlight-common-c with new encryption features
2024-01-15 13:35:39 -06:00
Cameron Gutman
b01a83ff39
Send pen input as pen events on Windows
2024-01-12 23:40:24 -06:00
Cameron Gutman
c3e886fbcc
Use drmIoctl() instead of bare ioctl() to handle EINTR/EAGAIN
2024-01-05 18:33:17 -06:00
Cameron Gutman
e20d56041e
Fix rare race condition in overlay update code
2023-12-31 15:21:18 -06:00
Cameron Gutman
114074bfd8
Don't set HDR metadata on the DXGI swapchain
...
This is no longer recommended by Microsoft due inconsistencies with display support for HDR metadata.
2023-12-31 15:15:06 -06:00
Cameron Gutman
e44e29e7eb
Update moonlight-common-c with X-SS-Connect-Data support
2023-12-29 23:15:41 -06:00
Cameron Gutman
03663d5552
Fix integer promotion issue in gamepad state merging
2023-12-29 16:06:53 -06:00
Cameron Gutman
dce2a857f7
Merge all gamepad state when in single controller mode
2023-12-28 16:28:40 -06:00
Cameron Gutman
61f71a318e
Expose PLVK_DEBUG_EXTRA for enabling extra debug layers
2023-12-27 15:40:01 -06:00
Cameron Gutman
646ce2bf66
Handle occlusion of the Vulkan window without recreating the renderer over and over
2023-12-27 15:36:59 -06:00
Cameron Gutman
2bbae90e2c
Revert "Unconditionally override host-reported minimum luminance value"
...
This reverts commit 770872238d .
2023-12-26 15:46:25 -06:00
Cameron Gutman
bb8e229814
Swap buffers in waitToRender() instead of renderFrame()
2023-12-26 15:45:31 -06:00
Cameron Gutman
9ed8252cc6
Display error codes when the connection is terminated
2023-12-22 14:12:59 -06:00
Cameron Gutman
2cef09471b
Remove manual hwframe ctx setup for D3D11VA
...
It was apparently never necessary, since FFmpeg's default behavior of
avcodec_get_hw_frames_parameters() + av_hwframe_ctx_init() makes a
context that exactly matches the one we constructed manually.
2023-12-22 02:45:11 -06:00
Cameron Gutman
2d15382e31
Fix libplacebo renderer build on Windows
2023-12-21 18:12:19 -06:00
Cameron Gutman
770872238d
Unconditionally override host-reported minimum luminance value
2023-12-18 16:43:17 -06:00
Cameron Gutman
2a05b890d8
Enable transparent resizing and display changes for supported renderers
2023-12-17 21:15:40 -06:00
Cameron Gutman
481f23b6e9
Remove some dependencies on fixed window and frame sizes
2023-12-17 20:39:26 -06:00
Cameron Gutman
4e7107a09e
Use the crop rect from the pl_frame instead of the raw AVFrame dimensions
2023-12-17 19:06:56 -06:00
Cameron Gutman
0223394725
Fix manual codec options when using Vulkan for HDR
...
For now, we can't switch between GL and Vulkan on a single window, so performing decoder
probes with 8-bit formats may activate EGLRenderer which breaks Vulkan on our window.
It also speeds up stream launch validation for HDR cases in general, since we don't
perform unnecessary decoder probes for 8-bit profiles when the user wanted 10-bit.
2023-12-17 18:53:13 -06:00
Cameron Gutman
058739321c
Move vkAcquireNextImageKHR() into waitToRender() so it can overlap with new frame arrival
2023-12-17 16:47:38 -06:00
Cameron Gutman
708bec2937
Rewrite Vulkan device selection logic to handle multi-GPU systems better
2023-12-17 15:46:10 -06:00
Cameron Gutman
c939537c5c
Synchronize swapchain and pl_frame colorspace values
2023-12-16 17:36:02 -06:00
Cameron Gutman
9497657c83
Fix handling of zero minimum HDR luminance
2023-12-16 17:28:35 -06:00
Cameron Gutman
d4050f3a4f
Add HDR metadata to each AVFrame
2023-12-16 17:02:53 -06:00
Cameron Gutman
c74c4ef041
Fix native Vulkan video decoding (non-imported frames)
2023-12-16 16:21:54 -06:00
Cameron Gutman
d75663052d
Fix a few minor Vulkan renderer bugs
2023-12-16 16:18:19 -06:00
Cameron Gutman
8f2db99406
Enable libdrm in AppImage FFmpeg build to support DRM-PRIME to Vulkan hwframe mapping
2023-12-14 17:48:45 -06:00
Cameron Gutman
6a58dbb05e
Disable 10-bit SDR swapchains on Vulkan due to inconsistent dithering behavior
2023-12-14 17:46:06 -06:00
Cameron Gutman
8aeb976128
Require a test frame for Vulkan video decoding
2023-12-14 17:44:58 -06:00
Cameron Gutman
7d51a4b67d
Fix incorrect overlay colors in Vulkan renderer
2023-12-14 17:43:54 -06:00
Cameron Gutman
f7d412e3bf
Fix FFmpeg configure args
2023-12-14 00:21:39 -06:00
Cameron Gutman
4469c7fae3
Build AppImage with libplacebo and Vulkan video support
2023-12-13 18:26:00 -06:00
Cameron Gutman
ee95efc0f1
Improve Vulkan renderer debuggability
2023-12-13 01:08:32 -06:00
Cameron Gutman
3ddc8ad68a
Fix crash if pl_vulkan_create() fails
2023-12-13 01:04:54 -06:00
Cameron Gutman
333d97160e
Add opt-in for Vulkan rendering for SDR content with PREFER_VULKAN=1
2023-12-13 01:03:27 -06:00
Cameron Gutman
aac5ad3fd0
Add a libplacebo-based Vulkan renderer for HDR and Vulkan video decoding support
...
Vulkan H.264/HEVC video decoding isn't supported with Fedora's Mesa binaries due to
patent issues, so only the VAAPI/DRM-PRIME import path was tested locally with ANV.
HDR video is getting tonemapped to my SDR monitor reasonably, so HDR output probably
works with GameScope but I haven't confirmed yet.
See #1117
2023-12-12 23:54:23 -06:00
Cameron Gutman
1ef083c952
Update moonlight-common-c to remove per-codec bitrate adjustments
2023-12-03 22:21:10 -06:00
Cameron Gutman
c63b918bb2
Don't hardcode the server signature length
2023-11-29 21:53:49 -06:00