Skip to contentSkip to conversation

powervr: add powervr virtual package

PATCH Superseded Spenser Gilliland 3 participants 14 messages Jul 12, 2013 – Jul 15, 2013

v5 of 6 Superseded Latest is v6 →

lore
Share & tools
lore
#0 lore raw

PATCH v5 1/3 powervr: add powervr virtual package

Cc Thomas Petazzoni <[email protected]>
Cc Sundareson, Prabindh <[email protected]>
Cc Peter Korsgaard <[email protected]>
Cc Sinan Akpolat <[email protected]>

---
v5:
- Fixed build issues on hard float (and non-CS toolchains)
- added powervr virtual package
v4:
- Fix header issue with qt.
- Add eglimage version installation.
v3:
- integrate reviews from thomas.
- Add qt patch
v2:
- Take into account reviews.
- Simplfy init script.
- Fix header installation.
v1:
- Added .pc files
- all review issues addressed
RFC v3:
- all reviews addressed
- added demos
- added hard float (not runtime tested)
- added init script
- added SGX detection script (untested)
- tested on beaglexm using demos
RFC v2:
- basic working with minor issues during tests
RFC v1:
- inital revision

---
 package/Config.in          |  1 +
 package/powervr/Config.in  |  2 ++
 package/powervr/powervr.mk | 20 ++++++++++++++++++++
 3 files changed, 23 insertions(+)
 create mode 100644 package/powervr/Config.in
 create mode 100644 package/powervr/powervr.mk
package/Config.in +1 -0
index 7c24dab..6909142 100644
@@ -469,6 +469,7 @@ source "package/opengl/Config.in"
 source "package/pango/Config.in"
 source "package/pixman/Config.in"
 source "package/poppler/Config.in"
+source "package/powervr/Config.in"
 source "package/tiff/Config.in"
 source "package/wayland/Config.in"
 source "package/webkit/Config.in"
package/powervr/Config.in new file +2 -0
new file mode 100644
index 0000000..d09ce74
@@ -0,0 +1,2 @@
+config BR2_PACKAGE_HAS_POWERVR
+	bool
package/powervr/powervr.mk new file +20 -0
new file mode 100644
index 0000000..c6dd968
@@ -0,0 +1,20 @@
+################################################################################
+#
+# Virtual package for PowerVR driver 
+#
+################################################################################
+
+POWERVR_SOURCE =
+
+ifeq ($(BR2_PACKAGE_TI_GFX),y)
+POWERVR_DEPENDENCIES += ti-gfx
+endif
+
+ifeq ($(POWERVR_DEPENDENCIES),)
+define POWERVR_CONFIGURE_CMDS
+	echo "No PowerVR implementation selected. Configuration error."
+	exit 1
+endef
+endif
+
+$(eval $(generic-package))
Signature · 1 line
1.8.1.2
#1 lore raw

PATCH v5 2/3 ti-gfx: add new package

adds accelerated GPU support for the OMAP35xx, AM35xx, AM37xx, DM37xx, AM387x, C6A814x, AM389x, C6A816x, and AM335x platforms.

Cc Thomas Petazzoni <[email protected]>
Cc Sundareson, Prabindh <[email protected]>
Cc Peter Korsgaard <[email protected]>
Cc Sinan Akpolat <[email protected]>
---
 package/Config.in                              |   1 +
 package/opengl/libegl/libegl.mk                |   4 +
 package/opengl/libgles/libgles.mk              |   4 +
 package/ti-gfx/Config.in                       |  69 +++++++++
 package/ti-gfx/S80ti-gfx                       |  54 +++++++
 package/ti-gfx/egl.pc                          |  12 ++
 package/ti-gfx/esrev.sh                        |  59 ++++++++
 package/ti-gfx/glesv2.pc                       |  12 ++
 package/ti-gfx/powervr.ini                     |   2 +
 package/ti-gfx/ti-gfx-km_install_modules.patch |  19 +++
 package/ti-gfx/ti-gfx-newclkapi.patch          | 143 ++++++++++++++++++
 package/ti-gfx/ti-gfx.mk                       | 195 +++++++++++++++++++++++++
 12 files changed, 574 insertions(+)
 create mode 100644 package/ti-gfx/Config.in
 create mode 100644 package/ti-gfx/S80ti-gfx
 create mode 100644 package/ti-gfx/egl.pc
 create mode 100644 package/ti-gfx/esrev.sh
 create mode 100644 package/ti-gfx/glesv2.pc
 create mode 100644 package/ti-gfx/powervr.ini
 create mode 100644 package/ti-gfx/ti-gfx-km_install_modules.patch
 create mode 100644 package/ti-gfx/ti-gfx-newclkapi.patch
 create mode 100644 package/ti-gfx/ti-gfx.mk
package/Config.in +1 -0
index 6909142..35846cc 100644
@@ -292,6 +292,7 @@ source "package/snowball-hdmiservice/Config.in"
 source "package/sredird/Config.in"
 source "package/statserial/Config.in"
 source "package/sysstat/Config.in"
+source "package/ti-gfx/Config.in"
 source "package/ti-utils/Config.in"
 source "package/uboot-tools/Config.in"
 source "package/udev/Config.in"
package/opengl/libegl/libegl.mk +4 -0
index bd8040d..00e1f19 100644
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 LIBEGL_DEPENDENCIES += rpi-userland
 endif
 
+ifeq ($(BR2_PACKAGE_TI_GFX),y)
+LIBEGL_DEPENDENCIES += ti-gfx
+endif
+
 ifeq ($(LIBEGL_DEPENDENCIES),)
 define LIBEGL_CONFIGURE_CMDS
 	echo "No libEGL implementation selected. Configuration error."
package/opengl/libgles/libgles.mk +4 -0
index a0048a7..d2fe11b 100644
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 LIBGLES_DEPENDENCIES += rpi-userland
 endif
 
+ifeq ($(BR2_PACKAGE_TI_GFX),y)
+LIBGLES_DEPENDENCIES += ti-gfx
+endif
+
 ifeq ($(LIBGLES_DEPENDENCIES),)
 define LIBGLES_CONFIGURE_CMDS
 	echo "No libGLES implementation selected. Configuration error."
package/ti-gfx/Config.in new file +69 -0

69 lines not on this page · raw message

package/ti-gfx/S80ti-gfx new file +54 -0

54 lines not on this page · raw message

