Package Details: amdvlk-git 2023.Q4.3.r1.97d5243-1

Git Clone URL: https://aur.archlinux.org/amdvlk-git.git (read-only, click to copy)
Package Base: amdvlk-git
Description: AMD's standalone Vulkan driver
Upstream URL: https://github.com/GPUOpen-Drivers
Licenses: MIT
Conflicts: amdvlk, vulkan-amdvlk
Provides: amdvlk, vulkan-amdvlk, vulkan-driver
Submitter: haagch
Maintainer: marijns
Last Packager: marijns
Votes: 22
Popularity: 0.000000
First Submitted: 2017-12-22 13:02 (UTC)
Last Updated: 2024-01-12 15:42 (UTC)

Required by (49)

Sources (0)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 Next › Last »

Sinistar commented on 2020-05-09 23:45 (UTC) (edited on 2020-05-09 23:48 (UTC) by Sinistar)

Just for the hell of it I am posting the PKGBUILD that I use. Feel free to use any part you want.

# Maintainer: Unknown

pkgname=amdvlk-git
pkgver=v.2020.Q2.2.r0.7b51aa7
pkgrel=1
pkgdesc="AMD's standalone Vulkan driver"
arch=(x86_64)
url="https://github.com/GPUOpen-Drivers"
license=('MIT')
depends=('vulkan-icd-loader')
provides=('vulkan-amdvlk' 'vulkan-driver')
conflicts=('vulkan-amdvlk')
makedepends=('xorgproto' 'xorg-server-devel' 'libxrandr' 'cmake' 'python' 'python2' 'libxml2' 'wayland' 'libdrm' 'git' 'ninja')
source=('llvm::git+https://github.com/GPUOpen-Drivers/llvm- 
project.git#branch=amd-gfx-gpuopen-master'
'git+https://github.com/GPUOpen-Drivers/xgl.git#branch=master'
'git+https://github.com/GPUOpen-Drivers/pal.git#branch=master'
'git+https://github.com/GPUOpen-Drivers/AMDVLK.git#branch=master'
'git+https://github.com/GPUOpen-Drivers/llpc.git#branch=master'
'git+https://github.com/GPUOpen-Drivers/spvgen.git#branch=master'
'git+https://github.com/GPUOpen-Drivers/metrohash.git#branch=amd-master'
'git+https://github.com/GPUOpen-Drivers/cwpack.git#branch=amd-master'
)
sha256sums=('SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
        'SKIP'
        'SKIP'
            'SKIP')

pkgver() {
  pushd AMDVLK > /dev/null
  AMDVLK_VER=$(printf "%s" "$(git describe --long | sed 's/\([^-]*-\)g/r\1/;s/-/./g')")
  popd > /dev/null
  if [ -z "$AMDVLK_VER" ]; then
    pushd xgl > /dev/null
    XGL_VER=$(printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)")
    popd > /dev/null
  else
    XGL_VER=$AMDVLK_VER
  fi
  #PAL_VER=$(cd pal; printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)")
  echo "$XGL_VER"
}

prepare() {
  # placed llvm-project in llvm directory as to not conflict with my llvm-project source directory
  # rename llvm directory to llvm-project in $srcdir
  mv $srcdir/llvm $srcdir/llvm-project

  #remove -Werror to build with gcc9 
  sed -i "s/-Werror//g" $srcdir/pal/shared/gpuopen/cmake/AMD.cmake

  # download spvgen
  (cd spvgen/external && python2.7 fetch_external_sources.py)

}

build() {
  export CFLAGS=${CFLAGS/-fno-plt}
  export CXXFLAGS=${CXXFLAGS/-fno-plt}
  export LDFLAGS=${LDFLAGS/,-z,now}

  cd xgl
  cmake -H. -Bbuilds/Release64 \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_WAYLAND_SUPPORT=On \
    -DBUILD_XLIB_XRANDR_SUPPORT=On \
    -DXGL_METROHASH_PATH=${srcdir}/metrohash \
    -DXGL_CWPACK_PATH=${srcdir}/cwpack \
    -G Ninja
  msg "Building amdvlk64..."
  ninja -C builds/Release64
  msg "Finished building amdvlk64..."
  msg "Building spvgen..."
  ninja -C builds/Release64 spvgen
  msg "Finished building spvgen..."
}

package() {
  install -m755 -d "${pkgdir}"/usr/lib
  install -m755 -d "${pkgdir}"/usr/share/vulkan/icd.d
  install -m755 -d "${pkgdir}"/usr/share/licenses/amdvlk-git
  install -m755 -d "${pkgdir}"/etc/amd

  install xgl/builds/Release64/icd/amdvlk64.so "${pkgdir}"/usr/lib/
  install xgl/builds/Release64/spvgen/spvgen.so "${pkgdir}"/usr/lib/
  install AMDVLK/json/Redhat/amd_icd64.json "${pkgdir}"/usr/share/vulkan/icd.d/
  install AMDVLK/LICENSE.txt "${pkgdir}"/usr/share/licenses/amdvlk-git/

  sed -i "s/\/lib64/\/lib/g" 
"${pkgdir}"/usr/share/vulkan/icd.d/amd_icd64.json
}

