diff --git a/device/device-pine-a64lts/APKBUILD b/device/device-pine-a64lts/APKBUILD index baf84b2dc..32256b402 100644 --- a/device/device-pine-a64lts/APKBUILD +++ b/device/device-pine-a64lts/APKBUILD @@ -2,13 +2,13 @@ pkgname="device-pine-a64lts" pkgdesc="PINE A64-LTS" pkgver=0.2 -pkgrel=0 +pkgrel=1 url="https://postmarketos.org" license="MIT" arch="aarch64" options="!check !archcheck" subpackages="$pkgname-nonfree-firmware:nonfree_firmware" -depends="postmarketos-base linux-postmarketos-allwinner mesa-dri-swrast u-boot-pine64 uboot-tools" +depends="postmarketos-base linux-postmarketos-allwinner u-boot-pine64 uboot-tools mesa mesa-dri-lima" makedepends="devicepkg-dev" source=" deviceinfo diff --git a/device/device-pine-dontbeevil/APKBUILD b/device/device-pine-dontbeevil/APKBUILD index 5e4ba0083..90adc8835 100644 --- a/device/device-pine-dontbeevil/APKBUILD +++ b/device/device-pine-dontbeevil/APKBUILD @@ -2,13 +2,13 @@ pkgname="device-pine-dontbeevil" pkgdesc="PINE64 PinePhone Don't be evil devkit" pkgver=0.1 -pkgrel=3 +pkgrel=4 url="https://postmarketos.org" license="MIT" arch="aarch64" options="!check !archcheck" subpackages="$pkgname-weston $pkgname-x11 $pkgname-nonfree-firmware:nonfree_firmware" -depends="postmarketos-base linux-postmarketos-allwinner mesa-dri-swrast u-boot-pine64 uboot-tools" +depends="postmarketos-base linux-postmarketos-allwinner u-boot-pine64 uboot-tools mesa mesa-dri-lima" makedepends="devicepkg-dev" source=" deviceinfo diff --git a/device/device-purism-librem5dev/APKBUILD b/device/device-purism-librem5dev/APKBUILD index fb13bad1c..2fe3a15e8 100644 --- a/device/device-purism-librem5dev/APKBUILD +++ b/device/device-purism-librem5dev/APKBUILD @@ -2,7 +2,7 @@ pkgname="device-purism-librem5dev" pkgdesc="Purism Librem 5 Devkit" pkgver=0.7 -pkgrel=0 +pkgrel=1 url="https://postmarketos.org" license="MIT" arch="aarch64" @@ -13,7 +13,6 @@ depends="postmarketos-base u-boot-librem5dev gpsd mesa-purism-gc7000 - mesa-purism-gc7000-dri-imx mesa-purism-gc7000-dri-etnaviv " makedepends="devicepkg-dev" diff --git a/temp/mesa-purism-gc7000/APKBUILD b/temp/mesa-purism-gc7000/APKBUILD index 5b8e55721..315f7b81e 100644 --- a/temp/mesa-purism-gc7000/APKBUILD +++ b/temp/mesa-purism-gc7000/APKBUILD @@ -1,9 +1,9 @@ # Forked from Alpine to build Purism's source tree with vivante GPU related patches pkgname=mesa-purism-gc7000 provides=mesa -pkgver=19.0.0_git20190129 -pkgrel=1 -_sha="5d0e960787295fbd188692bdae8fe14cebfc4ef6" +pkgver=19.0.0_git20190403 +pkgrel=0 +_sha="d6d5b5401ea604dc2e5e5c3ef50d7df2ff4a6f38" pkgdesc="Mesa DRI OpenGL library" url="https://www.mesa3d.org" arch="aarch64" @@ -11,7 +11,6 @@ license="MIT SGI-B-2.0 BSL-1.0" subpackages=" $pkgname-dev $pkgname-dri-etnaviv:_dri - $pkgname-dri-imx:_dri $pkgname-dri-swrast:_dri $pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles $pkgname-osmesa $pkgname-gbm @@ -61,8 +60,10 @@ source=" replaces="mesa-dricore" _dri_driverdir=/usr/lib/dri -_dri_drivers="swrast" -_gallium_drivers="swrast,imx,etnaviv" +_dri_driverdir_x11=/usr/lib/xorg/modules/dri +_dri_drivers="" +_gallium_drivers="swrast,kmsro,etnaviv" +_vulkan_drivers="" _arch_opts= builddir="$srcdir/mesa-${_sha}" @@ -75,8 +76,8 @@ build() { mkdir "$builddir"/build meson -Ddri-search-path="$_dri_driverdir" \ -Dgallium-drivers="$_gallium_drivers" \ - -Ddri-drivers= \ - -Dvulkan-drivers= \ + -Ddri-drivers="$_dri_drivers" \ + -Dvulkan-drivers="$_vulkan_drivers" \ -Dplatforms=x11,wayland,drm \ -Ddri3=true \ -Degl=true \ @@ -98,7 +99,7 @@ package() { egl() { pkgdesc="Mesa libEGL runtime libraries" - replaces="mesa" + replaces="$pkgname" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libEGL.so* "$subpkgdir"/usr/lib/ @@ -106,7 +107,7 @@ egl() { gl() { pkgdesc="Mesa libGL runtime libraries" - replaces="mesa" + replaces="$pkgname" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libGL.so* "$subpkgdir"/usr/lib/ @@ -122,7 +123,7 @@ glapi() { gles() { pkgdesc="Mesa libGLESv2 runtime libraries" - replaces="mesa" + replaces="$pkgname" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libGLES*.so* "$subpkgdir"/usr/lib/ @@ -138,7 +139,7 @@ osmesa() { gbm() { pkgdesc="Mesa gbm library" - replaces="mesa" + replaces="$pkgname" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libgbm.so.* "$subpkgdir"/usr/lib/ @@ -146,11 +147,15 @@ gbm() { _mv_dri() { install -d "$subpkgdir"/$_dri_driverdir + install -d "$subpkgdir"/$_dri_driverdir_x11 while [ $# -gt 0 ]; do mv "$pkgdir"/$_dri_driverdir/${1}.so \ "$subpkgdir"/$_dri_driverdir/ shift + + ln -s $_dri_driverdir/${1}.so \ + "$subpkgdir"/$_dri_driverdir_x11/${1}.so done } @@ -195,15 +200,12 @@ _dri() { _mv_dri swrast_dri kms_swrast_dri && _mv_gpipe swrast ;; etnaviv) - _mv_dri etnaviv_dri - ;; - imx) - _mv_dri imx-drm_dri + _mv_dri etnaviv_dri imx-drm_dri ;; esac } -sha512sums="2aa17f26a4dc31370a07d95dec72f8730ec1671e2d97e5fd151aa6d9e80e2453fdff5a94dbfd11defb9fadc1d6bc2bf333048f46d6b834f9995222c38369d208 mesa-5d0e960787295fbd188692bdae8fe14cebfc4ef6.tar.gz +sha512sums="3ea07b0364538eac64f10ed9a10f3eb82b7aca1083b096401e114a73371f930535d05d290befeca79c5b9027c34efab0e314a16429837dff4f678ef59f2ffb1c mesa-d6d5b5401ea604dc2e5e5c3ef50d7df2ff4a6f38.tar.gz cdf22d2da3328e116c379264886bd01fd3ad5cc45fe03dc6fd97bdc4794502598ee195c0b9d975fa264d6ac31c6fa108c0535c91800ecf4fcabfd308e53074cc 10-adjust-cache-deflate-buffer.patch 02db65893d55b5667d9c3bc193fc089e5408596431e06363fe2adea00c9e3c4e80612f3d03dc61f931d1a6ae04340bccf55e1376cf00bbf2433990713649d286 20-musl.patch a7bbc0d8836fe5eb7220c7b41d8af439878a3876302de32739243232f979ea9c63d2069fcd78bef370eafef0a21f491ef99219ae686e965326475764244bbe5d meson-add-toggle-for-TLS-support-in-GLX.patch" diff --git a/temp/mesa/APKBUILD b/temp/mesa/APKBUILD index 7b964fab5..5e1925270 100644 --- a/temp/mesa/APKBUILD +++ b/temp/mesa/APKBUILD @@ -1,7 +1,7 @@ # Forked from Alpine, so we can upgrade the version and build etnaviv and tegra pkgname=mesa pkgver=9999 -_pkgver=19.0.0-rc7 +_pkgver=19.1.0-rc1 pkgrel=2 pkgdesc="[${_pkgver}] Mesa DRI OpenGL library" url="https://www.mesa3d.org" @@ -54,34 +54,40 @@ makedepends=" ninja " source=" - https://gitlab.freedesktop.org/mesa/mesa/-/archive/mesa-${_pkgver}/mesa-mesa-${_pkgver}.tar.gz + https://gitlab.freedesktop.org/mesa/mesa/-/archive/$pkgname-$_pkgver/mesa-$pkgname-$_pkgver.tar.gz 10-adjust-cache-deflate-buffer.patch 20-musl.patch meson-add-toggle-for-TLS-support-in-GLX.patch - " + fix-lima-on-wayland.patch" replaces="mesa-dricore" _dri_driverdir=/usr/lib/dri +_dri_driverdir_x11=/usr/lib/xorg/modules/dri _dri_drivers="nouveau" _gallium_drivers="swrast,freedreno,virgl,nouveau" +_vulkan_drivers="" case "$CARCH" in x86*) _dri_drivers="${_dri_drivers},i915,i965" _gallium_drivers="${_gallium_drivers},svga" + _vulkan_drivers="${_vulkan_drivers},amd,intel" subpackages="$subpackages \ $pkgname-dri-intel:_dri \ $pkgname-dri-vmwgfx:_dri" ;; armhf|aarch64) - _gallium_drivers="${_gallium_drivers},vc4,kmsro,etnaviv,tegra" + _gallium_drivers="${_gallium_drivers},vc4,kmsro,etnaviv,tegra,panfrost,lima" + _vulkan_drivers="${_vulkan_drivers}" subpackages="$subpackages $pkgname-dri-vc4:_dri $pkgname-dri-etnaviv:_dri $pkgname-dri-imx:_dri - $pkgname-dri-tegra:_dri" + $pkgname-dri-tegra:_dri + $pkgname-dri-lima:_dri + $pkgname-dri-panfrost:_dri" ;; esac -builddir="$srcdir/mesa-mesa-${_pkgver}" +builddir="$srcdir/mesa-$pkgname-$_pkgver" build() { @@ -92,7 +98,7 @@ build() { meson -Ddri-search-path="$_dri_driverdir" \ -Dgallium-drivers="$_gallium_drivers" \ -Ddri-drivers="$_dri_drivers" \ - -Dvulkan-drivers= \ + -Dvulkan-drivers="$_vulkan_drivers" \ -Dplatforms=x11,wayland,drm \ -Ddri3=true \ -Degl=true \ @@ -169,11 +175,15 @@ gbm() { _mv_dri() { install -d "$subpkgdir"/$_dri_driverdir + install -d "$subpkgdir"/$_dri_driverdir_x11 while [ $# -gt 0 ]; do mv "$pkgdir"/$_dri_driverdir/${1}.so \ "$subpkgdir"/$_dri_driverdir/ shift + + ln -s $_dri_driverdir/${1}.so \ + "$subpkgdir"/$_dri_driverdir_x11/${1}.so done } @@ -232,9 +242,6 @@ _dri() { virtio) _mv_dri virtio_gpu_dri ;; - swrast) - _mv_dri swrast_dri kms_swrast_dri && _mv_gpipe swrast - ;; etnaviv) _mv_dri etnaviv_dri ;; @@ -250,10 +257,17 @@ _dri() { && _mv_gpipe nouveau \ && _mv_va nouveau ;; + lima) + _mv_dri lima_dri sun4i-drm_dri + ;; + panfrost) + _mv_dri panfrost_dri + ;; esac } -sha512sums="27b2d15e03ac0444f576b478501b15654d6400d2769db87491eb3b2224bafcabff5d1d1c1f0165ae31272c2b4d965c6d9230703c29ef81314283a9f59ed6e3c6 mesa-mesa-19.0.0-rc7.tar.gz +sha512sums="24502a417d5a3c9c3687123882a64abcaea482ada5efaf69f610a623d2d4b05b0701bd4c1d2993ae40a2a2fd7b954ba0be7a2e54b9e751ec70ebb3e75c153f21 mesa-mesa-19.1.0-rc1.tar.gz cdf22d2da3328e116c379264886bd01fd3ad5cc45fe03dc6fd97bdc4794502598ee195c0b9d975fa264d6ac31c6fa108c0535c91800ecf4fcabfd308e53074cc 10-adjust-cache-deflate-buffer.patch 02db65893d55b5667d9c3bc193fc089e5408596431e06363fe2adea00c9e3c4e80612f3d03dc61f931d1a6ae04340bccf55e1376cf00bbf2433990713649d286 20-musl.patch -a7bbc0d8836fe5eb7220c7b41d8af439878a3876302de32739243232f979ea9c63d2069fcd78bef370eafef0a21f491ef99219ae686e965326475764244bbe5d meson-add-toggle-for-TLS-support-in-GLX.patch" +a7bbc0d8836fe5eb7220c7b41d8af439878a3876302de32739243232f979ea9c63d2069fcd78bef370eafef0a21f491ef99219ae686e965326475764244bbe5d meson-add-toggle-for-TLS-support-in-GLX.patch +095bbcef3bc73d4e51125819a1f8b18b3ec02dab4219dce50ce6cef60a755eac3526ea99f0f72c6a3f02567a27654ef5a41a4075b210a7182d0d17317855725b fix-lima-on-wayland.patch" diff --git a/temp/mesa/fix-lima-on-wayland.patch b/temp/mesa/fix-lima-on-wayland.patch new file mode 100644 index 000000000..525f004e1 --- /dev/null +++ b/temp/mesa/fix-lima-on-wayland.patch @@ -0,0 +1,56 @@ +diff --git a/src/gallium/drivers/lima/lima_draw.c b/src/gallium/drivers/lima/lima_draw.c +index e0a1e181937..9cb0c6c360f 100644 +--- a/src/gallium/drivers/lima/lima_draw.c ++++ b/src/gallium/drivers/lima/lima_draw.c +@@ -1549,7 +1549,7 @@ lima_pack_pp_frame_reg(struct lima_context *ctx, uint32_t *frame_reg, + } + + static void +-_lima_flush(struct lima_context *ctx, bool end_of_frame) ++_lima_flush(struct lima_context *ctx) + { + lima_finish_plbu_cmd(ctx); + +@@ -1675,9 +1675,9 @@ _lima_flush(struct lima_context *ctx, bool end_of_frame) + ctx->plb_index = (ctx->plb_index + 1) % lima_ctx_num_plb; + + if (ctx->framebuffer.base.nr_cbufs) { +- /* this surface may need reload when next draw if not end of frame */ ++ /* Set reload flag for next draw. It'll be unset if buffer is cleared */ + struct lima_surface *surf = lima_surface(ctx->framebuffer.base.cbufs[0]); +- surf->reload = !end_of_frame; ++ surf->reload = true; + } + } + +@@ -1687,7 +1687,7 @@ lima_flush(struct lima_context *ctx) + if (!lima_ctx_dirty(ctx)) + return; + +- _lima_flush(ctx, false); ++ _lima_flush(ctx); + } + + static void +@@ -1698,7 +1698,7 @@ lima_pipe_flush(struct pipe_context *pctx, struct pipe_fence_handle **fence, + if (!lima_ctx_dirty(ctx)) + return; + +- _lima_flush(ctx, flags & PIPE_FLUSH_END_OF_FRAME); ++ _lima_flush(ctx); + + if (fence) { + int fd; +diff --git a/src/gallium/drivers/lima/lima_resource.c b/src/gallium/drivers/lima/lima_resource.c +index 4e215e9e08f..0aefb2c7900 100644 +--- a/src/gallium/drivers/lima/lima_resource.c ++++ b/src/gallium/drivers/lima/lima_resource.c +@@ -382,6 +382,8 @@ lima_surface_create(struct pipe_context *pctx, + surf->tiled_w = align(psurf->width, 16) >> 4; + surf->tiled_h = align(psurf->height, 16) >> 4; + ++ surf->reload = true; ++ + struct lima_context *ctx = lima_context(pctx); + if (ctx->plb_pp_stream) { + struct lima_ctx_plb_pp_stream_key key = {