1109 Commits

Author SHA1 Message Date
Cameron Gutman
747d3eedf1 Cleanup D3D11VA renderer by removing unnecessary codepaths
Waitable swapchains seem to be worse than our existing DXVsyncSource for synchronizing with VBlank.

Full-screen exclusive mode isn't beneficial vs Independent Flip on modern Win10/Win11 systems.
2022-04-15 23:26:32 -05:00
Cameron Gutman
fd563726f0 Fix blocking presents in borderless windowed flip modes 2022-04-15 23:21:52 -05:00
Cameron Gutman
62136a1a96 Increase buffer count to prevent starvation on AMD GPUs 2022-04-14 23:21:32 -05:00
Cameron Gutman
cf16c31d38 Improve performance and latency of D3D11VA renderer 2022-04-14 22:46:13 -05:00
Cameron Gutman
0f5d4aa72f Enhance EGLRenderer's waitForRender() implementation 2022-04-10 20:20:44 -05:00
Cameron Gutman
d8dbe77427 Tiny EGL code cleanup 2022-04-10 19:35:29 -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
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
9a5134ffcf Use QString not QByteArray for string equality 2022-04-02 15:49:07 -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
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
The Great Wizard Azkali
0b127a2f3b
Add support for h264_nvv4l2 and hevc_nvv4l2 (#745)
* Add support for h264_nvv4l2

A new implementation of nvv4l2 decoder has been made by @CTCaer and will be released in thr next switchroot (Linux for Nintendo Switch) update. This implementation of ffmpeg can also be used by other Jetson boards. A repository will be soon hosted so Jetson users can install it.
Prior to the new implementation distribution, we add it to the project who currently use nvmpi implementation.

* Add support for hevc_nvv4l2

Following previous PR, add hevc support as well.
2022-03-26 22:02:00 -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
ce2a01fc59 Allow the screensaver toggle to work even if running on an embedded platform 2022-03-16 21:57:03 -05:00
Cameron Gutman
97d8274911 Add option to allow PC to sleep while streaming 2022-03-16 21:48:56 -05: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
93c02fb43a Print GPU info in D3D11VA renderer 2022-02-20 22:10:18 -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
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
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