Expose glslow config option

This commit is contained in:
Cameron Gutman
2023-03-26 20:27:03 -05:00
parent 21cda8141d
commit f16b5cd337
4 changed files with 24 additions and 8 deletions
+1 -6
View File
@@ -1012,12 +1012,7 @@ const char* DrmRenderer::getDrmColorRangeValue(AVFrame* frame)
#ifdef HAVE_EGL
bool DrmRenderer::canExportEGL() {
if (!m_HwAccelBackend) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Using direct rendering due to non-hwaccel backend");
return false;
}
else if (qgetenv("DRM_FORCE_DIRECT") == "1") {
if (qgetenv("DRM_FORCE_DIRECT") == "1") {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Using direct rendering due to environment variable");
return false;
+17 -2
View File
@@ -296,7 +296,7 @@ bool FFmpegVideoDecoder::createFrontendRenderer(PDECODER_PARAMETERS params, bool
}
#endif
#ifdef HAVE_EGL
#if defined(HAVE_EGL) && !defined(GL_IS_SLOW)
if (m_BackendRenderer->canExportEGL()) {
m_FrontendRenderer = new EGLRenderer(m_BackendRenderer);
if (m_FrontendRenderer->initialize(params)) {
@@ -318,7 +318,8 @@ bool FFmpegVideoDecoder::createFrontendRenderer(PDECODER_PARAMETERS params, bool
// The backend renderer cannot directly render to the display, so
// we will create an SDL or DRM renderer to draw the frames.
#if defined(HAVE_DRM) && defined(GL_IS_SLOW)
#ifdef GL_IS_SLOW
#ifdef HAVE_DRM
m_FrontendRenderer = new DrmRenderer(false, m_BackendRenderer);
if (m_FrontendRenderer->initialize(params)) {
return true;
@@ -327,6 +328,20 @@ bool FFmpegVideoDecoder::createFrontendRenderer(PDECODER_PARAMETERS params, bool
m_FrontendRenderer = nullptr;
#endif
#ifdef HAVE_EGL
// We explicitly skipped EGL in the GL_IS_SLOW case above.
// If DRM didn't work either, try EGL now.
if (m_BackendRenderer->canExportEGL()) {
m_FrontendRenderer = new EGLRenderer(m_BackendRenderer);
if (m_FrontendRenderer->initialize(params)) {
return true;
}
delete m_FrontendRenderer;
m_FrontendRenderer = nullptr;
}
#endif
#endif
m_FrontendRenderer = new SdlRenderer();
if (!m_FrontendRenderer->initialize(params)) {
return false;