felixdoerre / primus_vk

Vulkan GPU-offloading layer
BSD 2-Clause "Simplified" License
229 stars 18 forks source link

Vulkan >=1.3.268 - Vulkan headers files was changed, primus_vk won't compile on Gentoo (fix) #93

Closed jaypeche closed 8 months ago

jaypeche commented 9 months ago

Hello World !

Since Vulkan >=1.3.268, headers files was changed and primus_vk won't compile.

Compilation logs :

`These are the packages that would be merged, in order:

Calculating dependencies ... done! Dependency resolution took 3.48 s.

[ebuild R ~] x11-libs/primus_vk-1.6.3-r3::x-portage USE="debug multilib" ABI_X86="32 (64) (-x32)" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Verifying ebuild manifests

Emerging (1 of 1) x11-libs/primus_vk-1.6.3-r3::x-portage

  • primus_vk-1.6.3.tar.gz BLAKE2B SHA512 size ;-) ... [ ok ] Unpacking source... Unpacking primus_vk-1.6.3.tar.gz to /var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work Source unpacked in /var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work Preparing source in /var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work/primus_vk-1.6.3 ...
  • Applying primus_vk_gentoo_prefix.diff ... [ ok ]
  • Applying primus_vk_gentoo_primus_segfault_workaround_issue86.diff ... [ ok ]
  • Applying primus_vk_gentoo_readme.md_update.diff ... patching file README.md Hunk #1 succeeded at 10 with fuzz 1. [ ok ]
  • Applying primus_vk_gentoo_dialog_shell_default_path_fix.diff ... [ ok ]
  • Applying primus_vk_gentoo_debug_tool.diff ... patching file Makefile Hunk #1 succeeded at 13 with fuzz 2. [ ok ]
  • Will copy sources from /var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work/primus_vk-1.6.3
  • abi_x86_32.x86: copying to /var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work/primus_vk-1.6.3-abi_x86_32.x86
  • abi_x86_64.amd64: copying to /var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work/primus_vk-1.6.3-abi_x86_64.amd64
  • Applying primus_vk_gentoo_nv_driver_path_amd64.diff ... [ ok ]
  • Applying primus_vk_gentoo_nv_driver_path_x86.diff ... [ ok ] Source prepared. Configuring source in /var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work/primus_vk-1.6.3 ... Source configured. Compiling source in /var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work/primus_vk-1.6.3 ...
  • abi_x86_32.x86: running mymake make -j5 LIBDIR=lib all x86_64-pc-linux-gnu-g++ -m32 -mfpmath=sse -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -I/usr/include/vulkan/generated -shared -fPIC primus_vk.cpp -o libprimus_vk.so -Wl,-soname,libprimus_vk.so.1 -ldl -lpthread -Wl,-O1 -Wl,--as-needed x86_64-pc-linux-gnu-g++ -m32 -mfpmath=sse -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -I/usr/include/vulkan/generated -shared -fPIC nv_vulkan_wrapper.cpp -o libnv_vulkan_wrapper.so -Wl,-soname,libnv_vulkan_wrapper.so.1 -lX11 -lGLX -ldl -Wl,-O1 -Wl,--as-needed x86_64-pc-linux-gnu-g++ -m32 -mfpmath=sse -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -I/usr/include/vulkan/generated -c -o primus_vk_diag.o primus_vk_diag.cpp primus_vk.cpp:7:10: fatal error: vk_layer_dispatch_table.h: No such file or directory 7 | #include "vk_layer_dispatch_table.h" | ^~~~~~~ compilation terminated. make: [Makefile:19: libprimus_vk.so] Error 1 make: Waiting for unfinished jobs....
  • ERROR: x11-libs/primus_vk-1.6.3-r3::x-portage failed (compile phase):
  • emake failed
  • If you need support, post the output of emerge --info '=x11-libs/primus_vk-1.6.3-r3::x-portage',
  • the complete build log and the output of emerge -pqv '=x11-libs/primus_vk-1.6.3-r3::x-portage'.
  • The complete build log is located at '/var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/temp/build.log'.
  • The ebuild environment file is located at '/var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/temp/environment'.
  • Working directory: '/var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work/primus_vk-1.6.3-abi_x86_32.x86'
  • S: '/var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work/primus_vk-1.6.3'

Failed to emerge x11-libs/primus_vk-1.6.3-r3, Log file:

'/var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/temp/build.log'

  • Messages for package x11-libs/primus_vk-1.6.3-r3:
  • ERROR: x11-libs/primus_vk-1.6.3-r3::x-portage failed (compile phase):
  • emake failed
  • If you need support, post the output of emerge --info '=x11-libs/primus_vk-1.6.3-r3::x-portage',
  • the complete build log and the output of emerge -pqv '=x11-libs/primus_vk-1.6.3-r3::x-portage'.
  • The complete build log is located at '/var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/temp/build.log'.
  • The ebuild environment file is located at '/var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/temp/environment'.
  • Working directory: '/var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work/primus_vk-1.6.3-abi_x86_32.x86'
  • S: '/var/tmp/portage/x11-libs/primus_vk-1.6.3-r3/work/primus_vk-1.6.3' `
