mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2026-07-23 15:20:38 +00:00
Refactor libplacebo renderer to handle non-Vulkan hwcontexts
This commit is contained in:
@@ -368,7 +368,7 @@ bool FFmpegVideoDecoder::createFrontendRenderer(PDECODER_PARAMETERS params, bool
|
||||
if (!vulkanIsSlow) {
|
||||
// The Vulkan renderer can also handle HDR with a supported compositor. We prefer
|
||||
// rendering HDR with Vulkan if possible since it's more fully featured than DRM.
|
||||
m_FrontendRenderer = new PlVkRenderer(false, m_BackendRenderer);
|
||||
m_FrontendRenderer = new PlVkRenderer(AV_HWDEVICE_TYPE_NONE, m_BackendRenderer);
|
||||
if (initializeRendererInternal(m_FrontendRenderer, params) && (m_FrontendRenderer->getRendererAttributes() & RENDERER_ATTRIBUTE_HDR_SUPPORT)) {
|
||||
return true;
|
||||
}
|
||||
@@ -396,7 +396,7 @@ bool FFmpegVideoDecoder::createFrontendRenderer(PDECODER_PARAMETERS params, bool
|
||||
if (vulkanIsSlow) {
|
||||
// Try Vulkan even if it's slow because we have no other renderer
|
||||
// that can display HDR properly on Linux.
|
||||
m_FrontendRenderer = new PlVkRenderer(false, m_BackendRenderer);
|
||||
m_FrontendRenderer = new PlVkRenderer(AV_HWDEVICE_TYPE_NONE, m_BackendRenderer);
|
||||
if (initializeRendererInternal(m_FrontendRenderer, params) && (m_FrontendRenderer->getRendererAttributes() & RENDERER_ATTRIBUTE_HDR_SUPPORT)) {
|
||||
return true;
|
||||
}
|
||||
@@ -409,7 +409,7 @@ bool FFmpegVideoDecoder::createFrontendRenderer(PDECODER_PARAMETERS params, bool
|
||||
{
|
||||
#ifdef HAVE_LIBPLACEBO_VULKAN
|
||||
if (qgetenv("PREFER_VULKAN") == "1") {
|
||||
m_FrontendRenderer = new PlVkRenderer(false, m_BackendRenderer);
|
||||
m_FrontendRenderer = new PlVkRenderer(AV_HWDEVICE_TYPE_NONE, m_BackendRenderer);
|
||||
if (initializeRendererInternal(m_FrontendRenderer, params)) {
|
||||
return true;
|
||||
}
|
||||
@@ -1022,7 +1022,7 @@ IFFmpegRenderer* FFmpegVideoDecoder::createHwAccelRenderer(const AVCodecHWConfig
|
||||
#endif
|
||||
#ifdef HAVE_LIBPLACEBO_VULKAN
|
||||
case AV_HWDEVICE_TYPE_VULKAN:
|
||||
return new PlVkRenderer(true);
|
||||
return new PlVkRenderer(hwDecodeCfg->device_type);
|
||||
#endif
|
||||
default:
|
||||
switch (hwDecodeCfg->pix_fmt) {
|
||||
|
||||
Reference in New Issue
Block a user