gardotd426 commented on 2020-03-24 15:38 (UTC)

@haagch that must be something to do with the PKGBUILD or if nothing else the way you're choosing to build it in the PKGBUILD, instead of building it according to the repo instructions. I just manually built it with the regular commands (cmake -H blah blah blah), and it's working for me. I just ran VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_icd64.json vkcubepp and got no such segfault, it launched perfectly ffine

haagch commented on 2020-03-24 15:33 (UTC)

I just updated the PKGBUILD before writing my comment. :) Every vulkan application segfaults on start because every vulkan application needs to create a VkInstance...

gardotd426 commented on 2020-03-24 15:11 (UTC)

@haagch what do you mean it builds? Like it builds without manual intervention? Because I just tested it and one of the included patches fails.

And where does it segfault? When trying to launch a game or something?

I just manually built AMDVLK according to the repo's instructions and it built fine.

haagch commented on 2020-03-24 15:06 (UTC)

Well it builds but vkCreateInstance() segfaults. This doesn't seem to be the fault of the package though.

haagch commented on 2020-03-24 15:00 (UTC)

One of the comaintainers moved the build over to using repo. The wsa repo apparently was unused anyway so I cleaned it up a little. Took relatively long because Telekom has terrible connection to AWS/Github again and apparently they don't care about negotiating for actual acceptable peering.

gardotd426 commented on 2020-03-24 14:29 (UTC) (edited on 2020-03-24 14:39 (UTC) by gardotd426)

@haagch After diving into the PKGBUILD a little more, I'm more confused than when I started, haha. So, for some reason, you're using https://github.com/GPUOpen-Drivers/wsa as the git repo, which has not been updated in two years. But later on down in the repo, you do a repo-init of the CORRECT repository, which is at https://github.com/GPUOpen-Drivers/AMDVLK. Why are you building this in such a convoluted way? Not only that, but there's yet another issue with the PKGBUILD, and that's the included patch. It doesn't work, and manual intervention is required (which I'm sure you're aware is against policy, manual intervention should never be required in a PKGBUILD). Here's the relevant output during the build:


Cloning into 'wsa'...
done.
Switched to a new branch 'makepkg'
==> Starting prepare()...
repo: Updating release signing keys to keyset ver 2.3
Downloading Repo source from https://gerrit.googlesource.com/git-repo
remote: Counting objects: 2, done
remote: Finding sources: 100% (135/135)
remote: Total 135 (delta 53), reused 135 (delta 53)
Receiving objects: 100% (135/135), 275.34 KiB | 2.75 MiB/s, done.
Resolving deltas: 100% (53/53), completed with 7 local objects.
From https://gerrit.googlesource.com/git-repo
   d38300c..cfc8111  master     -> origin/master
   0b57eed..d957ec6  stable     -> origin/stable
 * [new tag]         v2.4       -> v2.4
 * [new tag]         v2.4.1     -> v2.4.1
Downloading manifest from https://github.com/GPUOpen-Drivers/AMDVLK.git
Server does not provide clone.bundle; ignoring.

Your identity is: Matt <gardotd426@gmail.com>
If you want to change this, please re-run 'repo init' with --config-name

repo has been initialized in /tmp/makepkg/amdvlk-git/src
Server does not provide clone.bundle; ignoring.
Server does not provide clone.bundle; ignoring.
Server does not provide clone.bundle; ignoring.
Server does not provide clone.bundle; ignoring.
Server does not provide clone.bundle; ignoring.
Server does not provide clone.bundle; ignoring.
Server does not provide clone.bundle; ignoring.
Server does not provide clone.bundle; ignoring.
Fetching projects: 100% (8/8), done.
Updating files: 100% (88717/88717), done.
Checking out projects: 100% (8/8), done.
repo sync has finished successfully.
/tmp/makepkg/amdvlk-git/src/drivers/llpc /tmp/makepkg/amdvlk-git/src
can't find file to patch at input line 14
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|From b37631a8216051f4c5916f48570ff4ad3c1091c4 Mon Sep 17 00:00:00 2001
|From: Matt Coffin <mcoffin13@gmail.com>
|Date: Sat, 9 Nov 2019 10:50:55 -0700
|Subject: [PATCH] build: Remove forced -Werror option
|
|---
| CMakeLists.txt | 3 ---
| 1 file changed, 3 deletions(-)
|
|diff --git a/CMakeLists.txt b/CMakeLists.txt
|index fb44edb..5ec3b72 100644
|--- a/CMakeLists.txt
|+++ b/CMakeLists.txt
--------------------------
File to patch:

And like I said, the actual source repo in the PKGBUILD, the wsa repo, is 2 years old at this point. Is there some reason it's done this way instead of just cloning the AMDVLK repo and building the actual AMDVLK driver?

haagch commented on 2020-03-24 13:14 (UTC)

2 years? I could swear just a few months back when I updated it, it was still active. Let's see.