Skip to content

Instantly share code, notes, and snippets.

@mvduin
Last active February 7, 2017 05:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mvduin/ed24141e5bec6a42a00ccdaaf812d6a3 to your computer and use it in GitHub Desktop.
Save mvduin/ed24141e5bec6a42a00ccdaaf812d6a3 to your computer and use it in GitHub Desktop.
First guess at making eglfs_kms use 16-bit framebuffers
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
index 1c0a8e1b5fc1..6b1dd875fb7e 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
@@ -90,7 +90,7 @@ EGLNativeWindowType QEglFSKmsGbmIntegration::createNativeOffscreenWindow(const Q
qCDebug(qLcEglfsKmsDebug) << "Creating native off screen window";
gbm_surface *surface = gbm_surface_create(static_cast<QEglFSKmsGbmDevice *>(device())->gbmDevice(),
1, 1,
- GBM_FORMAT_XRGB8888,
+ GBM_FORMAT_RGB565,
GBM_BO_USE_RENDERING);
return reinterpret_cast<EGLNativeWindowType>(surface);
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp
index 7a17b60a5e7a..07494257e1a3 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp
@@ -80,7 +80,7 @@ QEglFSKmsGbmScreen::FrameBuffer *QEglFSKmsGbmScreen::framebufferForBufferObject(
QScopedPointer<FrameBuffer> fb(new FrameBuffer);
- int ret = drmModeAddFB(device()->fd(), width, height, 24, 32,
+ int ret = drmModeAddFB(device()->fd(), width, height, 16, 16,
stride, handle, &fb->fb);
if (ret) {
@@ -132,7 +132,7 @@ gbm_surface *QEglFSKmsGbmScreen::createSurface()
m_gbm_surface = gbm_surface_create(static_cast<QEglFSKmsGbmDevice *>(device())->gbmDevice(),
geometry().width(),
geometry().height(),
- GBM_FORMAT_XRGB8888,
+ GBM_FORMAT_RGB565,
GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
}
return m_gbm_surface;
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp
index e6b256f6b2e2..c86e9c17dd99 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp
@@ -108,12 +108,12 @@ QRect QEglFSKmsScreen::geometry() const
int QEglFSKmsScreen::depth() const
{
- return 32;
+ return 16;
}
QImage::Format QEglFSKmsScreen::format() const
{
- return QImage::Format_RGB32;
+ return QImage::Format_RGB16;
}
QSizeF QEglFSKmsScreen::physicalSize() const
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment