summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms
diff options
context:
space:
mode:
authorElvis Lee <kwangwoong.lee@lge.com>2021-03-12 16:09:12 +0900
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2021-03-12 10:10:41 +0000
commita77ca7c9c45c9d6f1b4f93beefd338b4527ab02b (patch)
tree5e4285fcb6b357522f65ef7a661018968ff95e8c /src/plugins/platforms/eglfs/deviceintegration/eglfs_kms
parentae88dea1bea0016a124e7030a04877baa4efc2bd (diff)
Support additional gbm surface flags
Some vendor requires more gbm surface flags for specific purpose, such as protected content. Change-Id: Ie7db337e05f941b5480ffaccf61fbc94eb989ffc Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/plugins/platforms/eglfs/deviceintegration/eglfs_kms')
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp4
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen_p.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp
index 6f77a0729c..a44eaff638 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp
@@ -170,7 +170,7 @@ gbm_surface *QEglFSKmsGbmScreen::createSurface(EGLConfig eglConfig)
rawGeometry().width(),
rawGeometry().height(),
native_format,
- GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
+ gbmFlags());
if (m_gbm_surface)
m_output.drm_format = gbmFormatToDrmFormat(native_format);
}
@@ -187,7 +187,7 @@ gbm_surface *QEglFSKmsGbmScreen::createSurface(EGLConfig eglConfig)
rawGeometry().width(),
rawGeometry().height(),
gbmFormat,
- GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
+ gbmFlags());
}
}
return m_gbm_surface; // not owned, gets destroyed in QEglFSKmsGbmIntegration::destroyNativeWindow() via QEglFSKmsGbmWindow::invalidateSurface()
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen_p.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen_p.h
index 5be28fa971..ae12e95e62 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen_p.h
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen_p.h
@@ -82,6 +82,8 @@ public:
virtual void flip();
virtual void updateFlipStatus();
+ virtual uint32_t gbmFlags() { return GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING; }
+
protected:
void flipFinished();
void ensureModeSet(uint32_t fb);