Commit Graph
100 Commits
Author SHA1 Message Date
Cameron Gutman b23a36908c Add EGLFS GBM and Wayland support to AppImage 2022-04-09 18:23:09 -05:00
Cameron Gutman e3a7b54f90 Use EGL fences to reduce video latency 2022-04-08 19:28:22 -05:00
Cameron Gutman 81d5e7f014 Wait for the VDPAU output surface to be idle in waitToRender() 2022-04-07 22:16:52 -05:00
Cameron Gutman 9790c218dc Wait on the display link callback before rendering to reduce latency 2022-04-07 22:08:43 -05:00
Cameron Gutman 6d3d51553b Wait on our D3D11 swapchain before rendering to reduce latency 2022-04-07 21:46:48 -05:00
Cameron Gutman 474591c6a5 Use a separate callback to indicate EOS instead of renderFrame() 2022-04-07 21:30:20 -05:00
Cameron Gutman 5de0dc2713 Disable the decoder selection options when HDR is enabled 2022-04-05 20:09:09 -05:00
Cameron Gutman 57a34a7abb Update README.md 2022-04-05 19:56:20 -05:00
Cameron Gutman 54517bda1b Switch back to upstream SDL 2022-04-05 00:59:58 -05:00
Cameron Gutman 4291e15b60 Use NDC helpers in D3D11VA renderer 2022-04-05 00:57:14 -05:00
Cameron Gutman 940ae6406b Add helper functions to perform NDC transformations 2022-04-05 00:50:04 -05:00
Cameron Gutman 6a0cf4bfd3 Fix some #if -> #ifdefs 2022-04-05 00:26:13 -05:00
Cameron Gutman fee6f75223 Fix VAAPIRenderer build error with neither HAVE_EGL nor HAVE_DRM defined 2022-04-05 00:24:00 -05:00
Cameron Gutman 8c93b2d54c Fix VAAPIRenderer build error with HAVE_DRM but not HAVE_EGL 2022-04-04 19:40:31 -05:00
Cameron Gutman 09ed82db65 Fix build with HAVE_MMAL 2022-04-02 16:16:40 -05:00
Cameron Gutman a56cb0e88a Don't waste time retrying the same renderer again 2022-04-02 16:14:04 -05:00
Cameron Gutman 9acf5ff0ef Update workaround to prevent deadlock with h264_mmal 2022-04-02 16:06:39 -05:00
Cameron Gutman 64a7790aed Patch SDL to work around GLX crash 2022-04-02 15:50:32 -05:00
Cameron Gutman 9a5134ffcf Use QString not QByteArray for string equality 2022-04-02 15:49:07 -05:00
Cameron Gutman 1d2c4d0843 Prepare for v4.0.0 2022-04-01 19:18:51 -05:00
Cameron Gutman efad34be62 Set SDL_MOUSE_AUTO_CAPTURE=0 since we manage mouse capture ourselves 2022-03-31 23:54:58 -05:00
Cameron Gutman 52761ade87 Update SDL_ttf to 81f9e9b 2022-03-31 23:30:59 -05:00
Cameron Gutman e6b816e776 Update SDL in AppImage 2022-03-30 23:31:01 -05:00
Cameron Gutman 6d3bcba5d0 Update SDL, SDL_ttf, and FreeType
SDL -> 2c04df8
SDL_ttf -> 80d909 (Windows)
FreeType -> 3f83da (Windows)
2022-03-30 23:27:40 -05:00
Cameron Gutman 2e7ffa606b Fix missing DLL in ARM64 builds 2022-03-30 22:43:31 -05:00
Cameron Gutman 055cae90b8 Only apply the AMD color range workaround to new drivers
Applying it to older drivers introduces the very same issues it's meant to fix
2022-03-30 22:43:08 -05:00
Cameron Gutman 23acf92803 Update SDL_GameControllerDB 2022-03-30 22:07:33 -05:00
Cameron Gutman 91ee7d76eb Rerun lupdate and lrelease 2022-03-30 22:07:11 -05:00
Cameron Gutman 570888e2b8 Merge remote-tracking branch 'origin/weblate' 2022-03-30 22:06:02 -05:00
Cameron Gutman 98376ade45 Update SDL to cbdb67b 2022-03-29 22:39:09 -05:00
Cameron Gutman 9682968b55 Fix FFmpeg URL for AppImage 2022-03-29 21:34:34 -05:00
Cameron Gutman 877cb5f1b0 Update SDL2, SDL_ttf, and FFmpeg in AppImage build 2022-03-29 21:03:35 -05:00
Cameron Gutman 6972573a6e Add pointer lock key combo
Fixes #737
2022-03-29 18:26:09 -05:00
Cameron Gutman 742f1b1283 Prefer hevc_nvv4l2 over hevc_nvmpi 2022-03-26 22:54:54 -05:00
Cameron Gutman 2fc1dda232 Partially revert e64b15d and b85d5b8
These changes cause excessive window recreation using the Flatpak on Nvidia with Wayland
2022-03-19 14:50:38 -05:00
Cameron Gutman 99495cff90 Add logging for cases where color range/encoding cannot be set 2022-03-19 13:12:41 -05:00
Cameron Gutman b45c3e3c7f Tweak wording on the keep awake option 2022-03-16 21:59:06 -05:00
Cameron Gutman ce2a01fc59 Allow the screensaver toggle to work even if running on an embedded platform 2022-03-16 21:57:03 -05:00
Cameron Gutman edeea65c3e Rerun lupdate and lrelease 2022-03-16 21:51:17 -05:00
Cameron Gutman 6e8ee94b91 Merge remote-tracking branch 'origin/weblate' 2022-03-16 21:49:44 -05:00
Cameron Gutman 97d8274911 Add option to allow PC to sleep while streaming 2022-03-16 21:48:56 -05:00
Cameron Gutman 73d84dc13f Update SDL and OpenSSL prebuilts 2022-03-15 22:30:55 -05:00
Cameron Gutman f32501d498 Update moonlight-common-c 2022-03-15 21:22:44 -05:00
Cameron Gutman 9c289c3fe9 Update SDL_GameControllerDB 2022-03-15 21:22:21 -05:00
Cameron Gutman 2a610584ee Fix handling of line continuations in FFmpeg logs (for real this time) 2022-03-11 19:15:36 -06:00
Cameron Gutman d6ef8945f5 Replace Deviare In-Proc with Microsoft Detours 2022-03-08 20:58:40 -06:00
Cameron Gutman e078a8b7b6 Don't recreate the decoder while the window is minimized
Fixes #726
2022-03-06 15:21:43 -06:00
Cameron Gutman a6395b9025 Fix short UI hang when manually stopping the stream after losing connection with the host 2022-03-06 13:11:36 -06:00
Cameron Gutman 6c0983d77c Reset the audio device if it enters a failed state
Fixes #734
2022-03-05 16:50:06 -06:00
Cameron Gutman 4ae39f2bd5 Properly synchronize rumble with gamepad removal 2022-03-05 13:32:38 -06:00
Cameron Gutman 4b83b022d3 Remove unnecessary assert 2022-02-25 22:47:20 -06:00
Cameron Gutman 8b13e5b47e Update AppImage to libva 2.14 2022-02-25 22:46:52 -06:00
Cameron Gutman 93c02fb43a Print GPU info in D3D11VA renderer 2022-02-20 22:10:18 -06:00
Cameron Gutman 93ee51cabb Integrate new languages from Weblate 2022-02-20 14:15:08 -06:00
Cameron Gutman cd6ba554a4 Merge remote-tracking branch 'origin/weblate' 2022-02-20 13:44:11 -06:00
Cameron Gutman 89aa2be358 Rerun lupdate and lrelease 2022-02-20 13:41:48 -06:00
Cameron Gutman da261246b9 Change HDR to be a separate option like other clients 2022-02-19 11:21:06 -06:00
Cameron Gutman 4d3e09f4a0 Raise minimum custom resolution to 256x256 2022-02-19 10:47:25 -06:00
Cameron Gutman 9add6b3696 Add DXVA2 quirk for AMD GPUs to fix color range on the latest drivers 2022-02-17 00:35:33 -06:00
Cameron Gutman ef037e18d0 Add colorspace and color range override options 2022-02-17 00:26:56 -06:00
Cameron Gutman 36db791516 Refactor D3D11 shaders to reduce duplicated code 2022-02-16 19:38:18 -06:00
Cameron Gutman b1f980c216 Fix handling of line continuations in FFmpeg logs 2022-02-13 16:06:04 -06:00
Cameron Gutman 738f64c903 Use FP32 for position and texcoords
We need that extra precision for sampling large textures
2022-02-13 13:41:39 -06:00
Cameron Gutman 9a64c026ea Use optimized pixel shaders for the normal SDR and HDR colorspaces 2022-02-09 20:46:02 -06:00
Cameron Gutman be2af1d17a Add environment variables to configure DXVA2 and D3D11VA options 2022-02-08 22:27:27 -06:00
Cameron Gutman b21131a466 Use FP16 in the D3D11 shaders 2022-02-08 21:43:25 -06:00
Cameron Gutman b96cb1abaf Remove per-app HDR support check
It doesn't seem to make a difference anymore whether it's supported or not.
GFE seems happy to enter HDR mode anyway.
2022-02-07 20:02:19 -06:00
Cameron Gutman 1d79bcc657 Disable waitable swapchains in full-screen mode 2022-02-06 00:28:59 -06:00
Cameron Gutman e8b4494fc3 Add an extra buffer for DirectFlip 2022-02-05 23:22:07 -06:00
Cameron Gutman 2518208c5c Don't set fullScreenDesc fields to prevent entering "proxy" full-screen mode 2022-02-05 19:32:05 -06:00
Cameron Gutman 918fea7d4b Precompute the aspect ratio stretch to avoid having to change viewports twice each frame 2022-02-05 15:44:37 -06:00
Cameron Gutman 4dc07bf63f Don't render the alignment padding area 2022-02-05 15:23:29 -06:00
Cameron Gutman 04a0aca221 Create SRVs for all textures in the pool during initialization 2022-02-05 14:49:08 -06:00
Cameron Gutman 1942e72474 Only bind the constant buffer once 2022-02-05 14:15:35 -06:00
Cameron Gutman f256407789 Implement D3D11VA video rendering 2022-02-04 21:51:34 -06:00
Cameron Gutman 67612f607e WIP: D3D11VA support
Overlays work, but drawing the actual video is unimplemented
2022-02-03 19:45:07 -06:00
Cameron Gutman 76bd4a1c7b Don't set the HDR metadata blob if we don't have one 2022-01-30 22:57:53 -06:00
Cameron Gutman 13dbad6f35 Fix build with old libdrm headers 2022-01-30 22:56:22 -06:00
Cameron Gutman cf089fdfe9 Add support for HDR with VAAPI using DRM frontend renderer 2022-01-29 18:16:39 -06:00
Cameron Gutman 9755e31fa2 Refactor VAAPI surface export check into separate function 2022-01-29 17:45:36 -06:00
Cameron Gutman 3fcf31d009 Improve robustness of EGL retry logic for 10-bit color 2022-01-29 01:12:38 -06:00
Cameron Gutman 1cbdd0e675 Display the HDR option if the platform has a decoder that supports it 2022-01-29 00:59:04 -06:00
Cameron Gutman e0fd84d6f5 Fix build with old libdrm headers 2022-01-29 00:28:46 -06:00
Cameron Gutman 443720c3de Plumb HDR metadata into DRM renderer 2022-01-28 22:40:07 -06:00
Cameron Gutman 254526a213 Plumb HDR mode information to the decoders 2022-01-28 22:10:50 -06:00
Cameron Gutman ad0afb5fc9 Prefer direct rendering when using HDR 2022-01-27 22:36:49 -06:00
Cameron Gutman e64b15d2a7 Rework how we deal with window re-creation for EGLRenderer
Previously we opted to just lie to SDL and tell it that the current
GL context is actually GLES 3.0 when it wasn't. This meant that
we avoided our window being recreated for GLES usage on Wayland
and KMSDRM, but that meant our 10-bit color change didn't apply
either. I suspect this hackery is what led EGLRenderer to get
stuck in a state where SDL_CreateRenderer() always failed.