package/ti-gfx/egl.pc new file +12 -0
new file mode 100644
index 0000000..c06fed1
@@ -0,0 +1,12 @@
+prefix=/usr/
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: egl
+Description: TI Graphics SDK implementation of EGL
+Version: 1.9.2188537
+Requires:
+Libs: -L${libdir} -lEGL -lGLESv2 -lIMGegl
+Cflags: -I{includedir}/EGL/ -I${includedir}
+
package/ti-gfx/esrev.sh new file +59 -0

59 lines not on this page · raw message

package/ti-gfx/glesv2.pc new file +12 -0
new file mode 100644
index 0000000..e1505f2
@@ -0,0 +1,12 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: glesv2
+Description: TI Graphics SDK implementation of OpenGL ESv2
+Version: 1.9.2188537
+Requires:
+Libs: -L${libdir} -lGLESv2 -lGLES_CM -lsrv_um -lusc -lEGL -lIMGegl
+Cflags: -I${includedir}/GLES2
+
package/ti-gfx/powervr.ini new file +2 -0
new file mode 100644
index 0000000..8d2d853
@@ -0,0 +1,2 @@
+[default]
+WindowSystem=libpvrPVR2D_FRONTWSEGL.so
package/ti-gfx/ti-gfx-km_install_modules.patch new file +19 -0
new file mode 100644
index 0000000..2cf6e81
@@ -0,0 +1,19 @@
+Patch to add modules_install target to the modules makefile.  This makes
+installation a little easier.
+
+Signed-off-by: Spenser Gilliland <[email protected]>
+----
+Index: ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile
+===================================================================
+--- ti-gfx-4_09_00_01.orig/GFX_Linux_KM/Makefile	2013-03-07 11:00:11.000000000 -0600
++++ ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile	2013-05-23 01:36:29.356676281 -0500
+@@ -479,6 +479,9 @@
+ all:
+ 	$(MAKE) -C $(KERNELDIR) M=`pwd` $*
+ 
++install:
++	$(MAKE) -C $(KERNELDIR) M=`pwd` modules_install
++
+ clean:
+ 	@find . -name "*.o" -exec rm -r {} \;
+ 	@find . -name "*.ko" -exec rm -r {} \;
package/ti-gfx/ti-gfx-newclkapi.patch new file +143 -0

143 lines not on this page · raw message

package/ti-gfx/ti-gfx.mk new file +195 -0

195 lines not on this page · raw message

Signature · 1 line
1.8.1.2
#2 lore raw

PATCH v5 2/3 ti-gfx: add new package

Dear Spenser Gilliland,

package/opengl/libegl/libegl.mk ifeq ($(BR2_PACKAGE_RPI_USERLAND),y) · line 15

Quoted 11 lines · Spenser Gilliland
package/opengl/libegl/libegl.mk +3 -0
index bd8040d..00e1f19 100644
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 LIBEGL_DEPENDENCIES += rpi-userland
 endif
 
+ifeq ($(BR2_PACKAGE_TI_GFX),y)
+LIBEGL_DEPENDENCIES += ti-gfx
+endif

No, if you have introduced the powervr virtual package, then libegl should not directly depend on ti-gfx, but instead libegl should depend on powervr, which itself will depend on ti-gfx.

Generally speaking, I think this introduction of the powervr virtual package is a bit unfortunate for now. Your ti-gfx package was almost ready for merging, and now it's no longer the case. We should stop making further feature additions, and focus on getting ti-gfx merged. Later on, *when* a second PowerVR package appears, it would have been time to do the necessary work.

But well, now that you've starting doing it, I guess it doesn't make sense to go backward and remove it again. But then please do it cleanly:

* PATCH 1: add the virtual powervr package, with the necessary changes to libegl.mk and libgles2.mk, to add the libegl -> powervr and libgles2 -> powervr dependencies.

* PATCH 2: add the ti-gfx package, with the necessary change to powervr.mk to add the powervr -> ti-gfx dependency.

Other than that, I think the package is ready now.

Thanks!

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#3 lore raw

PATCH v5 2/3 ti-gfx: add new package

Quoted 12 lines · Thomas Petazzoni

Dear Spenser Gilliland,

Quoted 8 lines · Spenser Gilliland
package/opengl/libegl/libegl.mk +0 -0
index bd8040d..00e1f19 100644
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 LIBEGL_DEPENDENCIES += rpi-userland
 endif
 
Quoted 7 lines

package/opengl/libegl/libegl.mk ifeq ($(BR2_PACKAGE_RPI_USERLAND),y) · line 15

Quoted 3 lines
package/opengl/libegl/libegl.mk +3 -0
+ifeq ($(BR2_PACKAGE_TI_GFX),y)
+LIBEGL_DEPENDENCIES += ti-gfx
+endif

No, if you have introduced the powervr virtual package, then libegl should not directly depend on ti-gfx, but instead libegl should depend on powervr, which itself will depend on ti-gfx.

I don't believe this to be correct. There is not specific dependency chain as each powervr package implements its own set of egl/gles/vg. The point of the PowerVR package is for each package that takes advantage of PowerVR specific features. IE. QT4.

Therefore, ti-gfx should depend on libgles, libegl,and powervr.

Thanks,
Spenser

--
Spenser Gilliland
Computer Engineer
Doctoral Candidate

#4 lore raw

PATCH v5 2/3 ti-gfx: add new package

Dear Spenser Gilliland,

Quoted 10 lines · Spenser Gilliland
Quoted 3 lines

No, if you have introduced the powervr virtual package, then libegl should not directly depend on ti-gfx, but instead libegl should depend on powervr, which itself will depend on ti-gfx.

I don't believe this to be correct. There is not specific dependency chain as each powervr package implements its own set of egl/gles/vg. The point of the PowerVR package is for each package that takes advantage of PowerVR specific features. IE. QT4.

Therefore, ti-gfx should depend on libgles, libegl,and powervr.

I guess you mean "should provide" and not "should depend". But ok, as discussed on IRC, I see what you mean. We consider libegl, libgles2 and powervr to be separate virtual features, and it happens that ti-gfx provides all of them.

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#5 lore raw

PATCH v5 2/3 ti-gfx: add new package

In reply to Spenser Gilliland
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"S" == Spenser Gilliland <[email protected]> writes:

S> adds accelerated GPU support for the OMAP35xx, AM35xx, AM37xx, DM37xx, S> AM387x, C6A814x, AM389x, C6A816x, and AM335x platforms.

Nit: I think the C6Ax devices are more commonly referred to as DMx.

