From 23d08dec0b80a4e15f92bf54ff2ead1dffe8329e Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Thu, 19 May 2016 16:57:09 +0200 Subject: Add Mesa VC4 based RPi3 device spec The rpi3 spec added previously is only half of the story now that we have the option to use another GL driver. Change-Id: I1b1edde77bcc6d2f382f1021de9c594c27c34d6f Reviewed-by: Andy Nichols --- mkspecs/devices/linux-rpi3-vc4-g++/qmake.conf | 44 ++++++++++++++++++++++ mkspecs/devices/linux-rpi3-vc4-g++/qplatformdefs.h | 34 +++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 mkspecs/devices/linux-rpi3-vc4-g++/qmake.conf create mode 100644 mkspecs/devices/linux-rpi3-vc4-g++/qplatformdefs.h (limited to 'mkspecs/devices') diff --git a/mkspecs/devices/linux-rpi3-vc4-g++/qmake.conf b/mkspecs/devices/linux-rpi3-vc4-g++/qmake.conf new file mode 100644 index 0000000000..75b6ad7db5 --- /dev/null +++ b/mkspecs/devices/linux-rpi3-vc4-g++/qmake.conf @@ -0,0 +1,44 @@ +# qmake configuration for the Raspberry Pi 3 (32-bit) using the +# *experimental* VC4 driver for Mesa and DRM. +# +# This should allow accelerated EGL and OpenGL with eglfs via +# KMS/DRM/GBM (instead of the Broadcom-specific backend), under X11 +# with xcb, and also enables (Qt)Wayland via the standard wayland-egl +# path. See https://dri.freedesktop.org/wiki/VC4 +# +# Note that this is not the same as the default, Broadcom proprietary +# driver. Some functionality and extensions may therefore be missing, +# in particular when it comes to accelerated multimedia (video, +# camera). +# +# At the time of writing Raspbian has to be switched explicitly to the +# experimental VC4 driver. To do this, run raspi-config and enable it +# in Advanced Options -> GL Driver. +# +# Example configure command below. We disable using the GNU gold +# linker as it apparently has issues with ARMv8. In the configure +# output check that "EGLFS GBM .......... yes" is present, otherwise +# eglfs will not be functional. +# +# ./configure -release -opengl es2 -device linux-rpi3-vc4-g++ \ +# -device-option CROSS_COMPILE=~/raspbian/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- \ +# -sysroot ~/raspbian/sysroot \ +# -prefix /usr/local/qt5pi -extprefix ~/raspbian/qt5pi -hostprefix ~/raspbian/qt5 \ +# -v -nomake examples -nomake tests -no-use-gold-linker + +include(../common/linux_device_pre.conf) + +QMAKE_LIBS_EGL += -lEGL +QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL + +QMAKE_CFLAGS = -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 +QMAKE_CXXFLAGS = $$QMAKE_CFLAGS + +DISTRO_OPTS += hard-float +DISTRO_OPTS += deb-multi-arch + +EGLFS_DEVICE_INTEGRATION = eglfs_kms + +include(../common/linux_arm_device_post.conf) + +load(qt_config) diff --git a/mkspecs/devices/linux-rpi3-vc4-g++/qplatformdefs.h b/mkspecs/devices/linux-rpi3-vc4-g++/qplatformdefs.h new file mode 100644 index 0000000000..6fe3b52454 --- /dev/null +++ b/mkspecs/devices/linux-rpi3-vc4-g++/qplatformdefs.h @@ -0,0 +1,34 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the qmake spec of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL21$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "../../linux-g++/qplatformdefs.h" -- cgit v1.2.3