Now SDL will recreate our window once to configure a compatible GL
API for our renderer. If that fails, we'll move on to a different
renderer (which may recreate the window again).
2022-01-27 21:49:03 -06:00
Cameron Gutman cdc3352318 Ensure SDL also uses X11 if Qt is using X11 2022-01-26 19:00:41 -06:00
Cameron Gutman 2416618b34 Don't require 2 bits of alpha for 10-bit color 2022-01-26 18:55:56 -06:00
Cameron Gutman a0709bec51 Improve debugging and add missing break 2022-01-23 21:12:32 -06:00
Cameron Gutman f5bc4e7a24 Add color properties to DRM renderer 2022-01-23 21:03:56 -06:00
Cameron Gutman b4665b6e5a Pick a 10-bit DRM overlay for Main10 streaming 2022-01-23 19:19:16 -06:00
Cameron Gutman b85d5b8822 Enable P010 surface export from VAAPI to EGL 2022-01-23 18:33:30 -06:00
Cameron Gutman 12ad75a6b0 Move hybrid decode detection logic into a central location 2022-01-23 15:41:33 -06:00
Cameron Gutman af92fe6ad1 Fix Apple silicon CPU check 2022-01-23 13:01:20 -06:00
Cameron Gutman fcf7ed4faa Only use the VT rasterization workaround on Apple silicon 2022-01-22 20:25:50 -06:00
Cameron Gutman a58649fd10 Update Windows and macOS to FFmpeg 5.0 2022-01-22 13:44:05 -06:00
Cameron Gutman ee5918cf4e Revert "Add workaround for duplicate size changed events on Wayland"
Skipping size changed events can cause EGLRenderer to get stuck in
a state where it can't reset itself properly. This seems to happen
consistently when starting a maximized stream then transitioning
to full-screen.

This reverts commit e1b3f90f8b.
2022-01-22 12:29:44 -06:00
Cameron Gutman dd941154d6 Fix EGL renderer overlay rendering with SDL_ttf 2.0.18
Fixes #721
2022-01-20 18:02:44 -06:00
Cameron Gutman 719024ec01 Prepare for v3.2.0 release 2022-01-18 18:33:23 -06:00