S> +++ b/package/ti-gfx/Config.in
S> @@ -0,0 +1,69 @@
S> +config BR2_PACKAGE_TI_GFX
S> + bool "ti-gfx"
S> + select BR2_PACKAGE_HAS_OPENGL_EGL
S> + select BR2_PACKAGE_HAS_OPENGL_ES
S> + select BR2_PACKAGE_HAS_POWERVR
S> + depends on BR2_LINUX_KERNEL && BR2_TOOLCHAIN_USES_GLIBC && BR2_arm
S> + help
S> + Graphics libraries for TI boards.
S> +
S> + http://downloads.ti.com/dsps/dsps_public_sw/gfxsdk/
S> +
S> +if BR2_PACKAGE_TI_GFX
S> +
S> +config BR2_PACKAGE_TI_GFX_DEBUG
S> + bool "enable debug support"
S> + help
S> + Turns on debugging in the kernel module, install libraries built with
S> + debugging enabled, installs various tests and installs esrev script.
S> +
S> +config BR2_PACKAGE_TI_GFX_DEMOS
S> + bool "install demos"
S> + default y
S> + help
S> + Install the OGLES2ChameleonMan and OGLES2MagicLantern demos
S> +
S> +config BR2_PACKAGE_TI_GFX_EGLIMAGE
S> + bool "install eglimage version of libraries"
S> + help
S> + Installs OpenGL libaries which support the eglimage api.
S> +
S> +config BR2_PACKAGE_TI_GFX_HARD_FLOAT
S> + bool "use hard float binaries"
S> + help
S> + Install hard float binaries (required if using a hard float toolchain)
S> +
S> +choice
S> + prompt "Target"
S> + default BR2_PACKAGE_TI_GFX_ES3
S> + help
S> + Select the SOC for which you would like to install drivers. Please

Trailing space (here and elsewhere).

S> diff --git a/package/ti-gfx/S80ti-gfx b/package/ti-gfx/S80ti-gfx S> new file mode 100644
S> index 0000000..ee2250e
S> --- /dev/null
S> +++ b/package/ti-gfx/S80ti-gfx
S> @@ -0,0 +1,54 @@
S> +#!/bin/sh
S> +
S> +start() {
S> + echo "ti-gfx: starting pvr driver"
S> +
S> + BITSPERPIXEL="$(fbset | awk '/geom/ {print $6}')"
S> + YRES="$(fbset | awk '/geom/ {print $3}')"
S> + # Set RGBA ordering to something the drivers like
S> + if [ "$BITSPERPIXEL" = "32" ] ; then
S> + fbset -rgba 8/16,8/8,8/0,8/24
S> + fi
S> + # Try to enable triple buffering when there's enough VRAM
S> + fbset -vyres $(( YRES*3 ))
S> +
S> + modprobe omaplfb
S> + modprobe bufferclass_ti

Aren't you missing a modprobe of the pvr module itself?

S> +
S> + pvr_maj=$(awk '$2=="pvrsrvkm" { print $1; }' /proc/devices)
S> + if [ -e /dev/pvrsrvkm ] ; then
S> + rm -f /dev/pvrsrvkm
S> + fi

There's not really any reason to do the check as you are using rm -f

S> +
S> + mknod /dev/pvrsrvkm c $pvr_maj 0
S> + chmod 666 /dev/pvrsrvkm

666 seems like a security issue. As things run as root by default, perhaps we should just use 600?

S> +
S> + if ! /usr/bin/pvrsrvctl --start --no-module; then
S> + echo "ti-gfx: unable to start server"
S> + fi
S> +}

Trailing spaces.

S> +
S> +stop() {
S> + echo "ti-gfx: stopping pvr driver"
S> +
S> + rmmod bufferclass_ti
S> + rmmod omaplfb
S> + rmmod pvrsrvkm
S> +}
S> +
S> +case "$1" in

And here as well.

S> diff --git a/package/ti-gfx/esrev.sh b/package/ti-gfx/esrev.sh S> new file mode 100644
S> index 0000000..bd8b64e
S> --- /dev/null
S> +++ b/package/ti-gfx/esrev.sh
S> @@ -0,0 +1,59 @@
S> +#!/bin/sh
S> +
S> +# Debug script to determine proper ES revision for the current board. The

Trailing spaces.

S> +++ b/package/ti-gfx/ti-gfx.mk
S> @@ -0,0 +1,195 @@
S> +############################################################################### S> +#
S> +# ti-gfx

Trailing spaces

S> +#
S> +###############################################################################
S> +
S> +TI_GFX_VERSION = 4_09_00_01
S> +TI_GFX_SO_VERSION = 1.9.2188537
S> +
S> +ifeq ($(BR2_PACKAGE_TI_GFX_HARD_FLOAT),y)
S> +TI_GFX_SOURCE = Graphics_SDK_setuplinux_$(TI_GFX_VERSION)_hardfp_minimal_demos.bin
S> +else
S> +TI_GFX_SOURCE = Graphics_SDK_setuplinux_$(TI_GFX_VERSION)_minimal_demos.bin
S> +endif
S> +
S> +TI_GFX_SITE = http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/$(TI_GFX_VERSION)/exports/
S> +TI_GFX_LICENSE = Technology / Software Publicly Available
S> +TI_GFX_LICENSE_FILES = TSPA.txt
S> +TI_GFX_INSTALL_STAGING = YES
S> +
S> +TI_GFX_DEPENDENCIES = linux
S> +
S> +ifeq ($(BR2_PACKAGE_TI_GFX_ES3),y)
S> +TI_GFX_OMAPES = 3.x
S> +TI_GFX_PLATFORM = omap3
S> +endif
S> +ifeq ($(BR2_PACKAGE_TI_GFX_ES5),y)
S> +TI_GFX_OMAPES = 5.x
S> +TI_GFX_PLATFORM = omap3630

Trailing spaces.

S> +endif
S> +ifeq ($(BR2_PACKAGE_TI_GFX_ES6),y)
S> +TI_GFX_OMPAES = 6.x
S> +TI_GFX_PLATFORM = ti81xx

Trailing spaces.

