Cameron Gutman
439e8fe33f
Constify frame colorspace helper functions
2022-09-24 18:37:51 -05:00
Cameron Gutman
99885f5b4b
Centralize colorspace and color range handling
2022-09-24 12:28:23 -05:00
Cameron Gutman
81cfacaa3d
Add fallback logic when the host doesn't send valid colorspace data
2022-09-11 23:13:10 -05:00
Cameron Gutman
ad3ed97472
Fix handling of 3 byte Annex B start sequences
2022-09-05 17:56:42 -05:00
Cameron Gutman
0ff8a44ec3
Allow 10-bit in DXVA2 as a fallback
2022-08-22 00:23:07 -05:00
Cameron Gutman
c6d8f6e618
Allow D3D11VA to be disabled via environment variable
2022-08-22 00:19:46 -05:00
Cameron Gutman
d39a29759c
Don't draw with test-only renderers
2022-08-21 18:38:09 -05:00
Cameron Gutman
bf4332b9e7
Prefer D3D11VA in non-FSE modes for improved performance
2022-08-21 17:50:56 -05:00
Cameron Gutman
aa7d5fa924
Don't use swap interval 1 by default on Wayland systems
2022-08-14 13:09:31 -05:00
Cameron Gutman
36218b54f8
Don't hardcode /dev/dri/card0 and /dev/dri/renderD128
2022-06-30 19:25:33 -05:00
Cameron Gutman
be2f4433db
Avoid hardcoding VIDEO_FORMAT_H265_MAIN10 for HDR/10-bit color
2022-06-26 16:22:05 -05:00
Cameron Gutman
1b96b18bc0
Fix handling of colorspace changes when using CUDA+SDL
2022-05-28 22:55:55 -05:00
Cameron Gutman
e9edad6f8c
Fix surface leak if SDLVideo_CreateOverlay() fails
2022-05-28 22:48:49 -05:00
Cameron Gutman
f8a6012c3a
Improve overlay format handling
2022-05-28 22:48:23 -05:00
Cameron Gutman
e103f6c9b6
Avoid holding the overlay lock during vaPutSurface
2022-05-28 22:28:17 -05:00
Cameron Gutman
9daf7b5a36
Fix modesetting for non-EGL HEVC streams
2022-05-28 21:42:27 -05:00
Cameron Gutman
b9c73df488
Draw the black background even for the KMSDRM backend to fix modesetting
2022-05-24 19:41:37 -05:00
Cameron Gutman
f99f1f6441
Disable EGL renderer on RPi due to very poor performance
2022-05-23 23:05:07 -05:00
Cameron Gutman
1ec1f5d3be
Switch to D3D11VA by default on Windows ARM64
...
It performs much better at 4K on Surface Pro X
2022-05-22 22:29:18 -05:00
Cameron Gutman
c2d7b835fb
Try moving session.h prior to vaapi.h
2022-05-21 16:58:28 -05:00
Cameron Gutman
f72888ce6f
Attempt to fix build error with older Qt headers
2022-05-21 16:52:04 -05:00
Cameron Gutman
216f274a92
Fix UAF in SLVideo overlay update
2022-05-21 00:30:07 -05:00
Cameron Gutman
5ea79efe4b
Work around broken overlay state restoration in Qt GUI
2022-05-21 00:20:36 -05:00
Cameron Gutman
197c1ba21b
Add support for the status overlay on Steam Link
2022-05-21 00:10:49 -05:00
Cameron Gutman
95c4a24d99
Destroy subpictures before the associated image
2022-05-20 21:46:40 -05:00
Cameron Gutman
f5f23a7c22
Implement overlay support for the VAAPI direct renderer
2022-05-20 21:40:37 -05:00
Cameron Gutman
8aa42ff1d9
Reset the EGL renderer when specialization fails
2022-05-17 17:10:40 -05:00
Cameron Gutman
63a5bc5e12
Only force pacing in true full-screen mode to be consistent with DXVA2
2022-05-15 13:38:58 -05:00
Cameron Gutman
e0b7b6dc3d
Fix DXGI_FEATURE_PRESENT_ALLOW_TEARING feature check
2022-05-11 22:48:15 -05:00
Cameron Gutman
3d7ecf98c2
Fix HEVC Main10 support check on macOS GPUFamily1 GPUs
2022-05-11 22:00:34 -05:00
Cameron Gutman
ad5581c620
Use DWM MMCSS for D3D11VA like DXVA2 does
2022-05-09 23:52:13 -05:00
Cameron Gutman
69af991772
Improve DXVA2 performance in borderless windowed on AMD hardware
2022-05-09 22:55:58 -05:00
Cameron Gutman
2bb2745f91
Enhance frame pacing logic for HDR renderers
2022-05-07 16:21:17 -05:00
Cameron Gutman
5f682bb45f
Revert addition of D3DCREATE_NOWINDOWCHANGES
...
This flag breaks Alt+Tab in full-screen exclusive mode
2022-05-07 16:21:04 -05:00
Cameron Gutman
2480849f39
Clean up DXGI adapter enumeration code
2022-05-02 19:05:00 -05:00
Cameron Gutman
a1c350a537
Fix WARP device leak
2022-04-26 23:29:04 -05:00
Cameron Gutman
f732b1978e
Require a test frame with D3D11VA
2022-04-26 23:04:31 -05:00
Cameron Gutman
d3a542bac4
Try all available GPUs in D3D11VA decoder
2022-04-26 22:49:46 -05:00
Cameron Gutman
f8f5e8e869
Don't discard all excess frames before rendering
...
This prevents the render queue's pacing logic from working and
interferes with renderers that take a full v-sync period between
their waitToRender() and renderFrame() callbacks.
2022-04-24 17:04:32 -05:00
Cameron Gutman
38396b2691
Rework window management to fix issues restoring window state between windowed and full-screen
2022-04-24 16:22:17 -05:00
Cameron Gutman
220f50ebe4
Revert "Allow renderers to apply size and display changes seamlessly"
...
This reverts commit c989133d27
.
2022-04-24 16:12:12 -05:00
Cameron Gutman
c989133d27
Allow renderers to apply size and display changes seamlessly
2022-04-24 15:42:08 -05:00
Cameron Gutman
ef23a80b16
Fix EGL build when using EGL 1.4 or earlier headers
2022-04-21 21:13:39 -05:00
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