You are not logged in.

#1 2020-12-11 14:05:10

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 13,012

Would a minimal mesa-git be a good idea ?

Mesa keeps getting more options added, but it's very rare some are removed.

I looked good at the options and asked my self : what benefit do they bring and do I need that ?


egl  - EGL is an interface between Khronos rendering APIs (such as OpenGL, OpenGL ES or OpenVG) and the underlying native platform windowing system.
gbm - needed for wayland
gallium-opencl - libclc / opencl .
gles2 -  needed for WebGL .

Unneeded
gallium-omx - very few applications that use it
gallium-nine - superseded by the directx to vulkan protocols
gallium-vdpau - va works a lot better
gallium-xa - what still uses this ?
gallium-xvmc - disabled it in mesa-git long ago, no one ever complained
gles1 - disabled it in mesa-git sometime ago, no one ever complained


One system I own does use the r300 gallium driver, but hasn't run mesa-git since 2012 .
All the dri-drivers and older gallium drivers can be removed without any drawback for me.

The drivers I do feel are needed :
OpenGL : -D gallium-drivers=radeonsi,swrast,iris 
Vulkan : -D vulkan-drivers=amd,intel,swrast

Everything recent enough from amd / intel is then covered by iris / radeonsi, while all other hardware can use swrast for opengl & vulkan .

This package would not replace mesa-git , but exist separately.
It creates smaller binaries and has shorter buildtimes then mesa-git .

I am working on such a package , but for now only have radeonsi as driver and a hard dependency on my llvm-minimal-git package.
If there's enough interest I'll add swrast and iris before publishing it to AUR.

Questions :
Would this be a valuable addition to AUR ?
Would you use this package ?
Do you agree with my choices what to keep / what to disable ?

Last edited by Lone_Wolf (2020-12-11 14:05:48)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#2 2020-12-11 14:45:19

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: Would a minimal mesa-git be a good idea ?

Lone_Wolf wrote:

It creates smaller binaries and has shorter buildtimes then mesa-git .

How significant is this?

Does it just prevent some *.so files from being built?

Does it actually avoid any dependencies?

Last edited by eschwartz (2020-12-11 14:47:46)


Managing AUR repos The Right Way -- aurpublish (now a standalone tool)

Offline

#3 2020-12-11 16:14:01

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 13,012

Re: Would a minimal mesa-git be a good idea ?

dependency difference : just libomxil-bellagio


build command used for both :