S> +endif
S> +ifeq ($(BR2_PACKAGE_TI_GFX_ES8),y)
S> +TI_GFX_OMAPES = 8.x
S> +TI_GFX_PLATFORM = ti335x
S> +endif
S> +
S> +ifeq ($(BR2_PACKAGE_TI_GFX_DEBUG),y)
S> +TI_GFX_DEBUG_LIB = dbg
S> +TI_GFX_DEBUG_KM = debug
S> +else
S> +TI_GFX_DEBUG_LIB = rel
S> +TI_GFX_DEBUG_KM = release
S> +endif
S> +
S> +TI_GFX_BIN_PATH = gfx_$(TI_GFX_DEBUG_LIB)_es$(TI_GFX_OMAPES) S> +
S> +TI_GFX_KM_MAKE_OPTS = \
S> + $(LINUX_MAKE_FLAGS) \
S> + BUILD=$(TI_GFX_DEBUG_KM) \
S> + TI_PLATFORM=$(TI_GFX_PLATFORM) \
S> + OMAPES=$(TI_GFX_OMAPES) \
S> + SUPPORT_XORG=0 \
S> + KERNELDIR=$(LINUX_DIR)
S> +
S> +TI_GFX_DEMO_MAKE_OPTS = \
S> + PLATFORM=LinuxARMV7 \
S> + X11BUILD=0 \
S> + PLAT_CC="$(TARGET_CC)" \
S> + PLAT_CPP="$(TARGET_CXX)" \
S> + PLAT_AR="$(TARGET_AR)"
S> +
S> +# The only required binary is pvrsrvctl all others are optional S> +TI_GFX_BIN = pvrsrvctl
S> +
S> +ifeq ($(BR2_PACKAGE_TI_GFX_DEBUG),y)
S> +TI_GFX_BIN += \
S> + eglinfo ews_server ews_server_es2 ews_test_gles1 ews_test_gles2 \
S> + ews_test_swrender gles1test1 gles2test1 pvr2d_test services_test \
S> + sgx_blit_test sgx_clipblit_test sgx_flip_test sgx_init_test \
S> + sgx_render_flip_test xeglinfo xgles1test1 xgles2test1 xmultiegltest
S> +endif
S> +
S> +TI_GFX_LIBS = \
S> + libews libpvr2d libpvrEWS_WSEGL libpvrPVR2D_BLITWSEGL libpvrPVR2D_DRIWSEGL \
S> + libpvrPVR2D_FLIPWSEGL libpvrPVR2D_FRONTWSEGL libpvrPVR2D_LINUXFBWSEGL \
S> + libPVRScopeServices libsrv_init libsrv_um libusc pvr_drv
S> +
S> +TI_GFX_EGLIMAGE_LIBS = \
S> + libEGL libGLES_CM libGLESv2 libglslcompiler libIMGegl
S> +
S> +TI_GFX_DEMOS = ChameleonMan MagicLantern
S> +TI_GFX_DEMOS_LOC = GFX_Linux_SDK/OGLES2/SDKPackage/Demos S> +TI_GFX_DEMOS_MAKE_LOC = OGLES2/Build/LinuxGeneric
S> +TI_GFX_DEMOS_BIN_LOC = OGLES2/Build/LinuxARMV7/ReleaseRaw/ S> +
S> +TI_GFX_HDR_DIRS = OGLES2/EGL OGLES2/EWS OGLES2/GLES2 OGLES2/KHR \
S> + OGLES/GLES bufferclass_ti/ pvr2d/ wsegl/
S> +
S> +define TI_GFX_EXTRACT_CMDS

Trailing spaces.

S> + $(RM) -rf $(TI_GFX_DIR)
S> + chmod +x $(DL_DIR)/$(TI_GFX_SOURCE)
S> + printf "Y\nY\n qY\n\n" | $(DL_DIR)/$(TI_GFX_SOURCE) \
S> + --prefix $(@D) \
S> + --mode console
S> +endef
S> +
S> +define TI_GFX_BUILD_KM_CMDS
S> + $(MAKE) $(TI_GFX_KM_MAKE_OPTS) -C $(@D)/GFX_Linux_KM all
S> +endef
S> +
S> +define TI_GFX_BUILD_DEMO_CMDS
S> + $(foreach demo, $(TI_GFX_DEMOS), \
S> + $(TARGET_MAKE_ENV) $(MAKE1) -C \
S> + $(@D)/$(TI_GFX_DEMOS_LOC)/$(demo)/$(TI_GFX_DEMOS_MAKE_LOC) \
S> + $(TI_GFX_DEMO_MAKE_OPTS) all
S> + )
S> +endef

This should be inside a ifeq ($(BR2_PACKAGE_TI_GFX_DEMOS),y) conditional.