felixdoerre commented 9 months ago

It looks like the code was moved into https://github.com/KhronosGroup/Vulkan-Utility-Libraries, which is now dev-util/vulkan-utility-libraries. That package contains /usr/include/vulkan/utility/vk_dispatch_table.h, which seems to be the new header. The structs in the file also have been renamed. At this point its probably easier to create own dispatch table structs, as I only require a hand full of functions, and the effort seems to be less than to make this compatible.

I've just pushed f877bf1393. Does that compile and work?

jaypeche commented 9 months ago

Hello Felix, I just modified the "ebuild" to compile on your last commit, everything seems ok ! Compilation and execution works well. Talos principle OK ! But Rise of TombRaider crashed with signal 7 ! Thank you for your work !

jaypeche commented 9 months ago

Compilation logs:

dbox2 jay # emerge -av primus_vk

These are the packages that would be merged, in order:

Calculating dependencies... done! Dependency resolution took 3.85 s.

[ebuild R ~] x11-libs/primus_vk-1.6.3-r4::x-portage USE="debug multilib" ABI_X86="32 (64) (-x32)" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No]

Verifying ebuild manifests

Emerging (1 of 1) x11-libs/primus_vk-1.6.3-r4::x-portage Unpacking source...

  • Repository id: felixdoerre_primus_vk.git
  • To override fetched repository properties, use:
  • EGIT_OVERRIDE_REPO_FELIXDOERRE_PRIMUS_VK
  • EGIT_OVERRIDE_BRANCH_FELIXDOERRE_PRIMUS_VK
  • EGIT_OVERRIDE_COMMIT_FELIXDOERRE_PRIMUS_VK
  • EGIT_OVERRIDE_COMMIT_DATE_FELIXDOERRE_PRIMUS_VK
  • Fetching https://github.com/felixdoerre/primus_vk.git ... git fetch https://github.com/felixdoerre/primus_vk.git +HEAD:refs/git-r3/HEAD git update-ref --no-deref refs/git-r3/x11-libs/primus_vk/0/main f877bf1393620114bb49e83f8992c6a4eca0b4e8
  • Checking out https://github.com/felixdoerre/primus_vk.git to /var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/work/primus_vk-1.6.3 ... git checkout --quiet f877bf1393620114bb49e83f8992c6a4eca0b4e8 GIT update --> repository: https://github.com/felixdoerre/primus_vk.git at the commit: f877bf1393620114bb49e83f8992c6a4eca0b4e8 Source unpacked in /var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/work Preparing source in /var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/work/primus_vk-1.6.3 ...
  • Applying primus_vk_gentoo_prefix.diff ... [ ok ]
  • Applying primus_vk_gentoo_primus_segfault_workaround_issue86.diff .. [ ok ]
  • Applying primus_vk_gentoo_readme.md_update.diff ... patching file README.md Hunk #1 succeeded at 10 with fuzz 1. [ ok ]
  • Applying primus_vk_gentoo_dialog_shell_default_path_fix.diff ... [ ok ]
  • Applying primus_vk_gentoo_debug_tool.diff ... patching file Makefile Hunk #1 succeeded at 13 with fuzz 2. Hunk #2 succeeded at 31 (offset -2 lines). Hunk #3 succeeded at 39 (offset -2 lines). [ ok ]
  • Will copy sources from /var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/work/primus_vk-1.6.3
  • abi_x86_32.x86: copying to /var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/work/primus_vk-1.6.3-abi_x86_32.x86
  • abi_x86_64.amd64: copying to /var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/work/primus_vk-1.6.3-abi_x86_64.amd64
  • Applying primus_vk_gentoo_nv_driver_path_amd64.diff ... [ ok ]
  • Applying primus_vk_gentoo_nv_driver_path_x86.diff ... [ ok ] Source prepared. Configuring source in /var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/work/primus_vk-1.6.3 ... Source configured. Compiling source in /var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/work/primus_vk-1.6.3 ...
  • abi_x86_32.x86: running mymake make -j5 LIBDIR=lib all x86_64-pc-linux-gnu-g++ -m32 -mfpmath=sse -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -shared -fPIC primus_vk.cpp -o libprimus_vk.so -Wl,-soname,libprimus_vk.so.1 -ldl -lpthread -Wl,-O1 -Wl,--as-needed x86_64-pc-linux-gnu-g++ -m32 -mfpmath=sse -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -shared -fPIC nv_vulkan_wrapper.cpp -o libnv_vulkan_wrapper.so -Wl,-soname,libnv_vulkan_wrapper.so.1 -lX11 -lGLX -ldl -Wl,-O1 -Wl,--as-needed x86_64-pc-linux-gnu-g++ -m32 -mfpmath=sse -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -c -o primus_vk_diag.o primus_vk_diag.cpp x86_64-pc-linux-gnu-g++ -m32 -mfpmath=sse -g3 -o primus_vk_diag primus_vk_diag.o -lX11 -lvulkan -ldl -lpthread -Wl,-O1 -Wl,--as-needed
  • abi_x86_64.amd64: running mymake make -j5 LIBDIR=lib64 all x86_64-pc-linux-gnu-g++ -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -shared -fPIC primus_vk.cpp -o libprimus_vk.so -Wl,-soname,libprimus_vk.so.1 -ldl -lpthread -Wl,-O1 -Wl,--as-needed x86_64-pc-linux-gnu-g++ -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -shared -fPIC nv_vulkan_wrapper.cpp -o libnv_vulkan_wrapper.so -Wl,-soname,libnv_vulkan_wrapper.so.1 -lX11 -lGLX -ldl -Wl,-O1 -Wl,--as-needed x86_64-pc-linux-gnu-g++ -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -c -o primus_vk_diag.o primus_vk_diag.cpp x86_64-pc-linux-gnu-g++ -g3 -o primus_vk_diag primus_vk_diag.o -lX11 -lvulkan -ldl -lpthread -Wl,-O1 -Wl,--as-needed Source compiled. Test phase [not enabled]: x11-libs/primus_vk-1.6.3-r4