extra-x86_64-build -- -I /var/cache/pacman/pkg/llvm-minimal-git-12.0.0_r374074.1c98f984105e-1-x86_64.pkg.tar.zst -I /var/cache/pacman/pkg/llvm-libs-minimal-git-12.0.0_r374074.1c98f984105e-1-x86_64.pkg.tar.zst
==> Making package: mesa-minimal-git 21.0.0_devel.132228.574429f9528-1 (Fri 11 Dec 2020 04:35:51 PM CET)
==> Finished making: mesa-minimal-git 21.0.0_devel.132250.fd49ba59a38-1 (Fri 11 Dec 2020 04:42:11 PM CET

$ ls -l mesa-minimal-git-21.0.0_devel.132250.fd49ba59a38-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 panoramix panoramix 10908892 11 dec 16:42 mesa-minimal-git-21.0.0_devel.132250.fd49ba59a38-1-x86_64.pkg.tar.zst
$

==> Making package: mesa-git 21.0.0_devel.132228.574429f9528-1 (Fri 11 Dec 2020 04:46:09 PM CET)
==> Finished making: mesa-git 21.0.0_devel.132250.fd49ba59a38-1 (Fri 11 Dec 2020 04:55:30 PM CET

$ ls -l mesa-git-21.0.0_devel.132250.fd49ba59a38-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 panoramix panoramix 28773235 11 dec 16:55 mesa-git-21.0.0_devel.132250.fd49ba59a38-1-x86_64.pkg.tar.zst
$ 

mesa-minimal-git
buildtime 6:20
archive size 10,908,892

mesa-git
buildtime 9:21
archive size 28,773,235

The mesa-git PKGBUILD is the same as in aur, with one small change :
I added MESA_WHICH_LLVM=1 just before the top IF statement to ensure extra-x86_64-build uses llvm-minimal-git and llvm-libs-minimal-git instead of repo versions.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#4 2020-12-11 19:30:25

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: Would a minimal mesa-git be a good idea ?

So it saves 3 minutes and 17 MB, one 0.5 MB dependency, but my other question "Does it just prevent some *.so files from being built?" goes unanswered.


Managing AUR repos The Right Way -- aurpublish (now a standalone tool)

Offline

#5 2020-12-11 22:06:09

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 13,012

Re: Would a minimal mesa-git be a good idea ?

About 19 *.so files are not build, also some include files and some folders.
Ofcourse some *.so files are build in both but differ.

A bit further down is the full report and for reference the PKGBUILD used for mesa-minimal-git used.
Do you need more info to answer my questions ?


$ diff -qr /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/ /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/.BUILDINFO and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/.BUILDINFO differ
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/.MTREE and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/.MTREE differ
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/.PKGINFO and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/.PKGINFO differ
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/include: d3dadapter
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/include/GL: osmesa.h
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/include: xa_composite.h
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/include: xa_context.h
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/include: xa_tracker.h
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib: bellagio
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib: d3d
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: i915_dri.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: i965_dri.so
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri/iris_dri.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/dri/iris_dri.so differ
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri/kms_swrast_dri.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/dri/kms_swrast_dri.so differ
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: nouveau_dri.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: nouveau_drv_video.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: nouveau_vieux_dri.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: r200_dri.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: r300_dri.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: r600_dri.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: r600_drv_video.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: radeon_dri.so
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri/radeonsi_dri.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/dri/radeonsi_dri.so differ
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri/radeonsi_drv_video.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/dri/radeonsi_drv_video.so differ
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri/swrast_dri.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/dri/swrast_dri.so differ
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: virtio_gpu_dri.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: vmwgfx_dri.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/dri: zink_dri.so
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/gallium-pipe/pipe_iris.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/gallium-pipe/pipe_iris.so differ
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/gallium-pipe: pipe_nouveau.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/gallium-pipe: pipe_r300.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/gallium-pipe: pipe_r600.so
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/gallium-pipe/pipe_radeonsi.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/gallium-pipe/pipe_radeonsi.so differ
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/gallium-pipe/pipe_swrast.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/gallium-pipe/pipe_swrast.so differ
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/gallium-pipe: pipe_vmwgfx.so
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/libMesaOpenCL.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/libMesaOpenCL.so differ
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/libMesaOpenCL.so.1 and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/libMesaOpenCL.so.1 differ
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/libMesaOpenCL.so.1.0.0 and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/libMesaOpenCL.so.1.0.0 differ
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib: libOSMesa.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib: libOSMesa.so.8
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib: libOSMesa.so.8.0.0
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/libVkLayer_MESA_overlay.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/libVkLayer_MESA_overlay.so differ
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/libvulkan_intel.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/libvulkan_intel.so differ
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/libvulkan_lvp.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/libvulkan_lvp.so differ
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/libvulkan_radeon.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/libvulkan_radeon.so differ
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib: libxatracker.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib: libxatracker.so.2
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib: libxatracker.so.2.5.0
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/pkgconfig: d3d.pc
Files /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/pkgconfig/dri.pc and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/pkgconfig/dri.pc differ
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/pkgconfig: osmesa.pc
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib/pkgconfig: xatracker.pc
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/lib: vdpau
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-git/pkg/mesa-git/usr/share/licenses: mesa-git
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/share/licenses: mesa-minimal-git
$ 


PKGBUILD for mesa-minimal-git

# Maintainer: Lone_Wolf <lone_wolf@klaas-de-kat.nl>
# Contributor: Armin K. <krejzi at email dot com>
# Contributor: Kristian Klausen <klausenbusk@hotmail.com>
# Contributor: Egon Ashrafinia <e.ashrafinia@gmail.com>
# Contributor: Tavian Barnes <tavianator@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Thomas Dziedzic < gostrc at gmail >
# Contributor: Antti "Tera" Oja <antti.bofh@gmail.com>
# Contributor: Diego Jose <diegoxter1006@gmail.com>

pkgname=mesa-minimal-git
pkgdesc="an open-source implementation of the OpenGL specification, git version"
pkgver=21.0.0_devel.132254.84c8a35aa2c
pkgrel=1
arch=('x86_64')
makedepends=('git' 'python-mako' 'xorgproto'
              'libxml2' 'libx11'  'libvdpau' 'libva' 'elfutils' 'libxrandr'
              'ocl-icd' 'wayland-protocols' 'meson' 'ninja' 'glslang' 'llvm-minimal-git')
depends=('libdrm' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'libelf'
         'libunwind' 'libglvnd' 'wayland' 'lm_sensors' 'libclc' 'vulkan-icd-loader' 'zstd' 'llvm-libs-minimal-git')
optdepends=('opengl-man-pages: for the OpenGL API man pages'
                        'llvm-minimal-git: opencl')
provides=('mesa' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-mesa-layer' 'libva-mesa-driver' 'mesa-vdpau' 'mesa-vulkan' 'vulkan-driver' 'opengl-driver' 'opencl-driver')
conflicts=('mesa' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-mesa-layer' 'libva-mesa-driver' 'mesa-vdpau' 'mesa-vulkan')
url="https://www.mesa3d.org"
license=('custom')
source=('mesa::git+https://gitlab.freedesktop.org/mesa/mesa.git'
                'LICENSE')
md5sums=('SKIP'
         '5c65a0fe315dd347e09b1f2826a1df5a')
sha512sums=('SKIP'
            '25da77914dded10c1f432ebcbf29941124138824ceecaf1367b3deedafaecabc082d463abcfa3d15abff59f177491472b505bcb5ba0c4a51bb6b93b4721a23c2')

# NINJAFLAGS is an env var used to pass commandline options to ninja
# NOTE: It's your responbility to validate the value of $NINJAFLAGS. If unsure, don't set it.

pkgver() {
    cd mesa
    read -r _ver <VERSION
    echo ${_ver/-/_}.$(git rev-list --count HEAD).$(git rev-parse --short HEAD)
}

prepare() {
    # although removing _build folder in build() function feels more natural,
    # that interferes with the spirit of makepkg --noextract
    if [  -d _build ]; then
        rm -rf _build
    fi
}

build () {
    meson setup mesa _build \
       -D b_ndebug=true \
       -D b_lto=true \
       -D buildtype=plain \
       --wrap-mode=nofallback \
       -D prefix=/usr \
       -D sysconfdir=/etc \
       -D platforms=x11,wayland \
       -D dri-drivers=[] \
       -D gallium-drivers=radeonsi,swrast,iris \
       -D vulkan-drivers=amd,intel,swrast \
       -D dri3=enabled \
       -D egl=enabled \
       -D gallium-extra-hud=true \
       -D gallium-nine=false \
       -D gallium-omx=disabled \
       -D gallium-va=enabled \
       -D gallium-vdpau=disabled \
       -D gallium-xa=disabled \
       -D gallium-xvmc=disabled \
       -D gbm=enabled \
       -D gles1=disabled \
       -D gles2=enabled \
       -D glvnd=true \
       -D glx=dri \
       -D libunwind=enabled \
       -D llvm=enabled \
       -D lmsensors=enabled \
       -D osmesa=false \
       -D shared-glapi=enabled \
       -D gallium-opencl=icd \
       -D valgrind=disabled \
       -D vulkan-overlay-layer=true \
       -D vulkan-device-select-layer=true \
       -D tools=[] \
       -D zstd=enabled \
       -D microsoft-clc=disabled
       
    meson configure _build
    
    ninja $NINJAFLAGS -C _build
}

package() {
    DESTDIR="${pkgdir}" ninja $NINJAFLAGS -C _build install

    # remove script file from /usr/bin
    # https://gitlab.freedesktop.org/mesa/mesa/issues/2230
    rm "${pkgdir}/usr/bin/mesa-overlay-control.py"
    rmdir "${pkgdir}/usr/bin"
    
    # indirect rendering
    ln -s /usr/lib/libGLX_mesa.so.0 "${pkgdir}/usr/lib/libGLX_indirect.so.0"
  
    install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${srcdir}/LICENSE"
}

Last edited by Lone_Wolf (2020-12-11 22:07:12)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#6 2020-12-12 09:50:13

raneon
Member
Registered: 2013-11-02
Posts: 57

Re: Would a minimal mesa-git be a good idea ?

I like the idea of a minimal mesa-git but at the same time I'm actually quite interested in the Zink developments so I would probably still stick to mesa-git then.

Offline

#7 2020-12-12 10:11:00

progandy
Member
Registered: 2012-05-17
Posts: 5,269

Re: Would a minimal mesa-git be a good idea ?

gallium-xa - what still uses this ?[

I think that is used only by vmware for accelerated 3d graphics.


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Offline

#8 2020-12-12 19:57:25

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 13,012

Re: Would a minimal mesa-git be a good idea ?

progandy wrote:

gallium-xa - what still uses this ?[

I think that is used only by vmware for accelerated 3d graphics.

Thanks, progandy .

Zink is indeed interesting and I had overlooked it . Thank you for reminding me, raneon.
I temporarily created mesa-minimal-zink-git PKGBUILD to check the impact adding zink has.

==> Making package: mesa-minimal-zink-git 21.0.0_devel.132254.84c8a35aa2c-1 (za 12 dec 2020 20:30:28 CET)
==> Finished making: mesa-minimal-zink-git 21.0.0_devel.132254.84c8a35aa2c-1 (Sat 12 Dec 2020 08:37:00 PM CET)

$ ls -l mesa-minimal-zink-git-21.0.0_devel.132254.84c8a35aa2c-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 panoramix panoramix 10980711 12 dec 20:37 mesa-minimal-zink-git-21.0.0_devel.132254.84c8a35aa2c-1-x86_64.pkg.tar.zst
$

$ diff -qr /home/panoramix/Temp/zink/pkg/mesa-minimal-zink-git/ /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/
Files /home/panoramix/Temp/zink/pkg/mesa-minimal-zink-git/.BUILDINFO and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/.BUILDINFO differ
Files /home/panoramix/Temp/zink/pkg/mesa-minimal-zink-git/.MTREE and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/.MTREE differ
Files /home/panoramix/Temp/zink/pkg/mesa-minimal-zink-git/.PKGINFO and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/.PKGINFO differ
Files /home/panoramix/Temp/zink/pkg/mesa-minimal-zink-git/usr/lib/dri/iris_dri.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/dri/iris_dri.so differ
Files /home/panoramix/Temp/zink/pkg/mesa-minimal-zink-git/usr/lib/dri/kms_swrast_dri.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/dri/kms_swrast_dri.so differ
Files /home/panoramix/Temp/zink/pkg/mesa-minimal-zink-git/usr/lib/dri/radeonsi_dri.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/dri/radeonsi_dri.so differ
Files /home/panoramix/Temp/zink/pkg/mesa-minimal-zink-git/usr/lib/dri/swrast_dri.so and /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/lib/dri/swrast_dri.so differ
Only in /home/panoramix/Temp/zink/pkg/mesa-minimal-zink-git/usr/lib/dri: zink_dri.so
Only in /home/panoramix/Documents/Aur/pkgbuilds/mesa-minimal-git/pkg/mesa-minimal-git/usr/share/licenses: mesa-minimal-git
Only in /home/panoramix/Temp/zink/pkg/mesa-minimal-zink-git/usr/share/licenses: mesa-minimal-zink-git
$

buildtime 6:32  , archive size 10,980,711 and minimal additional files compared to mesa-minimal-git .

Adding zink appears to have low impact on buildtime and binary size.
I've added it to my own version.

Edit : forgot to mention raneon, also clarified lines about zink a bit.

Last edited by Lone_Wolf (2020-12-13 14:40:01)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#9 2021-01-03 14:35:52

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 13,012

Re: Would a minimal mesa-git be a good idea ?

Mesa-minimal-git & lib32-mesa-minimal-git have now been in use on my main system for several weeks without issues.

I'll wait a few days for responses and if no one raises objections I'll submit it to AUR.


EdIt #1

for reference the current version of the PKGBUILD

# Maintainer: Lone_Wolf <lone_wolf@klaas-de-kat.nl>
# Contributor: Armin K. <krejzi at email dot com>
# Contributor: Kristian Klausen <klausenbusk@hotmail.com>
# Contributor: Egon Ashrafinia <e.ashrafinia@gmail.com>
# Contributor: Tavian Barnes <tavianator@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Thomas Dziedzic < gostrc at gmail >
# Contributor: Antti "Tera" Oja <antti.bofh@gmail.com>
# Contributor: Diego Jose <diegoxter1006@gmail.com>

pkgname=mesa-minimal-git
pkgdesc="an open-source implementation of the OpenGL specification, stripped down git version"
pkgver=21.0.0_devel.132851.24dcdc3fa94
pkgrel=1
arch=('x86_64')
makedepends=('git' 'python-mako' 'xorgproto'
              'libxml2' 'libx11'  'libvdpau' 'libva' 'elfutils' 'libxrandr'
              'ocl-icd' 'wayland-protocols' 'meson' 'ninja' 'glslang' 'llvm-minimal-git')
depends=('libdrm' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'libelf'
         'libunwind' 'libglvnd' 'wayland' 'lm_sensors' 'libclc' 'vulkan-icd-loader' 'zstd' 'llvm-libs-minimal-git')
# In order to keep the package simple and ease troubleshooting only use one llvm implementation
optdepends=('opengl-man-pages: for the OpenGL API man pages'
                        'llvm-minimal-git: opencl')
provides=('mesa' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-mesa-layer' 'libva-mesa-driver' 'vulkan-swrast' 'vulkan-driver' 'opengl-driver' 'opencl-driver')
conflicts=('mesa' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-mesa-layer' 'libva-mesa-driver'  'vulkan-swrast' 'mesa-vdpau')
# mixing components from different mesa versions is a bad idea, conflict with everything unique provided by extra/mesa
url="https://www.mesa3d.org"
license=('custom')
source=('mesa::git+https://gitlab.freedesktop.org/mesa/mesa.git'
                'LICENSE')
md5sums=('SKIP'
         '5c65a0fe315dd347e09b1f2826a1df5a')
sha512sums=('SKIP'
            '25da77914dded10c1f432ebcbf29941124138824ceecaf1367b3deedafaecabc082d463abcfa3d15abff59f177491472b505bcb5ba0c4a51bb6b93b4721a23c2')

# ninja grabs all available cores and leaves almost nothing for other processes.
# this package uses the environment variable NINJAFLAGS to allow the user to change this behaviour
# The responsibility to validate the value of NINJAFLAGS lies with the user.
# If unsure, use NINJAFLAGS=""

pkgver() {
    cd mesa
    read -r _ver <VERSION
    echo ${_ver/-/_}.$(git rev-list --count HEAD).$(git rev-parse --short HEAD)
}

prepare() {
    # although removing _build folder in build() function feels more natural,
    # that interferes with the spirit of makepkg --noextract
    if [  -d _build ]; then
        rm -rf _build
    fi
}

build () {
    meson setup mesa _build \
       -D b_ndebug=true \
       -D b_lto=true \
       -D buildtype=plain \
       --wrap-mode=nofallback \
       -D prefix=/usr \
       -D sysconfdir=/etc \
       -D platforms=x11,wayland \
       -D dri-drivers=[] \
       -D gallium-drivers=radeonsi,swrast,iris,zink \
       -D vulkan-drivers=amd,intel,swrast \
       -D dri3=enabled \
       -D egl=enabled \
       -D gallium-extra-hud=true \
       -D gallium-nine=false \
       -D gallium-omx=disabled \
       -D gallium-va=enabled \
       -D gallium-vdpau=disabled \
       -D gallium-xa=disabled \
       -D gallium-xvmc=disabled \
       -D gbm=enabled \
       -D gles1=disabled \
       -D gles2=enabled \
       -D glvnd=true \
       -D glx=dri \
       -D libunwind=enabled \
       -D llvm=enabled \
       -D lmsensors=enabled \
       -D osmesa=false \
       -D shared-glapi=enabled \
       -D gallium-opencl=icd \
       -D valgrind=disabled \
       -D vulkan-overlay-layer=true \
       -D vulkan-device-select-layer=true \
       -D tools=[] \
       -D zstd=enabled \
       -D microsoft-clc=disabled
       
    meson configure _build
    
    ninja $NINJAFLAGS -C _build
}

package() {
    DESTDIR="${pkgdir}" ninja $NINJAFLAGS -C _build install

    # remove script file from /usr/bin
    # https://gitlab.freedesktop.org/mesa/mesa/issues/2230
    rm "${pkgdir}/usr/bin/mesa-overlay-control.py"
    rmdir "${pkgdir}/usr/bin"
    
    # indirect rendering
    ln -s /usr/lib/libGLX_mesa.so.0 "${pkgdir}/usr/lib/libGLX_indirect.so.0"
  
    install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${srcdir}/LICENSE"
}

Edit #2 :
Someone else already created a package named mesa-minimal-git , I posted a comment there.

Last edited by Lone_Wolf (2021-01-07 10:17:06)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#10 2021-01-20 19:22:27

Thaodan
Member
From: Dortmund, Nordrein-Westfalen
Registered: 2012-04-28
Posts: 448

Re: Would a minimal mesa-git be a good idea ?

While I understand that some things are not used and should be disabled but I this a solution for a problem that you created.
First you reverted split packaging for mesa-git and now there are features that you don't want.
If you had split packages you can group them in subpackages.
I don't think creating an extra package is worth the maintenance.


Linux odin 3.13.1-pf #1 SMP PREEMPT Wed Mar 5 21:47:28 CET 2014 x86_64 GNU/Linux

Offline

Board footer

Powered by FluxBB