S> +
S> +define TI_GFX_BUILD_CMDS
S> + $(TI_GFX_BUILD_KM_CMDS)
S> + $(TI_GFX_BUILD_DEMO_CMDS)
S> +endef
S> +
S> +# Install libs
S> +# argument 1 is the location to install to (e.g. STAGING_DIR, TARGET_DIR) S> +define TI_GFX_INSTALL_LIBS
S> + $(foreach lib,$(TI_GFX_LIBS),
S> + $(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib).so \
S> + $(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION); \
S> + ln -sf $(lib).so.$(TI_GFX_SO_VERSION) \
S> + $(1)/usr/lib/$(lib).so
S> + )
S> + $(foreach lib,$(TI_GFX_EGLIMAGE_LIBS),
S> + $(if $(BR2_PACKAGE_TI_GFX_EGLIMAGE),
S> + $(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib)_eglimage.so \
S> + $(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION);
S> + ,
S> + $(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib).so \

Trailing spaces.

S> + $(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION);
S> + )
S> + ln -sf $(lib).so.$(TI_GFX_SO_VERSION) \
S> + $(1)/usr/lib/$(lib).so
S> + )
S> +endef
S> +
S> +define TI_GFX_INSTALL_STAGING_CMDS
S> + $(foreach incdir,$(TI_GFX_HDR_DIRS),
S> + $(INSTALL) -d $(STAGING_DIR)/usr/include/$(notdir $(incdir)); \
S> + $(INSTALL) -D -m 0644 $(@D)/include/$(incdir)/*.h \
S> + $(STAGING_DIR)/usr/include/$(notdir $(incdir))/
S> + )
S> + $(call TI_GFX_INSTALL_LIBS,$(STAGING_DIR))
S> +

Trailing spaces.

S> + $(INSTALL) -D -m 0644 package/ti-gfx/egl.pc $(STAGING_DIR)/usr/lib/pkgconfig/
S> + $(INSTALL) -D -m 0644 package/ti-gfx/glesv2.pc $(STAGING_DIR)/usr/lib/pkgconfig/
S> +endef
S> +
S> +define TI_GFX_INSTALL_KM_CMDS
S> + $(MAKE) $(TI_GFX_KM_MAKE_OPTS) -C $(@D)/GFX_Linux_KM install
S> +endef
S> +
S> +define TI_GFX_INSTALL_BINS_CMDS
S> + $(foreach bin,$(TI_GFX_BIN),
S> + $(INSTALL) -D -m 0755 $(@D)/$(TI_GFX_BIN_PATH)/$(bin) \
S> + $(TARGET_DIR)/usr/bin/$(bin)
S> + )
S> + $(if $(BR2_PACKAGE_TI_GFX_DEBUG),
S> + $(INSTALL) -D -m 0755 package/ti-gfx/esrev.sh \
S> + $(TARGET_DIR)/usr/bin/esrev

You could perhaps argue that a script like esrev fiddling around with devmem should rather be installed into usr/sbin.

Signature · 1 line
Bye, Peter Korsgaard
#6 lore raw

PATCH v5 2/3 ti-gfx: add new package

Peter,

I'll get this fixed up immediately and get it back to you. Thanks for taking the time to review it.

Quoted 6 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"S" == Spenser Gilliland <[email protected]> writes:

S> adds accelerated GPU support for the OMAP35xx, AM35xx, AM37xx, DM37xx, S> AM387x, C6A814x, AM389x, C6A816x, and AM335x platforms.

Nit: I think the C6Ax devices are more commonly referred to as DMx.

Will fix.

Quoted 42 lines

S> +++ b/package/ti-gfx/Config.in
S> @@ -0,0 +1,69 @@
S> +config BR2_PACKAGE_TI_GFX

 S> +   bool "ti-gfx"
 S> +   select BR2_PACKAGE_HAS_OPENGL_EGL
 S> +   select BR2_PACKAGE_HAS_OPENGL_ES
 S> +   select BR2_PACKAGE_HAS_POWERVR
 S> +   depends on BR2_LINUX_KERNEL && BR2_TOOLCHAIN_USES_GLIBC && BR2_arm
 S> +   help
 S> +     Graphics libraries for TI boards.
 S> +
 S> +     http://downloads.ti.com/dsps/dsps_public_sw/gfxsdk/
 S> +
 S> +if BR2_PACKAGE_TI_GFX
 S> +
 S> +config BR2_PACKAGE_TI_GFX_DEBUG
 S> +   bool "enable debug support"
 S> +   help
 S> +     Turns on debugging in the kernel module, install libraries built with
 S> +     debugging enabled, installs various tests and installs esrev script.
 S> +
 S> +config BR2_PACKAGE_TI_GFX_DEMOS
 S> +   bool "install demos"
 S> +   default y
 S> +   help
 S> +     Install the OGLES2ChameleonMan and OGLES2MagicLantern demos
 S> +
 S> +config BR2_PACKAGE_TI_GFX_EGLIMAGE
 S> +   bool "install eglimage version of libraries"
 S> +   help
 S> +     Installs OpenGL libaries which support the eglimage api.
 S> +
 S> +config BR2_PACKAGE_TI_GFX_HARD_FLOAT
 S> +   bool "use hard float binaries"
 S> +   help
 S> +     Install hard float binaries (required if using a hard float toolchain)
 S> +
 S> +choice
 S> +   prompt "Target"
 S> +   default BR2_PACKAGE_TI_GFX_ES3
 S> +   help
Quoted 3 lines

S> + Select the SOC for which you would like to install drivers. Please

Trailing space (here and elsewhere).

All trailing white space issues fixed.

Quoted 20 lines

S> diff --git a/package/ti-gfx/S80ti-gfx b/package/ti-gfx/S80ti-gfx S> new file mode 100644
S> index 0000000..ee2250e
S> --- /dev/null
S> +++ b/package/ti-gfx/S80ti-gfx
S> @@ -0,0 +1,54 @@
S> +#!/bin/sh
S> +
S> +start() {
S> + echo "ti-gfx: starting pvr driver"
S> +

 S> +   BITSPERPIXEL="$(fbset | awk '/geom/ {print $6}')"
 S> +   YRES="$(fbset | awk '/geom/ {print $3}')"
 S> +   # Set RGBA ordering to something the drivers like
 S> +   if [ "$BITSPERPIXEL" = "32" ] ; then
 S> +           fbset -rgba 8/16,8/8,8/0,8/24
 S> +   fi
 S> +   # Try to enable triple buffering when there's enough VRAM
 S> +   fbset -vyres $(( YRES*3 ))
Quoted 5 lines

S> +
S> + modprobe omaplfb
S> + modprobe bufferclass_ti

Aren't you missing a modprobe of the pvr module itself?

Modprobing omaplfb will automatically load pvrsrvkm but I've added an explicit modprobe pvrsrvkm just to avoid any confusion.

Quoted 7 lines

S> +
S> + pvr_maj=$(awk '$2=="pvrsrvkm" { print $1; }' /proc/devices)
S> + if [ -e /dev/pvrsrvkm ] ; then
S> + rm -f /dev/pvrsrvkm
S> + fi

There's not really any reason to do the check as you are using rm -f

Will fix.

Quoted 7 lines

S> +
S> + mknod /dev/pvrsrvkm c $pvr_maj 0
S> + chmod 666 /dev/pvrsrvkm

666 seems like a security issue. As things run as root by default, perhaps we should just use 600?

It's installed with 666 permissions in most distros and by the default install method. However, It makes sense to lock this down to the root user only or maybe a group. I'm going to lock it down to the video group.

Quoted 158 lines

S> +
S> + if ! /usr/bin/pvrsrvctl --start --no-module; then
S> + echo "ti-gfx: unable to start server"
S> + fi
S> +}

Trailing spaces.

S> +
S> +stop() {
S> + echo "ti-gfx: stopping pvr driver"
S> +

 S> +   rmmod bufferclass_ti
 S> +   rmmod omaplfb
 S> +   rmmod pvrsrvkm

S> +}
S> +
S> +case "$1" in

And here as well.

S> diff --git a/package/ti-gfx/esrev.sh b/package/ti-gfx/esrev.sh S> new file mode 100644
S> index 0000000..bd8b64e
S> --- /dev/null
S> +++ b/package/ti-gfx/esrev.sh
S> @@ -0,0 +1,59 @@
S> +#!/bin/sh
S> +
S> +# Debug script to determine proper ES revision for the current board. The

Trailing spaces.

S> +++ b/package/ti-gfx/ti-gfx.mk
S> @@ -0,0 +1,195 @@
S> +############################################################################### S> +#
S> +# ti-gfx

Trailing spaces

S> +#
S> +###############################################################################
S> +
S> +TI_GFX_VERSION = 4_09_00_01
S> +TI_GFX_SO_VERSION = 1.9.2188537
S> +
S> +ifeq ($(BR2_PACKAGE_TI_GFX_HARD_FLOAT),y)
S> +TI_GFX_SOURCE = Graphics_SDK_setuplinux_$(TI_GFX_VERSION)_hardfp_minimal_demos.bin
S> +else
S> +TI_GFX_SOURCE = Graphics_SDK_setuplinux_$(TI_GFX_VERSION)_minimal_demos.bin
S> +endif
S> +
S> +TI_GFX_SITE = http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/$(TI_GFX_VERSION)/exports/
S> +TI_GFX_LICENSE = Technology / Software Publicly Available
S> +TI_GFX_LICENSE_FILES = TSPA.txt
S> +TI_GFX_INSTALL_STAGING = YES
S> +
S> +TI_GFX_DEPENDENCIES = linux
S> +
S> +ifeq ($(BR2_PACKAGE_TI_GFX_ES3),y)
S> +TI_GFX_OMAPES = 3.x
S> +TI_GFX_PLATFORM = omap3
S> +endif
S> +ifeq ($(BR2_PACKAGE_TI_GFX_ES5),y)
S> +TI_GFX_OMAPES = 5.x
S> +TI_GFX_PLATFORM = omap3630

Trailing spaces.

S> +endif
S> +ifeq ($(BR2_PACKAGE_TI_GFX_ES6),y)
S> +TI_GFX_OMPAES = 6.x
S> +TI_GFX_PLATFORM = ti81xx

Trailing spaces.

S> +endif
S> +ifeq ($(BR2_PACKAGE_TI_GFX_ES8),y)
S> +TI_GFX_OMAPES = 8.x
S> +TI_GFX_PLATFORM = ti335x
S> +endif
S> +
S> +ifeq ($(BR2_PACKAGE_TI_GFX_DEBUG),y)
S> +TI_GFX_DEBUG_LIB = dbg
S> +TI_GFX_DEBUG_KM = debug
S> +else
S> +TI_GFX_DEBUG_LIB = rel
S> +TI_GFX_DEBUG_KM = release
S> +endif
S> +
S> +TI_GFX_BIN_PATH = gfx_$(TI_GFX_DEBUG_LIB)_es$(TI_GFX_OMAPES) S> +
S> +TI_GFX_KM_MAKE_OPTS = \

 S> +   $(LINUX_MAKE_FLAGS) \
 S> +   BUILD=$(TI_GFX_DEBUG_KM) \
 S> +   TI_PLATFORM=$(TI_GFX_PLATFORM) \
 S> +   OMAPES=$(TI_GFX_OMAPES) \
 S> +   SUPPORT_XORG=0 \
 S> +   KERNELDIR=$(LINUX_DIR)
 S> +
 S> +TI_GFX_DEMO_MAKE_OPTS = \
 S> +   PLATFORM=LinuxARMV7 \
 S> +   X11BUILD=0 \
 S> +   PLAT_CC="$(TARGET_CC)" \
 S> +   PLAT_CPP="$(TARGET_CXX)" \
 S> +   PLAT_AR="$(TARGET_AR)"
 S> +
 S> +# The only required binary is pvrsrvctl all others are optional
 S> +TI_GFX_BIN = pvrsrvctl
 S> +
 S> +ifeq ($(BR2_PACKAGE_TI_GFX_DEBUG),y)
 S> +TI_GFX_BIN += \
 S> +   eglinfo ews_server ews_server_es2 ews_test_gles1 ews_test_gles2 \
 S> +   ews_test_swrender gles1test1 gles2test1 pvr2d_test services_test \
 S> +   sgx_blit_test sgx_clipblit_test sgx_flip_test sgx_init_test \
 S> +   sgx_render_flip_test xeglinfo xgles1test1 xgles2test1 xmultiegltest
 S> +endif
 S> +
 S> +TI_GFX_LIBS = \
 S> +   libews libpvr2d libpvrEWS_WSEGL libpvrPVR2D_BLITWSEGL libpvrPVR2D_DRIWSEGL \
 S> +   libpvrPVR2D_FLIPWSEGL libpvrPVR2D_FRONTWSEGL libpvrPVR2D_LINUXFBWSEGL \
 S> +   libPVRScopeServices libsrv_init libsrv_um libusc pvr_drv

S> +
S> +TI_GFX_EGLIMAGE_LIBS = \
S> + libEGL libGLES_CM libGLESv2 libglslcompiler libIMGegl
S> +
S> +TI_GFX_DEMOS = ChameleonMan MagicLantern
S> +TI_GFX_DEMOS_LOC = GFX_Linux_SDK/OGLES2/SDKPackage/Demos S> +TI_GFX_DEMOS_MAKE_LOC = OGLES2/Build/LinuxGeneric
S> +TI_GFX_DEMOS_BIN_LOC = OGLES2/Build/LinuxARMV7/ReleaseRaw/ S> +
S> +TI_GFX_HDR_DIRS = OGLES2/EGL OGLES2/EWS OGLES2/GLES2 OGLES2/KHR \
S> + OGLES/GLES bufferclass_ti/ pvr2d/ wsegl/
S> +
S> +define TI_GFX_EXTRACT_CMDS

Trailing spaces.

 S> +   $(RM) -rf $(TI_GFX_DIR)
 S> +   chmod +x $(DL_DIR)/$(TI_GFX_SOURCE)
 S> +   printf "Y\nY\n qY\n\n" | $(DL_DIR)/$(TI_GFX_SOURCE) \

S> + --prefix $(@D) \
S> + --mode console
S> +endef
S> +
S> +define TI_GFX_BUILD_KM_CMDS
S> + $(MAKE) $(TI_GFX_KM_MAKE_OPTS) -C $(@D)/GFX_Linux_KM all
S> +endef
S> +
S> +define TI_GFX_BUILD_DEMO_CMDS
S> + $(foreach demo, $(TI_GFX_DEMOS), \
S> + $(TARGET_MAKE_ENV) $(MAKE1) -C \
S> + $(@D)/$(TI_GFX_DEMOS_LOC)/$(demo)/$(TI_GFX_DEMOS_MAKE_LOC) \
S> + $(TI_GFX_DEMO_MAKE_OPTS) all
S> + )
S> +endef

Quoted 1 line

This should be inside a ifeq ($(BR2_PACKAGE_TI_GFX_DEMOS),y) conditional.

Will fix.

Quoted 60 lines

S> +
S> +define TI_GFX_BUILD_CMDS
S> + $(TI_GFX_BUILD_KM_CMDS)
S> + $(TI_GFX_BUILD_DEMO_CMDS)
S> +endef
S> +
S> +# Install libs
S> +# argument 1 is the location to install to (e.g. STAGING_DIR, TARGET_DIR) S> +define TI_GFX_INSTALL_LIBS
S> + $(foreach lib,$(TI_GFX_LIBS),
S> + $(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib).so \
S> + $(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION); \
S> + ln -sf $(lib).so.$(TI_GFX_SO_VERSION) \
S> + $(1)/usr/lib/$(lib).so
S> + )
S> + $(foreach lib,$(TI_GFX_EGLIMAGE_LIBS),
S> + $(if $(BR2_PACKAGE_TI_GFX_EGLIMAGE),
S> + $(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib)_eglimage.so \
S> + $(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION);
S> + ,
S> + $(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib).so \

Trailing spaces.

S> + $(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION);
S> + )
S> + ln -sf $(lib).so.$(TI_GFX_SO_VERSION) \
S> + $(1)/usr/lib/$(lib).so
S> + )
S> +endef
S> +
S> +define TI_GFX_INSTALL_STAGING_CMDS
S> + $(foreach incdir,$(TI_GFX_HDR_DIRS),
S> + $(INSTALL) -d $(STAGING_DIR)/usr/include/$(notdir $(incdir)); \
S> + $(INSTALL) -D -m 0644 $(@D)/include/$(incdir)/*.h \
S> + $(STAGING_DIR)/usr/include/$(notdir $(incdir))/
S> + )
S> + $(call TI_GFX_INSTALL_LIBS,$(STAGING_DIR))
S> +

Trailing spaces.

S> + $(INSTALL) -D -m 0644 package/ti-gfx/egl.pc $(STAGING_DIR)/usr/lib/pkgconfig/
S> + $(INSTALL) -D -m 0644 package/ti-gfx/glesv2.pc $(STAGING_DIR)/usr/lib/pkgconfig/
S> +endef
S> +
S> +define TI_GFX_INSTALL_KM_CMDS
S> + $(MAKE) $(TI_GFX_KM_MAKE_OPTS) -C $(@D)/GFX_Linux_KM install
S> +endef
S> +
S> +define TI_GFX_INSTALL_BINS_CMDS
S> + $(foreach bin,$(TI_GFX_BIN),
S> + $(INSTALL) -D -m 0755 $(@D)/$(TI_GFX_BIN_PATH)/$(bin) \
S> + $(TARGET_DIR)/usr/bin/$(bin)
S> + )
S> + $(if $(BR2_PACKAGE_TI_GFX_DEBUG),
S> + $(INSTALL) -D -m 0755 package/ti-gfx/esrev.sh \
S> + $(TARGET_DIR)/usr/bin/esrev

Quoted 2 lines

You could perhaps argue that a script like esrev fiddling around with devmem should rather be installed into usr/sbin.

Will fix.

Thanks,
Spenser

--
Spenser Gilliland
Computer Engineer
Doctoral Candidate

#7 lore raw

PATCH v5 2/3 ti-gfx: add new package

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Spenser" == Spenser Gilliland <[email protected]> writes:

Spenser> Peter,
Spenser> I'll get this fixed up immediately and get it back to you. Thanks for Spenser> taking the time to review it.

Great! Besides these minor issues I think this series is good to go.

Signature · 1 line
Bye, Peter Korsgaard
#8 lore raw

PATCH v5 3/3 qt: add powervr and opengl

In reply to Spenser Gilliland

Use the following to test:
/usr/share/qt/examples/opengl/hellogl_es2/hellogl_es2 -qws -display powervr

Cc Thomas Petazzoni <[email protected]>
Cc Sundareson, Prabindh <[email protected]>
Cc Peter Korsgaard <[email protected]>
Cc Sinan Akpolat <[email protected]>
---
 package/qt/Config.gfx.in                |   5 +
 package/qt/Config.in                    |   8 +
 package/qt/powervr.ini                  |   2 +
 package/qt/qt-eglwsegl-use-system.patch | 802 ++++++++++++++++++++++++++++++++
 package/qt/qt.mk                        |  29 +-
 5 files changed, 845 insertions(+), 1 deletion(-)
 create mode 100644 package/qt/powervr.ini
 create mode 100644 package/qt/qt-eglwsegl-use-system.patch
package/qt/Config.gfx.in +5 -0
index dc70665..70adeef 100644
@@ -23,4 +23,9 @@ config BR2_PACKAGE_QT_GFX_DIRECTFB
 	depends on BR2_PACKAGE_DIRECTFB
 	bool "directFB"
 
+config BR2_PACKAGE_QT_GFX_POWERVR
+	depends on BR2_PACKAGE_QT_OPENGL_ES
+	depends on BR2_PACKAGE_HAS_POWERVR
+	bool "powervr"
+
 endmenu
package/qt/Config.in +8 -0
index 9f6e54d..35e8208 100644
@@ -281,6 +281,14 @@ config BR2_PACKAGE_QT_PHONON_BACKEND
 	help
 	  Build the platform Phonon plugin.
 	  If unsure, say n.
+
+config BR2_PACKAGE_QT_OPENGL_ES
+	bool "OpenGL ES v2.x support"
+	depends on BR2_PACKAGE_HAS_OPENGL_ES
+	depends on BR2_PACKAGE_HAS_OPENGL_EGL
+	help
+	  Enable the OpenGL ES v2.x support.
+
 endif
 
 config BR2_PACKAGE_QT_DBUS
package/qt/powervr.ini new file +2 -0
new file mode 100644
index 0000000..57863eb
@@ -0,0 +1,2 @@
+[default]
+WindowSystem=libpvrQWSWSEGL.so.1
package/qt/qt-eglwsegl-use-system.patch new file +802 -0

802 lines not on this page · raw message

package/qt/qt.mk +28 -1
index 9325b56..daade3c 100644
@@ -136,7 +136,11 @@ QT_DEPENDENCIES += directfb
 else
 QT_CONFIGURE_OPTS += -no-gfx-directfb
 endif
-
+ifeq ($(BR2_PACKAGE_QT_GFX_POWERVR),y)
+QT_CONFIGURE_OPTS += \
+	-plugin-gfx-powervr -D QT_NO_QWS_CURSOR -D QT_QWS_CLIENTBLIT
+QT_DEPENDENCIES += powervr
+endif
 
 ### Mouse drivers
 ifeq ($(BR2_PACKAGE_QT_MOUSE_PC),y)
@@ -313,6 +317,13 @@ else
 QT_CONFIGURE_OPTS += -no-openssl
 endif
 
+ifeq ($(BR2_PACKAGE_QT_OPENGL_ES),y)
+QT_CONFIGURE_OPTS += -opengl es2 -egl
+QT_DEPENDENCIES   += libgles libegl
+else
+QT_CONFIGURE_OPTS += -no-opengl
+endif
+
 # Qt SQL Drivers
 ifeq ($(BR2_PACKAGE_QT_SQL_MODULE),y)
 ifeq ($(BR2_PACKAGE_QT_IBASE),y)
@@ -564,6 +575,12 @@ endif
 ifeq ($(BR2_PACKAGE_QT_QT3SUPPORT),y)
 QT_INSTALL_LIBS    += Qt3Support
 endif
+ifeq ($(BR2_PACKAGE_QT_OPENGL_ES),y)
+QT_INSTALL_LIBS    += QtOpenGL
+endif
+ifeq ($(BR2_PACKAGE_QT_GFX_POWERVR),y)
+QT_INSTALL_LIBS    += pvrQWSWSEGL
+endif
 
 QT_CONF_FILE=$(HOST_DIR)/usr/bin/qt.conf
 
@@ -640,12 +657,22 @@ define QT_INSTALL_TARGET_FONTS_TTF
 endef
 endif
 
+ifeq ($(BR2_PACKAGE_QT_GFX_POWERVR),y)
+define QT_INSTALL_TARGET_POWERVR
+	# Note: this overwrites the default powervr.ini provided by the ti-gfx
+	# package.
+	$(INSTALL) -D -m 0644 package/qt/powervr.ini \
+		$(TARGET_DIR)/etc/powervr.ini
+endef
+endif
+
 define QT_INSTALL_TARGET_CMDS
 	$(QT_INSTALL_TARGET_LIBS)
 	$(QT_INSTALL_TARGET_PLUGINS)
 	$(QT_INSTALL_TARGET_IMPORTS)
 	$(QT_INSTALL_TARGET_FONTS)
 	$(QT_INSTALL_TARGET_FONTS_TTF)
+	$(QT_INSTALL_TARGET_POWERVR)
 endef
 
 define QT_CLEAN_CMDS
Signature · 1 line
1.8.1.2
#9 lore raw

PATCH v5 3/3 qt: add powervr and opengl

Dear Spenser Gilliland,

Quoted 8 lines · Spenser Gilliland

Use the following to test:
/usr/share/qt/examples/opengl/hellogl_es2/hellogl_es2 -qws -display powervr

Cc Thomas Petazzoni <[email protected]>
Cc Sundareson, Prabindh <[email protected]>
Cc Peter Korsgaard <[email protected]>
Cc Sinan Akpolat <[email protected]>
Quoted 5 lines
---
 package/qt/Config.gfx.in                |   5 +
 package/qt/Config.in                    |   8 +
 package/qt/powervr.ini                  |   2 +
 package/qt/qt-eglwsegl-use-system.patch | 802 ++++++++++++++++++++++++++++++++

In the patch set I had sent to you privately about Qt4/PowerVR, there was an additional patch, which was really necessary. Why did you remove it?

Thanks!

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#10 lore raw

PATCH v5 3/3 qt: add powervr and opengl

Thomas,

Quoted 9 lines
Quoted 5 lines
---
 package/qt/Config.gfx.in                |   5 +
 package/qt/Config.in                    |   8 +
 package/qt/powervr.ini                  |   2 +
 package/qt/qt-eglwsegl-use-system.patch | 802 ++++++++++++++++++++++++++++++++

In the patch set I had sent to you privately about Qt4/PowerVR, there was an additional patch, which was really necessary. Why did you remove it?

It's not removed; both patches are combined. They both solve the issue of fixing include paths. So, I didn't think it was necessary to keep them split.

Spenser

--
Spenser Gilliland
Computer Engineer
Doctoral Candidate

#11 lore raw

PATCH v5 3/3 qt: add powervr and opengl

Dear Spenser Gilliland,

Quoted 7 lines · Spenser Gilliland
Quoted 3 lines

In the patch set I had sent to you privately about Qt4/PowerVR, there was an additional patch, which was really necessary. Why did you remove it?

It's not removed; both patches are combined. They both solve the issue of fixing include paths. So, I didn't think it was necessary to keep them split.

Ok, thanks for the precision!

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#12 lore raw

PATCH v5 3/3 qt: add powervr and opengl

In reply to Spenser Gilliland
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Spenser" == Spenser Gilliland <[email protected]> writes:

Spenser> Use the following to test:
Spenser> /usr/share/qt/examples/opengl/hellogl_es2/hellogl_es2 -qws -display powervr

Small issue that I just noticed:

Spenser> +++ b/package/qt/qt-eglwsegl-use-system.patch
Spenser> @@ -0,0 +1,802 @@
Spenser> +Patch to remove obslete powervr headers and instead use the headers provided

s/obslete/obsolete/

Otherwise it looks good.

Signature · 1 line
Bye, Peter Korsgaard
#13 lore raw

PATCH v5 1/3 powervr: add powervr virtual package

In reply to Spenser Gilliland

Dear Spenser Gilliland,

Quoted 26 lines · Spenser Gilliland
Cc Thomas Petazzoni <[email protected]>
Cc Sundareson, Prabindh <[email protected]>
Cc Peter Korsgaard <[email protected]>
Cc Sinan Akpolat <[email protected]>

---
v5:
- Fixed build issues on hard float (and non-CS toolchains)
- added powervr virtual package
v4:
- Fix header issue with qt.
- Add eglimage version installation.
v3:
- integrate reviews from thomas.
- Add qt patch
v2:
- Take into account reviews.
- Simplfy init script.
- Fix header installation.
v1:
- Added .pc files
- all review issues addressed
RFC v3:
- all reviews addressed
- added demos

Quoted 8 lines

- added hard float (not runtime tested)
- added init script
- added SGX detection script (untested)
- tested on beaglexm using demos
RFC v2:
- basic working with minor issues during tests
RFC v1:
- inital revision

Not need to resend your patch set for this, but when a patch set has multiple patches and the changelog covers all the patches, the changelog is expected to be in a cover letter separated from the patches themselves.

For this patch:

package/powervr/powervr.mk line 11

Quoted 3 lines
package/powervr/powervr.mk new file +3 -0
+ifeq ($(BR2_PACKAGE_TI_GFX),y)
+POWERVR_DEPENDENCIES += ti-gfx
+endif

Technically, this part should have been in the next patch, because when only 1/3 is applied, the ti-gfx package isn't there yet. But ok, we don't care too much.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com