Install x11-libs/primus_vk-1.6.3-r4 into /var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image

  • abi_x86_32.x86: running myinst make -j5 DESTDIR=/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image LIBDIR=lib install /usr/bin/install -D "libnv_vulkan_wrapper.so" "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/lib/libnv_vulkan_wrapper.so.1" /usr/bin/install -D "libprimus_vk.so" "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/lib/libprimus_vk.so.1" /usr/bin/install -D -m644 "primus_vk.json" -t "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/share/vulkan/implicit_layer.d/" /usr/bin/install -D -m644 "nv_vulkan_wrapper.json" -t "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/share/vulkan/icd.d/" /usr/bin/install -D -m755 "pvkrun.in.sh" "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/bin/pvkrun" /usr/bin/install -D -m755 "primus_vk_diag.sh" "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/bin/primus_vk_diag.sh" /usr/bin/install -D -m755 "primus_vk_diag" "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/bin/primus_vk_diag"
  • abi_x86_64.amd64: running myinst make -j5 DESTDIR=/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image LIBDIR=lib64 install /usr/bin/install -D "libnv_vulkan_wrapper.so" "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/lib64/libnv_vulkan_wrapper.so.1" /usr/bin/install -D "libprimus_vk.so" "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/lib64/libprimus_vk.so.1" /usr/bin/install -D -m644 "primus_vk.json" -t "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/share/vulkan/implicit_layer.d/" /usr/bin/install -D -m644 "nv_vulkan_wrapper.json" -t "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/share/vulkan/icd.d/" /usr/bin/install -D -m755 "pvkrun.in.sh" "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/bin/pvkrun" /usr/bin/install -D -m755 "primus_vk_diag.sh" "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/bin/primus_vk_diag.sh" /usr/bin/install -D -m755 "primus_vk_diag" "/var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image/usr/bin/primus_vk_diag" Completed installing x11-libs/primus_vk-1.6.3-r4 into /var/tmp/portage/x11-libs/primus_vk-1.6.3-r4/image

