mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2025-07-02 15:55:39 +00:00
Use the new EGL renderer for VAAPI by default
This commit is contained in:
parent
a446699c6c
commit
586a93d7aa
@ -449,6 +449,12 @@ VAAPIRenderer::canExportEGL() {
|
|||||||
VASurfaceAttrib attrs[2];
|
VASurfaceAttrib attrs[2];
|
||||||
int attributeCount = 0;
|
int attributeCount = 0;
|
||||||
|
|
||||||
|
if (qgetenv("VAAPI_FORCE_DIRECT") == "1") {
|
||||||
|
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
|
||||||
|
"Using direct rendering due to environment variable");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// FFmpeg handles setting these quirk flags for us
|
// FFmpeg handles setting these quirk flags for us
|
||||||
if (!(vaDeviceContext->driver_quirks & AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE)) {
|
if (!(vaDeviceContext->driver_quirks & AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE)) {
|
||||||
attrs[attributeCount].type = VASurfaceAttribMemoryType;
|
attrs[attributeCount].type = VASurfaceAttribMemoryType;
|
||||||
|
@ -194,20 +194,21 @@ void FFmpegVideoDecoder::reset()
|
|||||||
|
|
||||||
bool FFmpegVideoDecoder::createFrontendRenderer(PDECODER_PARAMETERS params)
|
bool FFmpegVideoDecoder::createFrontendRenderer(PDECODER_PARAMETERS params)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_EGL
|
||||||
|
if (m_BackendRenderer->canExportEGL()) {
|
||||||
|
m_FrontendRenderer = new EGLRenderer(m_BackendRenderer);
|
||||||
|
if (m_FrontendRenderer->initialize(params)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
delete m_FrontendRenderer;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (m_BackendRenderer->isDirectRenderingSupported()) {
|
if (m_BackendRenderer->isDirectRenderingSupported()) {
|
||||||
// The backend renderer can render to the display
|
// The backend renderer can render to the display
|
||||||
m_FrontendRenderer = m_BackendRenderer;
|
m_FrontendRenderer = m_BackendRenderer;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#ifdef HAVE_EGL
|
|
||||||
if (m_BackendRenderer->canExportEGL()) {
|
|
||||||
m_FrontendRenderer = new EGLRenderer(m_BackendRenderer);
|
|
||||||
if (m_FrontendRenderer->initialize(params)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
delete m_FrontendRenderer;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
// The backend renderer cannot directly render to the display, so
|
// The backend renderer cannot directly render to the display, so
|
||||||
// we will create an SDL renderer to draw the frames.
|
// we will create an SDL renderer to draw the frames.
|
||||||
m_FrontendRenderer = new SdlRenderer();
|
m_FrontendRenderer = new SdlRenderer();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user