You are not logged in.
Unreal Engine works best with mesa-git, but after an update yesterday hardware acceleration is not working anymore with electron/CEF, and works fine without acceleration
What LLVM version should be the best for game dev ?
Between the 4 choices :
1 : aur llvm-minimal-git
2 : aur llvm-git
3: llvm-git from LordHeavy' unofficial repo
4: llvm from extra repo
I am wondering if I have not built against stable llvm instead of trunk master, how can I verify that ?
Offline
After an update of *what*?
Mod note: moving to AUR Issues.
Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD
Making lemonade from lemons since 2015.
Online
Several people have reported issues after yesterday's mesa-git update, see if disabling lto helps .
I am wondering if I have not built against stable llvm instead of trunk master, how can I verify that ?
mesa-git uses the env variable MESA_WHICH_LLVM to determine which llvm variant to use.
From your build environment run PRINTENV MESA_WHICH_LLVM .
If that doesn't show a value, the default of 4 (repo llvm) is used.
Added
What LLVM version should be the best for game dev ?
That entirely depends on which hardware & software environment your target audience uses.
some example :
Do you expect them to use opencl-clover-mesa or opencl-rusticl-mesa ?
If yes, don't use llvm-git .
Would they be crosscompiling for arm systems ?
If yes, don't use llvm-minimal-git .
Last edited by Lone_Wolf (2024-01-31 20:09:03)
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
Hey, in my case I don't need openCL but need compiling for arm. PRINTENV MESA_WHICH_LLVM but I installed mesa-git with yay so I don't know if it could read that value on the PKGBUILD thus not building against stable llvm
Offline
but I installed mesa-git with yay
From the (currently) 3rd pinned comment on aur mesa-git page
choosing which llvm variant to build against
WARNING : aur helpers don't support this method at all. They check .SRCINFO and that doesn't include this variable so it will use the default which is hardcoded to build against repo llvm.
As far as I know all Aur helpers don't source the PKGBUILD as makepkg does, but rely on .SRCINFO .
So by using yay you are limiting yourself to building mesa-git against repo llvm.
# Change this to true or 1 for a potentially smaller package size
## Note: We can't guarantee that enabling this won't affect cross-distro compatibility given that Epic provides their own toolchain specifically
## based on the claim that it helps with compatibility...
## Though, you could just distribute your game as an AppImage if you decide to publish on a game store...
_use_system_clang=false
I assume you haven't changed that and are building unreal engine with Epic's own llvm/clang toolchain ?
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
I used Lord Heavy repo to reinstall my drivers
[mesa-git]
Server = https://pkgbuild.com/~lcarlier/$repo/$arch
3D app working better than before.
Steam crashing on startup, output of glxinfo :
name of display: :0.0
Error: couldn't find RGB GLX visual or fbconfig
Offline
That usually means you don't have the llvm version installed that was used to built mesa.
please post the output of
$ lddtree /usr/lib/dri/radeonsi_dri.so
(lddtree comes from the pax-utils package)
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
That usually means you don't have the llvm version installed that was used to built mesa.
please post the output of
$ lddtree /usr/lib/dri/radeonsi_dri.so
(lddtree comes from the pax-utils package)
I thought installing from LordHeavy repo would include the right llvm version.
I am getting this output :
lddtree /usr/lib/dri/radeonsi_dri.so
/usr/lib/dri/radeonsi_dri.so (interpreter => None)
libglapi.so.0 => /usr/lib/libglapi.so.0
libdrm.so.2 => /usr/lib/libdrm.so.2
libLLVM-19git.so => /usr/lib/libLLVM-19git.so
libffi.so.8 => /usr/lib/libffi.so.8
libedit.so.0 => /usr/lib/libedit.so.0
libncursesw.so.6 => /usr/lib/libncursesw.so.6
libxml2.so.2 => /usr/lib/libxml2.so.2
liblzma.so.5 => /usr/lib/liblzma.so.5
libicuuc.so.74 => /usr/lib/libicuuc.so.74
libicudata.so.74 => /usr/lib/libicudata.so.74
ld-linux-x86-64.so.2 => /usr/lib/ld-linux-x86-64.so.2
libexpat.so.1 => /usr/lib/libexpat.so.1
libz.so.1 => /usr/lib/libz.so.1
libzstd.so.1 => /usr/lib/libzstd.so.1
libxcb-dri3.so.0 => /usr/lib/libxcb-dri3.so.0
libxcb.so.1 => /usr/lib/libxcb.so.1
libXau.so.6 => /usr/lib/libXau.so.6
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6
libsensors.so.5 => /usr/lib/libsensors.so.5
libdrm_radeon.so.1 => /usr/lib/libdrm_radeon.so.1
libelf.so.1 => /usr/lib/libelf.so.1
libdrm_amdgpu.so.1 => /usr/lib/libdrm_amdgpu.so.1
libdrm_nouveau.so.2 => /usr/lib/libdrm_nouveau.so.2
libstdc++.so.6 => /usr/lib/libstdc++.so.6
libm.so.6 => /usr/lib/libm.so.6
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
libc.so.6 => /usr/lib/libc.so.6
Last edited by Beuman (2024-02-14 14:36:32)
Offline
That output looks good, looking specific at glxinfo now.
Output of
$ LIBGL_DEBUG=verbose glxinfo -B
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
getting
name of display: :0.0
Error: couldn't find RGB GLX visual or fbconfig
Cannot start an Unreal project anymore "Cannot find a compatible Vulkan device that supports surface presentation"
Edit : After
pacman -S mesagit
error: failed retrieving file 'vulkan-mesa-git-1:21.0.0_devel.132340.296316b5dec-1-x86_64.pkg.tar.zst' from pkgbuild.com : The requested URL returned error: 404
vulkan-mesa-git is not on the repo so I don't have it
I installed packages 1-6 8 11-17 19 20 23 from this list :
1) clang-git 2) compiler-rt-git 3) lib32-libdrm-git 4) lib32-llvm-git
5) lib32-llvm-libs-git 6) lib32-mesa-git 7) lib32-vulkan-intel-git
8) lib32-vulkan-mesa-layers-git 9) lib32-vulkan-radeon-git 10) libclc-git
11) libdrm-git 12) lld-git 13) lldb-git 14) llvm-git 15) llvm-libs-git
16) llvm-ocaml-git 17) mesa-git 18) opencl-mesa-git 19) polly-git
20) spirv-llvm-translator-git 21) vulkan-intel-git 22) vulkan-mesa-git
23) vulkan-mesa-layers-git 24) vulkan-nouveau-git 25) vulkan-radeon-git
26) vulkan-swrast-git
less /var/log/Xorg.0.log | grep error
Output :
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 31.952] (EE) AIGLX error: dlopen of /usr/lib/dri/swrast_dri.so failed (/usr/lib/dri/swrast_dri.so: undefined symbol: amdgpu_va_get_start_addr)
[ 31.952] (EE) AIGLX error: unable to load driver swrast
It looked like that to me I don't need this package as I intent to run everything on my GPU and not my CPU. Anyway I installed it along mesagit to try and it failed
A bit more info :
lsmod | grep amd
edac_mce_amd 53248 0
kvm_amd 204800 0
kvm 1376256 1 kvm_amd
ccp 163840 1 kvm_amd
amdgpu 13352960 4
video 77824 1 amdgpu
amdxcp 12288 1 amdgpu
i2c_algo_bit 20480 2 igb,amdgpu
drm_ttm_helper 12288 1 amdgpu
ttm 110592 2 amdgpu,drm_ttm_helper
drm_exec 12288 1 amdgpu
gpu_sched 65536 1 amdgpu
drm_suballoc_helper 12288 1 amdgpu
drm_buddy 20480 1 amdgpu
drm_display_helper 229376 1 amdgpu
pacman -Qs mesa output :
local/lib32-libdrm-git 2.4.116.r23.g6abc1640-1 (mesagit)
Userspace interface to kernel DRM services (32-bit) (git version)
local/libdrm-git 2.4.116.r23.g6abc1640-1 (mesagit)
Userspace interface to kernel DRM services (git version)
dktuser@dktpan ~ % pacman -Qs mesa
local/clang-git 19.0.0_r489391.7f40c5cc4e15-1 (mesagit)
C language family frontend for LLVM (git version)
local/compiler-rt-git 19.0.0_r489391.7f40c5cc4e15-1 (mesagit)
Compiler runtime libraries for clang (git version)
local/glu 9.0.3-1
Mesa OpenGL utility library
local/lib32-libdrm-git 2.4.116.r23.g6abc1640-1 (mesagit)
Userspace interface to kernel DRM services (32-bit) (git version)
local/lib32-llvm-git 19.0.0_r489396.b221b9733688-1 (mesagit)
Low Level Virtual Machine (32-bit)(git version)
local/lib32-llvm-libs-git 19.0.0_r489396.b221b9733688-1 (mesagit)
Low Level Virtual Machine library (runtime library)(32-bit)(git version)
local/lib32-mesa-git 1:24.1.0_devel.184401.72886cbefaa-1 (mesagit)
an open-source implementation of the OpenGL specification (32-bit) (git version)
local/lib32-vulkan-mesa-layers-git 1:24.1.0_devel.184401.72886cbefaa-1 (mesagit)
Mesa's Vulkan overlay layers (32-bit) (git version)
local/libdrm-git 2.4.116.r23.g6abc1640-1 (mesagit)
Userspace interface to kernel DRM services (git version)
local/lld-git 19.0.0_r489391.7f40c5cc4e15-1 (mesagit)
Linker from the LLVM project (git version)
local/lldb-git 19.0.0_r489391.7f40c5cc4e15-1 (mesagit)
Next generation, high-performance debugger (git version)
local/llvm-git 19.0.0_r489391.7f40c5cc4e15-1 (mesagit)
Collection of modular and reusable compiler and toolchain technologies (git version)
local/llvm-libs-git 19.0.0_r489391.7f40c5cc4e15-1 (mesagit)
LLVM runtime libraries (git version)
local/llvm-ocaml-git 19.0.0_r489391.7f40c5cc4e15-1 (mesagit)
OCaml bindings for LLVM (git version)
local/mesa-git 1:24.1.0_devel.184400.62fa5c8d0f0-1 (mesagit)
an open-source implementation of the OpenGL specification (git version)
local/mesa-utils 9.0.0-3
Essential Mesa utilities
local/polly-git 19.0.0_r489391.7f40c5cc4e15-1 (mesagit)
High-level loop and data-locality optimizer and optimization infrastructure for LLVM (git version)
local/spirv-llvm-translator-git 19.0.0_r489391.7f40c5cc4e15-1 (mesagit)
Tool and a library for bi-directional translation between SPIR-V and LLVM IR
local/vulkan-mesa-layers-git 1:24.1.0_devel.184400.62fa5c8d0f0-1 (mesagit)
Mesa's Vulkan overlay layers (git version)
pacman -Qs vulkan output :
local/lib32-vulkan-icd-loader-git 1.3.277.r2.ge0d594e-1
Vulkan Installable Client Driver (ICD) Loader (32-bit) (git version)
local/lib32-vulkan-icd-loader-git-debug 1.3.277.r2.ge0d594e-1
Detached debugging symbols for lib32-vulkan-icd-loader-git
local/lib32-vulkan-mesa-layers-git 1:24.1.0_devel.184401.72886cbefaa-1 (mesagit)
Mesa's Vulkan overlay layers (32-bit) (git version)
local/spirv-tools 2023.5-1 (vulkan-devel)
API and commands for processing SPIR-V modules
local/vulkan-headers-git 1.3.277.r1.g5ac3626-1 (vulkan-devel)
Vulkan header files
local/vulkan-icd-loader-git 1.3.277.r2.ge0d594e-1
Vulkan Installable Client Driver (ICD) Loader (git version)
local/vulkan-icd-loader-git-debug 1.3.277.r2.ge0d594e-1
Detached debugging symbols for vulkan-icd-loader-git
local/vulkan-mesa-layers-git 1:24.1.0_devel.184400.62fa5c8d0f0-1 (mesagit)
Mesa's Vulkan overlay layers (git version)
local/vulkan-utility-libraries-git 1.3.277.r0.g86de0a0-1
Vulkan Utility Libraries (git version)
local/vulkan-validation-layers-git 1.3.277.r64.gf9e921c-1
Vulkan Validation Layers (git version)
Last edited by Beuman (2024-02-14 22:49:19)
Offline
I am installing linux-drm-next-git and headers, and will test tomorrow as it takes quite some time
Offline
I am installing linux-drm-next-git and headers, and will test tomorrow as it takes quite some time
That won't help as the error is in your graphics setup .
pacman -S mesagit
error: failed retrieving file 'vulkan-mesa-git-1:21.0.0_devel.132340.296316b5dec-1-x86_64.pkg.tar.zst' from pkgbuild.com : The requested URL returned error: 404
vulkan-mesa-git is not on the repo so I don't have it
I have no idea what mesagit is and where it comes from, maybe it's a package group ? .
I also have no idea what vulkan-mesa-git is, but the version clarifies it is from the first quarter of 2021 so 3 years old !
You have seen https://wiki.archlinux.org/title/Unoffi … s#mesa-git and noticed the description says that repo is built against archlinux testing repos ?
while that doesn't always give trouble, it should make you think twice about using it.
local/vulkan-icd-loader-git 1.3.277.r2.ge0d594e-1
local/vulkan-utility-libraries-git 1.3.277.r0.g86de0a0-1
local/vulkan-validation-layers-git 1.3.277.r64.gf9e921c-1
Where do those 3 come from ?
please post your pacman.conf .
Last edited by Lone_Wolf (2024-02-15 10:57:25)
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
Yes I am not fan using testing repo. I am thinking about just compiling drivers myself.
Maybe those packages comes from the old install back when I was using stable mesa.
/etc/pacman.conf :
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 8
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[testing]
Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[community-testing]
Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
[multilib-testing]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
[mesa-git]
Server = https://pkgbuild.com/~lcarlier/$repo/$arch
SigLevel = PackageOptional
I am having the same errors as https://bbs.archlinux.org/viewtopic.php?id=276657 so I may have done a partial upgrade. How can I know what's the full list of packages to update when using LordHeavy repo ?
Last edited by Beuman (2024-02-15 20:38:21)
Offline
Your pacman.conf still has community & community testing in them , which have been merged into extra & extra testing sometime last year (june ? ) after the repos were moved from svn to git.
You also don't have all necessary testing repositories enabled.
How can I know what's the full list of packages to update when using LordHeavy repo ?
If you only update those packages, that will be another partial update.
When was your last full update by running pacman -Syu ?
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
Thanks I didn't knew for my pacman.conf
I update with pacman -Syu several times a day and after each install attempt
Here is my new pacman.conf file :
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 8
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[core-testing]
Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra-testing]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[multilib-testing]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#Custom Repo :
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
[mesa-git]
Server = [url]https://pkgbuild.com/~lcarlier/$repo/$arch[/url]
SigLevel = PackageOptional
I removed everything and reinstalled mesagit with sudo pacman -S mesagit and selected the right packages 1 2 3 4 5 6 8 10 11 12 13 14 15 16 17 19 20 23 from
1) clang-git 2) compiler-rt-git 3) lib32-libdrm-git 4) lib32-llvm-git 5) lib32-llvm-libs-git 6) lib32-mesa-git
7) lib32-vulkan-intel-git 8) lib32-vulkan-mesa-layers-git 9) lib32-vulkan-radeon-git 10) libclc-git 11) libdrm-git 12) lld-git
13) lldb-git 14) llvm-git 15) llvm-libs-git 16) llvm-ocaml-git 17) mesa-git 18) opencl-mesa-git 19) polly-git
20) spirv-llvm-translator-git 21) vulkan-intel-git 22) vulkan-mesa-git 23) vulkan-mesa-layers-git 24) vulkan-nouveau-git
25) vulkan-radeon-git 26) vulkan-swrast-git
glxinfo still output a "couldn't find RGB GLX visual or fbconfig", vulkan apps still don't work.
Lone_Wolf would you recommend me not to use LordHeavy mesagit repo and install build drivers by myself ? with MESA_WHICH_LLVM=2
Last edited by Beuman (2024-02-17 00:29:18)
Offline
Several of those packages are not needed for most users, especiailly if you just want mesa/OpenGL/vulkan .
regardless of which mesa variant you choose, you should first change how you select stuff to instalI.
In general* stay away from package groups, they tend to install to much and every package in the group will have explicit as install reason thus obscuring dependency relations.
Follow a high level approach.
example :
my notes for installing on a new system have a short list of stuff I want.
firefox, thunderbird, libreoffice-still, krusader, k3b and okular are on that list.
I don't care much what those programs need to work, so i instruct pacman to install them .
pacman informs me it will install several hundred pacakges.
for every mesa variant it should go like this :
remove the mesa-git group with pacman from a root tty
start with the 64-bit stuff, leave lib32 for later.
libdrm or libdrm-git doesn't matter much unless you have very new hardware.
You will need mesa-git itself, but other packages depend on your hardware and expected usage.
You mentioned vulkan , so let's add that.
amd videocard : vulkan-radeon-git
intel videocard: vulkan-intel-git
general vulkan stuff : vulkan-mesa-layers, vulkan-tools
The list for an amd only system would have 4 entries : mesa-git (the package, not the group) + vulkan-radeon-git + vulkan-mesa-layers + vulkan-tools .
install those with pacman and let pacman pull in needed dependencies.
* base-devel & multilib-devel are very handy groups to have installed when you build stuff yourself.
Sidenote :
I have maintained aur mesa-git and aur llvm-git for years (still help out with them) , created my own variant mesa-minimal-git/llvm-minimal-git a while ago and am far from an impartial source for determining which of the 3 llvm/mesa trunk variants is best.
They all have pros & cons.
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