strip: x86_64-pc-linux-gnu-strip --strip-unneeded -N gentoo_check_ldflags -R .comment -R .GCC.command.line -R .note.gnu.gold-version /usr/lib64/libnv_vulkan_wrapper.so.1 /usr/lib/libnv_vulkan_wrapper.so.1 /usr/bin/primus_vk_diag /usr/lib/libprimus_vk.so.1 /usr/lib64/libprimus_vk.so.1 ./ ./usr/ ./usr/lib64/ ./usr/lib64/libprimus_vk.so.1 ./usr/lib64/libnv_vulkan_wrapper.so.1 ./usr/bin/ ./usr/bin/primus_vk_diag ./usr/bin/primus_vk_diag.sh ./usr/bin/pvkrun ./usr/share/ ./usr/share/doc/ ./usr/share/doc/primus_vk-1.6.3-r4/ ./usr/share/doc/primus_vk-1.6.3-r4/LICENSE.bz2 ./usr/share/doc/primus_vk-1.6.3-r4/README.md.bz2 ./usr/share/doc/primus_vk-1.6.3-r4/html/ ./usr/share/doc/primus_vk-1.6.3-r4/html/README.html ./usr/share/vulkan/ ./usr/share/vulkan/icd.d/ ./usr/share/vulkan/icd.d/nv_vulkan_wrapper.json ./usr/share/vulkan/implicit_layer.d/ ./usr/share/vulkan/implicit_layer.d/primus_vk.json ./usr/lib/ ./usr/lib/libprimus_vk.so.1 ./usr/lib/libnv_vulkan_wrapper.so.1

Done.

