Cameron Gutman
cd13910e6c
Add support for YUV 4:4:4 in DXVA2
...
We get it basically for free now that we let FFmpeg handle the heavy lifting.
2026-01-11 20:55:46 -06:00
Cameron Gutman
b8e9262b1b
Replace deprecated DXVA2 initialization with standard hwaccel init
...
- Avoids requiring a hardcoded number of frames (and creating surfaces ourselves)
- Removes a ton of unnecessary code that's duplicated in FFmpeg
- Supports dynamic frame sizes, formats, and color conversion
- Supports frame cropping in FFmpeg
2026-01-11 17:46:13 -06:00
Cameron Gutman
c3ce0918b3
Optimize blending in DXVA2 and D3D11VA renderers
2025-12-28 13:53:13 -06:00
Cameron Gutman
41ad3c0938
Add environment variable override helper function
...
This allows FORCE_QT_GLES and SEPARATE_TEST_DECODER to override both true and false.
2025-12-27 15:33:39 -06:00
Cameron Gutman
351aaa6759
Add an enum type for each renderer
2025-02-18 18:58:04 -06:00
Cameron Gutman
f756be87ff
Fix YUV444 hardware decoding on Windows systems without an Intel GPU present
2024-08-30 16:31:58 -05:00
Cameron Gutman
f138827cdf
Add handling for AV1 High profile in D3D11VA/DXVA2
...
This doesn't seem to be supported by FFmpeg or any actual hardware yet
2024-07-30 23:21:49 -05:00
Cameron Gutman
e25919e0f9
Use for each loop to destroy objects in arrays
...
Also fixes incorrect release of m_VideoPixelShaders objects
2024-07-30 22:58:59 -05:00
Cameron Gutman
99749d4730
Use ComPtr for lifetime management in DXVA2
2024-07-30 22:41:29 -05:00
Cameron Gutman
c707dab70a
Plumb YUV444 logic into additional renderers
2024-07-25 06:36:40 -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
cefa567f95
Demote DXVA2 renderer to second pass of hwaccels
2024-03-26 23:04:54 -05: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
e20d56041e
Fix rare race condition in overlay update code
2023-12-31 15:21:18 -06:00
Cameron Gutman
7551e90899
Adjust AV1 surface alignment to match FFmpeg behavior
2023-09-08 23:13:29 -05:00
Cameron Gutman
626fba4a8f
Fix DXVA2 chroma subsampling assuming interlaced content
2023-08-19 18:09:07 -05:00
Cameron Gutman
1a2f1ed620
Enable AV1 RFI on all decoders capable of HEVC RFI
2023-08-13 16:41:48 -05:00
Cameron Gutman
7404e5fce2
Prefer D3D11VA for FSE V-Sync off
2023-08-03 19:41:35 -05:00
Cameron Gutman
a81c6a1c5e
Initial work on AV1 support
2023-07-03 00:45:36 -05:00
Cameron Gutman
a0365c8e1c
Evaluate D3D9 quirks before calling CreateDeviceEx()
2023-03-17 00:53:47 -05:00
Cameron Gutman
38156c9f7f
Default to D3D11VA on multi-GPU systems
2023-03-13 22:56:28 -05:00
Cameron Gutman
e6c4332445
Revert "Use Rec 2020 colorspace for WCG support even if HDR is off on the host"
...
Rec 2020 conversion causes colors to be blown out in SDR
This reverts commit 472e8ee92e .
2022-10-13 01:19:49 -05:00
Cameron Gutman
40dd588bef
Use 10-bit format mask instead of hardcoding specific formats
2022-10-13 00:17:05 -05:00
Cameron Gutman
472e8ee92e
Use Rec 2020 colorspace for WCG support even if HDR is off on the host
2022-10-13 00:14:10 -05:00
Cameron Gutman
9e8a4cab7b
Enable HEVC RFI for DXVA2 and D3D11VA
2022-10-04 22:56:21 -05:00
Cameron Gutman
99885f5b4b
Centralize colorspace and color range handling
2022-09-24 12:28:23 -05:00
Cameron Gutman
0ff8a44ec3
Allow 10-bit in DXVA2 as a fallback
2022-08-22 00:23:07 -05:00
Cameron Gutman
bf4332b9e7
Prefer D3D11VA in non-FSE modes for improved performance
2022-08-21 17:50:56 -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
f8a6012c3a
Improve overlay format handling
2022-05-28 22:48:23 -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
69af991772
Improve DXVA2 performance in borderless windowed on AMD hardware
2022-05-09 22:55:58 -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
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
fd563726f0
Fix blocking presents in borderless windowed flip modes
2022-04-15 23:21:52 -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
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
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
be2af1d17a
Add environment variables to configure DXVA2 and D3D11VA options
2022-02-08 22:27:27 -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
12ad75a6b0
Move hybrid decode detection logic into a central location
2022-01-23 15:41:33 -06:00
Cameron Gutman
a58649fd10
Update Windows and macOS to FFmpeg 5.0
2022-01-22 13:44:05 -06:00
Cameron Gutman
56a5fbf63b
Fix get_buffer2() thread-safety warning with FFmpeg 4.4
2021-11-29 19:45:28 +03:00
Cameron Gutman
0455063854
Fix driver version check for Intel's updated version schema in 100 and newer drivers
...
Fixes #673
2021-11-13 20:44:10 -06:00
Cameron Gutman
3defccb6e2
Work around poor video scaling quality on Qualcomm GPUs
2020-12-21 21:00:55 -06:00
Cameron Gutman
5f4975ca5c
Fix DXVA2 overlay rendering quality issus
2020-12-20 17:30:06 -06:00
Cameron Gutman
6a54fb649c
Fix synchronization issues between render and overlay update threads in DXVA2
2020-12-18 20:23:52 -06:00
Cameron Gutman
94b46a2173
Use a vertex buffer for rendering the DXVA2 overlays
2020-12-16 18:16:35 -06:00
Cameron Gutman
1e7cb7f13e
Replace D3DX9 with SDL_ttf for overlay rendering
2020-12-13 23:43:31 -06:00
Cameron Gutman
59a73817c8
Don't use AntiHooking.dll or use D3DX9 on ARM64
2020-12-12 13:59:47 -06:00