diff mbox series

[RFC,v2,09/12] package/qt5base: add vulkan option

Message ID 20210110222833.26301-10-ps.report@gmx.net
State Changes Requested
Headers show
Series Vulkan support | expand

Commit Message

Peter Seiderer Jan. 10, 2021, 10:28 p.m. UTC
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - no changes

Notes:
  - eglfs/vulkan is only implemented for eglfs_viv
    (see stub implementation for QEglFSDeviceIntegration::createPlatformVulkanInstance()
    in src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp and
    real implementation for QEglFSVivIntegration::createPlatformVulkanInstance()
    in src/plugins/platforms/eglfs/deviceintegration/eglfs_viv/qeglfsvivintegration.cpp)
  - or for xcb (see QXcbIntegration::createPlatformVulkanInstance()
    in src/plugins/platforms/xcb/qxcbintegration.cpp)
---
 package/qt5/qt5base/Config.in  | 11 +++++++++++
 package/qt5/qt5base/qt5base.mk |  7 +++++++
 2 files changed, 18 insertions(+)

Comments

Arnout Vandecappelle Jan. 9, 2022, 9:31 p.m. UTC | #1
On 10/01/2021 23:28, Peter Seiderer wrote:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Changes v1 -> v2:
>    - no changes
> 
> Notes:
>    - eglfs/vulkan is only implemented for eglfs_viv
>      (see stub implementation for QEglFSDeviceIntegration::createPlatformVulkanInstance()
>      in src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp and
>      real implementation for QEglFSVivIntegration::createPlatformVulkanInstance()
>      in src/plugins/platforms/eglfs/deviceintegration/eglfs_viv/qeglfsvivintegration.cpp)
>    - or for xcb (see QXcbIntegration::createPlatformVulkanInstance()
>      in src/plugins/platforms/xcb/qxcbintegration.cpp)
> ---
>   package/qt5/qt5base/Config.in  | 11 +++++++++++
>   package/qt5/qt5base/qt5base.mk |  7 +++++++
>   2 files changed, 18 insertions(+)
> 
> diff --git a/package/qt5/qt5base/Config.in b/package/qt5/qt5base/Config.in
> index ee7c757c60..377a754f37 100644
> --- a/package/qt5/qt5base/Config.in
> +++ b/package/qt5/qt5base/Config.in
> @@ -175,6 +175,17 @@ config BR2_PACKAGE_QT5BASE_OPENGL_LIB
>   
>   endif
>   
> +config BR2_PACKAGE_QT5BASE_VULKAN
> +	bool "Vulkan support"
> +	# all vulkan-loader introduced dependencies superseeded by qt5 own ones
> +	# depends on BR2_INSTALL_LIBSTDCPP # vulkan-loader
> +	# depends on !BR2_STATIC_LIBS # vulkan-loader
> +	# depends on BR2_TOOLCHAIN_HAS_THREADS # vulkan-loader

  Just keep them, doesn't matter that qt5 already has them. Only if it becomes 
very complicated it's worth optimising it.

  However, shouldn't we have a virtual package to make sure there's also a 
vulkan provider, similar like we have for GL? Or isn't that needed because it's 
mediated through the loader library? It indeed doesn't look like Qt needs to 
link with the vulkan provider (i.e. mesa3d at this point).

  Regards,
  Arnout


> +	select BR2_PACKAGE_VULKAN_HEADERS
> +	select BR2_PACKAGE_VULKAN_LOADER
> +	help
> +	  This option enables Vulkan support.
> +
>   config BR2_PACKAGE_QT5BASE_LINUXFB
>   	bool "linuxfb support"
>   
> diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
> index 84e9fa4edb..3755e306d1 100644
> --- a/package/qt5/qt5base/qt5base.mk
> +++ b/package/qt5/qt5base/qt5base.mk
> @@ -196,6 +196,13 @@ else
>   QT5BASE_CONFIGURE_OPTS += -no-opengl
>   endif
>   
> +ifeq ($(BR2_PACKAGE_QT5BASE_VULKAN),y)
> +QT5BASE_CONFIGURE_OPTS += -feature-vulkan
> +QT5BASE_DEPENDENCIES   += vulkan-headers vulkan-loader
> +else
> +QT5BASE_CONFIGURE_OPTS += -no-feature-vulkan
> +endif
> +
>   QT5BASE_DEFAULT_QPA = $(call qstrip,$(BR2_PACKAGE_QT5BASE_DEFAULT_QPA))
>   QT5BASE_CONFIGURE_OPTS += $(if $(QT5BASE_DEFAULT_QPA),-qpa $(QT5BASE_DEFAULT_QPA))
>   
>
diff mbox series

Patch

diff --git a/package/qt5/qt5base/Config.in b/package/qt5/qt5base/Config.in
index ee7c757c60..377a754f37 100644
--- a/package/qt5/qt5base/Config.in
+++ b/package/qt5/qt5base/Config.in
@@ -175,6 +175,17 @@  config BR2_PACKAGE_QT5BASE_OPENGL_LIB
 
 endif
 
+config BR2_PACKAGE_QT5BASE_VULKAN
+	bool "Vulkan support"
+	# all vulkan-loader introduced dependencies superseeded by qt5 own ones
+	# depends on BR2_INSTALL_LIBSTDCPP # vulkan-loader
+	# depends on !BR2_STATIC_LIBS # vulkan-loader
+	# depends on BR2_TOOLCHAIN_HAS_THREADS # vulkan-loader
+	select BR2_PACKAGE_VULKAN_HEADERS
+	select BR2_PACKAGE_VULKAN_LOADER
+	help
+	  This option enables Vulkan support.
+
 config BR2_PACKAGE_QT5BASE_LINUXFB
 	bool "linuxfb support"
 
diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
index 84e9fa4edb..3755e306d1 100644
--- a/package/qt5/qt5base/qt5base.mk
+++ b/package/qt5/qt5base/qt5base.mk
@@ -196,6 +196,13 @@  else
 QT5BASE_CONFIGURE_OPTS += -no-opengl
 endif
 
+ifeq ($(BR2_PACKAGE_QT5BASE_VULKAN),y)
+QT5BASE_CONFIGURE_OPTS += -feature-vulkan
+QT5BASE_DEPENDENCIES   += vulkan-headers vulkan-loader
+else
+QT5BASE_CONFIGURE_OPTS += -no-feature-vulkan
+endif
+
 QT5BASE_DEFAULT_QPA = $(call qstrip,$(BR2_PACKAGE_QT5BASE_DEFAULT_QPA))
 QT5BASE_CONFIGURE_OPTS += $(if $(QT5BASE_DEFAULT_QPA),-qpa $(QT5BASE_DEFAULT_QPA))