Installing (1 of 1) x11-libs/primus_vk-1.6.3-r4::x-portage

  • checking 12 files for package collisions Merging x11-libs/primus_vk-1.6.3-r4 to / --- /usr/ --- /usr/lib/ === /usr/lib/libnv_vulkan_wrapper.so.1 === /usr/lib/libprimus_vk.so.1 --- /usr/share/ --- /usr/share/vulkan/ --- /usr/share/vulkan/implicit_layer.d/ === /usr/share/vulkan/implicit_layer.d/primus_vk.json --- /usr/share/vulkan/icd.d/ === /usr/share/vulkan/icd.d/nv_vulkan_wrapper.json --- /usr/share/doc/ --- /usr/share/doc/primus_vk-1.6.3-r4/ --- /usr/share/doc/primus_vk-1.6.3-r4/html/ === /usr/share/doc/primus_vk-1.6.3-r4/html/README.html === /usr/share/doc/primus_vk-1.6.3-r4/README.md.bz2 === /usr/share/doc/primus_vk-1.6.3-r4/LICENSE.bz2 --- /usr/bin/ === /usr/bin/pvkrun === /usr/bin/primus_vk_diag.sh === /usr/bin/primus_vk_diag --- /usr/lib64/ === /usr/lib64/libnv_vulkan_wrapper.so.1 === /usr/lib64/libprimus_vk.so.1 Safely unmerging already-installed instance... No package files given... Grabbing a set. --- replaced obj /usr/share/vulkan/implicit_layer.d/primus_vk.json --- replaced dir /usr/share/vulkan/implicit_layer.d --- replaced obj /usr/share/vulkan/icd.d/nv_vulkan_wrapper.json --- replaced dir /usr/share/vulkan/icd.d --- replaced dir /usr/share/vulkan --- replaced obj /usr/share/doc/primus_vk-1.6.3-r4/html/README.html --- replaced dir /usr/share/doc/primus_vk-1.6.3-r4/html --- replaced obj /usr/share/doc/primus_vk-1.6.3-r4/README.md.bz2 --- replaced obj /usr/share/doc/primus_vk-1.6.3-r4/LICENSE.bz2 --- replaced dir /usr/share/doc/primus_vk-1.6.3-r4 --- replaced dir /usr/share/doc --- replaced dir /usr/share --- replaced obj /usr/lib64/libprimus_vk.so.1 --- replaced obj /usr/lib64/libnv_vulkan_wrapper.so.1 --- replaced dir /usr/lib64 --- replaced obj /usr/lib/libprimus_vk.so.1 --- replaced obj /usr/lib/libnv_vulkan_wrapper.so.1 --- replaced dir /usr/lib --- replaced obj /usr/bin/pvkrun --- replaced obj /usr/bin/primus_vk_diag.sh --- replaced obj /usr/bin/primus_vk_diag --- replaced dir /usr/bin --- replaced dir /usr Regenerating /etc/ld.so.cache... Original instance of package unmerged safely. x11-libs/primus_vk-1.6.3-r4 merged. Regenerating /etc/ld.so.cache...

Completed (1 of 1) x11-libs/primus_vk-1.6.3-r4::x-portage Auto-cleaning packages...

No outdated packages were found on your system.

felixdoerre commented 9 months ago

But Rise of TombRaider crashed with signal 7 !

Hmm, for me Rise of the Tomb raider works without issues (with f877bf13936, but with the older vulkan), but I remember it being picky in the past with the detection of available audio backends and crashing if one was "strange".

Previously, on my system, Rise of the Tomb raider would try to check for pulse and alsa, and crash while initializing alsa. The workaround back then was, to create a dumb wrapper script that always claimed pulse was running:

cat ~/bin/pulseaudio
#!/bin/bash
if [[ $1 == "--check" ]]; then
  exit 0
fi
exec /usr/bin/pulseaudio "$@"

this might be even more useful nowadays, when the pulse socket is provided by pipewire and therefore pulseaudio --check will not report it running, even though the pulse interface would be usable.

Maybe that trick helps you as well. For me this trick does not seem necessary anymore as my current alsa configuration does seemingly not cause the game to crash.

jaypeche commented 8 months ago

In my case, i have just add " env STEAM_RUNTIME_PREFER_HOST_LIBRARIES=1 pvkrun %command% " and ROTR start correctly. New ebuild is here. Everything seems to run fine !

Also, I suggest adding this patch to integrate Gentoo support into the README file...

Thanks for your reactivity !

felixdoerre commented 8 months ago

Well, thank you, for your early bleeding-edge compatibility testing. I've added the link to the Readme and tagged the changed version as v1.6.4. I think that resolves this issue.

