Cameron Gutman
231a67946d
WIP SDL3 compatibility
2025-01-31 01:13:17 -06:00
Cameron Gutman
3531fe0a4f
Fix typo in version check for new Vulkan queue API
2024-10-02 00:37:22 -05:00
Cameron Gutman
6ce02616f0
Use new Vulkan queue API in FFmpeg 7.1
2024-09-29 23:04:23 -05:00
Cameron Gutman
901cbd255c
Disable Vulkan debug layers by default
...
The vast majority of Vulkan code running in Moonlight
is part of FFmpeg or libplacebo, so the debug layers
really just slow things down without finding any bugs
in our code.
Additionally, there are some overzealous checks firing
constantly on libplacebo and FFmpeg with certain Vulkan
drivers that we can't do anything about.
2024-09-28 00:05:17 -05:00
Cameron Gutman
f786e94c7b
Fix excessive latency with Vulkan video decoding on Nvidia
...
For yet unknown reasons, high frame queue delay leads to massive decode latency.
2024-09-16 21:59:17 -05:00
Cameron Gutman
4838a75c58
Suppress spammy libplacebo messages
...
Streaming 10-bit content on Nvidia GPUs spams the log with the following for every rendered frame:
Masking `blit_src` from wrapped texture because the corresponding format 'rx10' does not support PL_FMT_CAP_BLITTABLE
Masking `blit_src` from wrapped texture because the corresponding format 'rxgx10' does not support PL_FMT_CAP_BLITTABLE
2024-09-15 22:01:39 -05:00
Cameron Gutman
c5ec8c0fdb
Add libplacebo prefix to log messages
2024-09-15 21:58:19 -05:00
Cameron Gutman
67e89d9e16
Add workaround for incorrect color range in AMF AV1 encoding output
2024-09-04 23:13:48 -05:00
Cameron Gutman
ef7dff32aa
Don't use Vulkan Video on Intel GPUs on Windows
...
Intel's Windows drivers are either totally broken or just don't play nicely with FFmpeg currently.
2024-08-02 21:16:52 -05:00
Cameron Gutman
c707dab70a
Plumb YUV444 logic into additional renderers
2024-07-25 06:36:40 -05:00
ns6089
da0244c538
Support YUV 4:4:4 formats
2024-07-24 20:54:13 -05:00
Cameron Gutman
d5a198b764
YUV420P10 is also compatible with PlVkRenderer
2024-07-06 17:24:46 -05:00
Cameron Gutman
b5b2731d5f
Add support for rendering software decoded frames with Vulkan
2024-07-06 16:49:35 -05:00
Cameron Gutman
bd60b873ec
Add missing check for no Vulkan devices
2024-06-18 00:12:08 -05:00
Cameron Gutman
17af71fe7a
Allow the Vulkan renderer to accept HDR input even without HDR output capability
...
In addition to resolving issues with mixing HDR and SDR displays and moving
between them while streaming, it also allows streaming HDR content to an SDR
display with tone mapping handled transparently by libplacebo.
2024-06-09 15:00:56 -05:00
Dylan Frankcom
58e27875ae
Fix Raised Black Levels on Steam Deck OLED ( #1265 )
...
Add getDecoderColorRange to plvk
2024-04-30 20:31:00 -05:00
Cameron Gutman
fd2ff61a40
Support Vulkan AV1 decoding with FFmpeg 7.0
2024-04-06 12:31:14 -05:00
Cameron Gutman
ceca83346b
Use FIFO present mode for VSync
2024-03-02 11:19:52 -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 770872238d29576ad3c31353fb5b549d5cf2a6a6.
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
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
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
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
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
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
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
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