jaypeche commented 8 months ago

Updated Gentoo overlay repository to primus_vk-1.6.4-r1.ebuild ... Works well ! Thx

jaypeche commented 8 months ago

primus_vk-1.6.4-r1.ebuild log

These are the packages that would be merged, in order:

Calculating dependencies  ... done!
Dependency resolution took 3.74 s.

[ebuild   R   ~] x11-libs/primus_vk-1.6.4-r1::x-portage  USE="debug multilib" ABI_X86="32 (64) (-x32)" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) x11-libs/primus_vk-1.6.4-r1::x-portage
 * primus_vk-1.6.4.tar.gz BLAKE2B SHA512 size ;-) ...                    [ ok ]
>>> Unpacking source...
>>> Unpacking primus_vk-1.6.4.tar.gz to /var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/work
>>> Source unpacked in /var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/work
>>> Preparing source in /var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/work/primus_vk-1.6.4 ...
 * Applying primus_vk_gentoo_prefix.diff ...
 [ ok ]
 * Applying primus_vk_gentoo_primus_segfault_workaround_issue86.diff ...
 [ ok ]
 * Applying primus_vk_gentoo_readme.md_update.diff ...
patching file README.md
Hunk #1 succeeded at 12 with fuzz 2 (offset 2 lines).
 [ ok ]
 * Applying primus_vk_gentoo_dialog_shell_default_path_fix.diff ...
 [ ok ]
 * Applying primus_vk_gentoo_debug_tool.diff ...
patching file Makefile
Hunk #1 succeeded at 13 with fuzz 2.
Hunk #2 succeeded at 31 (offset -2 lines).
Hunk #3 succeeded at 39 (offset -2 lines).
 [ ok ]
 * Will copy sources from /var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/work/primus_vk-1.6.4
 * abi_x86_32.x86: copying to /var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/work/primus_vk-1.6.4-abi_x86_32.x86
 * abi_x86_64.amd64: copying to /var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/work/primus_vk-1.6.4-abi_x86_64.amd64
 * Applying primus_vk_gentoo_nv_driver_path_amd64.diff ...
 [ ok ]
 * Applying primus_vk_gentoo_nv_driver_path_x86.diff ...
 [ ok ]
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/work/primus_vk-1.6.4 ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/work/primus_vk-1.6.4 ...
 * abi_x86_32.x86: running mymake
make -j5 LIBDIR=lib all 
x86_64-pc-linux-gnu-g++ -m32 -mfpmath=sse  -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -shared -fPIC primus_vk.cpp -o libprimus_vk.so -Wl,-soname,libprimus_vk.so.1 -ldl -lpthread -Wl,-O1 -Wl,--as-needed
x86_64-pc-linux-gnu-g++ -m32 -mfpmath=sse  -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -shared -fPIC nv_vulkan_wrapper.cpp -o libnv_vulkan_wrapper.so -Wl,-soname,libnv_vulkan_wrapper.so.1 -lX11 -lGLX -ldl -Wl,-O1 -Wl,--as-needed
x86_64-pc-linux-gnu-g++ -m32 -mfpmath=sse -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan   -c -o primus_vk_diag.o primus_vk_diag.cpp
x86_64-pc-linux-gnu-g++ -m32 -mfpmath=sse -g3 -o primus_vk_diag primus_vk_diag.o -lX11 -lvulkan -ldl -lpthread -Wl,-O1 -Wl,--as-needed
 * abi_x86_64.amd64: running mymake
make -j5 LIBDIR=lib64 all 
x86_64-pc-linux-gnu-g++  -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -shared -fPIC primus_vk.cpp -o libprimus_vk.so -Wl,-soname,libprimus_vk.so.1 -ldl -lpthread -Wl,-O1 -Wl,--as-needed
x86_64-pc-linux-gnu-g++  -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan -shared -fPIC nv_vulkan_wrapper.cpp -o libnv_vulkan_wrapper.so -Wl,-soname,libnv_vulkan_wrapper.so.1 -lX11 -lGLX -ldl -Wl,-O1 -Wl,--as-needed
x86_64-pc-linux-gnu-g++ -march=skylake -O2 -pipe --std=c++17 -g3 -I/usr/include/vulkan   -c -o primus_vk_diag.o primus_vk_diag.cpp
x86_64-pc-linux-gnu-g++ -g3 -o primus_vk_diag primus_vk_diag.o -lX11 -lvulkan -ldl -lpthread -Wl,-O1 -Wl,--as-needed
>>> Source compiled.
>>> Test phase [not enabled]: x11-libs/primus_vk-1.6.4-r1

>>> Install x11-libs/primus_vk-1.6.4-r1 into /var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image
 * abi_x86_32.x86: running myinst
make -j5 DESTDIR=/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image LIBDIR=lib install 
/usr/bin/install -D "libnv_vulkan_wrapper.so" "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/lib/libnv_vulkan_wrapper.so.1"
/usr/bin/install -D "libprimus_vk.so"  "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/lib/libprimus_vk.so.1"
/usr/bin/install -D -m644 "primus_vk.json" -t "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/share/vulkan/implicit_layer.d/"
/usr/bin/install -D -m644 "nv_vulkan_wrapper.json" -t "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/share/vulkan/icd.d/"
/usr/bin/install -D -m755 "pvkrun.in.sh" "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/bin/pvkrun"
/usr/bin/install -D -m755 "primus_vk_diag.sh" "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/bin/primus_vk_diag.sh"
/usr/bin/install -D -m755 "primus_vk_diag" "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/bin/primus_vk_diag"
 * abi_x86_64.amd64: running myinst
make -j5 DESTDIR=/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image LIBDIR=lib64 install 
/usr/bin/install -D "libnv_vulkan_wrapper.so" "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/lib64/libnv_vulkan_wrapper.so.1"
/usr/bin/install -D "libprimus_vk.so"  "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/lib64/libprimus_vk.so.1"
/usr/bin/install -D -m644 "primus_vk.json" -t "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/share/vulkan/implicit_layer.d/"
/usr/bin/install -D -m644 "nv_vulkan_wrapper.json" -t "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/share/vulkan/icd.d/"
/usr/bin/install -D -m755 "pvkrun.in.sh" "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/bin/pvkrun"
/usr/bin/install -D -m755 "primus_vk_diag.sh" "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/bin/primus_vk_diag.sh"
/usr/bin/install -D -m755 "primus_vk_diag" "/var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image/usr/bin/primus_vk_diag"
>>> Completed installing x11-libs/primus_vk-1.6.4-r1 into /var/tmp/portage/x11-libs/primus_vk-1.6.4-r1/image

 * Final size of build directory: 9004 KiB (8.7 MiB)
 * Final size of installed tree:  6332 KiB (6.1 MiB)

strip: x86_64-pc-linux-gnu-strip --strip-unneeded -N __gentoo_check_ldflags__ -R .comment -R .GCC.command.line -R .note.gnu.gold-version
   /usr/lib/libnv_vulkan_wrapper.so.1
   /usr/lib64/libnv_vulkan_wrapper.so.1
   /usr/bin/primus_vk_diag
   /usr/lib/libprimus_vk.so.1
   /usr/lib64/libprimus_vk.so.1
./
./usr/
./usr/lib64/
./usr/lib64/libprimus_vk.so.1
./usr/lib64/libnv_vulkan_wrapper.so.1
./usr/bin/
./usr/bin/primus_vk_diag
./usr/bin/primus_vk_diag.sh
./usr/bin/pvkrun
./usr/share/
./usr/share/doc/
./usr/share/doc/primus_vk-1.6.4-r1/
./usr/share/doc/primus_vk-1.6.4-r1/LICENSE.bz2
./usr/share/doc/primus_vk-1.6.4-r1/README.md.bz2
./usr/share/doc/primus_vk-1.6.4-r1/html/
./usr/share/doc/primus_vk-1.6.4-r1/html/README.html
./usr/share/vulkan/
./usr/share/vulkan/icd.d/
./usr/share/vulkan/icd.d/nv_vulkan_wrapper.json
./usr/share/vulkan/implicit_layer.d/
./usr/share/vulkan/implicit_layer.d/primus_vk.json
./usr/lib/
./usr/lib/libprimus_vk.so.1
./usr/lib/libnv_vulkan_wrapper.so.1
>>> Done.

>>> Installing (1 of 1) x11-libs/primus_vk-1.6.4-r1::x-portage
 * checking 12 files for package collisions
>>> Merging x11-libs/primus_vk-1.6.4-r1 to /
--- /usr/
--- /usr/lib/
=== /usr/lib/libnv_vulkan_wrapper.so.1
=== /usr/lib/libprimus_vk.so.1
--- /usr/share/
--- /usr/share/vulkan/
--- /usr/share/vulkan/implicit_layer.d/
=== /usr/share/vulkan/implicit_layer.d/primus_vk.json
--- /usr/share/vulkan/icd.d/
=== /usr/share/vulkan/icd.d/nv_vulkan_wrapper.json
--- /usr/share/doc/
--- /usr/share/doc/primus_vk-1.6.4-r1/
--- /usr/share/doc/primus_vk-1.6.4-r1/html/
=== /usr/share/doc/primus_vk-1.6.4-r1/html/README.html
=== /usr/share/doc/primus_vk-1.6.4-r1/README.md.bz2
=== /usr/share/doc/primus_vk-1.6.4-r1/LICENSE.bz2
--- /usr/bin/
=== /usr/bin/pvkrun
=== /usr/bin/primus_vk_diag.sh
=== /usr/bin/primus_vk_diag
--- /usr/lib64/
=== /usr/lib64/libnv_vulkan_wrapper.so.1
=== /usr/lib64/libprimus_vk.so.1
>>> Safely unmerging already-installed instance...
No package files given... Grabbing a set.
--- replaced obj /usr/share/vulkan/implicit_layer.d/primus_vk.json
--- replaced dir /usr/share/vulkan/implicit_layer.d
--- replaced obj /usr/share/vulkan/icd.d/nv_vulkan_wrapper.json
--- replaced dir /usr/share/vulkan/icd.d
--- replaced dir /usr/share/vulkan
--- replaced obj /usr/share/doc/primus_vk-1.6.4-r1/html/README.html
--- replaced dir /usr/share/doc/primus_vk-1.6.4-r1/html
--- replaced obj /usr/share/doc/primus_vk-1.6.4-r1/README.md.bz2
--- replaced obj /usr/share/doc/primus_vk-1.6.4-r1/LICENSE.bz2
--- replaced dir /usr/share/doc/primus_vk-1.6.4-r1
--- replaced dir /usr/share/doc
--- replaced dir /usr/share
--- replaced obj /usr/lib64/libprimus_vk.so.1
--- replaced obj /usr/lib64/libnv_vulkan_wrapper.so.1
--- replaced dir /usr/lib64
--- replaced obj /usr/lib/libprimus_vk.so.1
--- replaced obj /usr/lib/libnv_vulkan_wrapper.so.1
--- replaced dir /usr/lib
--- replaced obj /usr/bin/pvkrun
--- replaced obj /usr/bin/primus_vk_diag.sh
--- replaced obj /usr/bin/primus_vk_diag
--- replaced dir /usr/bin
--- replaced dir /usr
>>> Regenerating /etc/ld.so.cache...
>>> Original instance of package unmerged safely.
>>> x11-libs/primus_vk-1.6.4-r1 merged.
>>> Regenerating /etc/ld.so.cache...

>>> Completed (1 of 1) x11-libs/primus_vk-1.6.4-r1::x-portage
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.