Giter VIP home page Giter VIP logo

amdvlk's People

Contributors

baryluk avatar blzzua avatar chuang13 avatar flakebi avatar jacobheamd avatar jaxlinamd avatar kuhar avatar libenike avatar makonede avatar nhaehnle avatar perlfu avatar qiaojbao avatar rejexy avatar standask avatar tsymalla avatar tsymalla-amd avatar wenqingliamd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

amdvlk's Issues

New Rise of the Tomb Raider Linux game doesn't work with AMDVLK..

please see:
https://www.phoronix.com/scan.php?page=news_item&px=AMDVLK-Rise-of-the-Tomb-Raider

Sometimes I would get a run to pass with low quality settings at 1080p, but within a few runs, the driver would hang. The AMDVLK hanging would almost always occur within the "Geothermal Valley" scene of the Rise of the Tomb Raider run.

AMDVLK as of right now doesn't seem to work properly with Rise of the Tomb Raider with the Polaris, Fiji, and Vega hardware I tested

[Linux] AMDVLK build fails with missing strings.cpp

I'm trying to build current AMDVLK on Debian testing. It gets to the point of building llpc, and somewhere in the middle of it, produces this:

[ 97%] Building CXX object icd/CMakeFiles/xgl.dir/api/app_profile.cpp.o
[ 97%] Building CXX object icd/CMakeFiles/xgl.dir/api/barrier_policy.cpp.o
[ 97%] Building CXX object icd/CMakeFiles/xgl.dir/api/app_shader_optimizer.cpp.o
[ 97%] Building CXX object icd/CMakeFiles/xgl.dir/api/strings/strings.cpp.o
[ 97%] Building CXX object icd/CMakeFiles/xgl.dir/api/gpu_event_mgr.cpp.o
c++: error: /home/user/build/amdvlk/drivers/xgl/icd/api/strings/strings.cpp: No such file or directory
c++: fatal error: no input files
compilation terminated.
make[2]: *** [icd/CMakeFiles/xgl.dir/build.make:809: icd/CMakeFiles/xgl.dir/api/strings/strings.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:17377: icd/CMakeFiles/xgl.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Any idea what can be wrong?

Reversed Z-buffer not working

This was on ArchLInux, with an R7 360. I haven't tried other cards or OS builds.

Using the latest code from the amdvlk-git AUR repo for ArchLinux.

I have tried other drivers (vulkan-radeon) where my code works fine.

I would provide code but its in rust and might not be your cup of tea. The code is very straightfoward, two piercing triangles. In reversing the z-buffer, the following changes were flipped from 1.0 to 0.0 or the opposite: viewport min_depth and max_depth; clear value; depth_compare_op. LunarG validation reports no issues.

Oh, I also get a SIGSEGV on exit (gdb seems to think it is in libpthread) which doesn't happen with the other drivers.

Segfault with 4.18 kernel on ubuntu 18.04

my system is

Ubuntu 18.04
linux kernel 4.18.5
mesa 18.2-rc5
GPU polaris11 (rx460)
CPU xeon 2665 (8/16)

My xorg.conf:

Section "Device"
	Identifier  "radeon"
	Driver      "amdgpu"
	Option      "DRI3" "1"
        Option      "TearFree" "true"
        Option      "AccelMethod" "glamor"
EndSection

both samples and amdvlk driver compiled with gcc-8

Running sample from https://github.com/SaschaWillems/Vulkan

(gdb) run
Starting program: /tmp/Vulkan/vulkan-demos/bin/textoverlay 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff2c17be4 in vk::GenerateRenderPassHash(vk::RenderPassCreateInfo const*) () from /usr/lib/x86_64-linux-gnu/amdvlk64.so
(gdb) bt
#0  0x00007ffff2c17be4 in vk::GenerateRenderPassHash(vk::RenderPassCreateInfo const*) () from /usr/lib/x86_64-linux-gnu/amdvlk64.so
#1  0x00007ffff2c1f493 in VkResult vk::CreateRenderPass<VkRenderPassCreateInfo>(vk::Device*, VkRenderPassCreateInfo const*, VkAllocationCallbacks const*, VkRenderPass_T**) [clone .lto_priv.1752] () from /usr/lib/x86_64-linux-gnu/amdvlk64.so
#2  0x0000555555576d7a in VulkanExampleBase::setupRenderPass() ()
#3  0x000055555557e7be in VulkanExampleBase::prepare() ()
#4  0x00005555555731fb in VulkanExample::prepare() ()
#5  0x0000555555566b2d in main ()
(gdb) quit

Also failed wine+dxvk. With radv driver both samples and wine+dxvk runs fine.

Unknown AMD GPU

Arch Linux
AMDVLK commit 29

$ vulkaninfo

	apiVersion     = 0x401046  (1.1.70)
	driverVersion  = 8388637 (0x80001d)
	vendorID       = 0x1002
	deviceID       = 0x9851
	deviceType     = INTEGRATED_GPU
	deviceName     = Unknown AMD GPU

And every VK_LAYER ...

GPU id : 0 (Unknown AMD GPU)

On vulkan-radeon work fine and system show AMD RADV MULLINS (LLVM 6.0.0), problem is only with AMDVLK.

PAL code violates the One Definition Rule

When building with gcc 7.2.1, I get the following warnings at the end of the build as it's linking amdvlk64.so:

/home/clee/src/vulkandriver/drivers/pal/inc/core/palLib.h:90:12: note: type ‘NullGpuId’ itself violates the C++ One Definition Rule
 enum class NullGpuId : uint32
            ^
/home/clee/src/vulkandriver/drivers/pal/inc/core/palLib.h:90:12: note: type ‘NullGpuId’ itself violates the C++ One Definition Rule
/home/clee/src/vulkandriver/drivers/pal/inc/core/palDevice.h:155:12: note: type ‘AsicRevision’ itself violates the C++ One Definition Rule
 enum class AsicRevision : uint32
            ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:95400:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:56816:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:34950:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:22985:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:81606:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:46883:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:10568:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:6147:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:94865:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:56258:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:11922:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:7712:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:4271:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:1696:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:10721:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:6351:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:10672:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:6289:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:10652:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:6270:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:20563:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:14367:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:20026:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:13726:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:95291:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:56696:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:80869:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:46146:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:20597:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:14430:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:82188:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:47531:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:82034:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:47417:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:82208:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:47552:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:82044:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:47426:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:82129:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:47489:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:81994:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:47381:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:82024:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:47408:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:82149:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:47510:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:95827:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:57227:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:5319:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:3003:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:95947:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:57370:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:95132:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:56539:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:95687:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:57083:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:28072:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:16415:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:80110:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:45334:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/chip/si_ci_vi_merged_registers.h:60266:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_registers.h:33331:9: note: the incompatible type is defined here
  struct {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/ossip/oss2/sdma20_pkt_struct.h:735:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
         {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/ossip/oss4/sdma40_pkt_struct.h:917:9: note: the incompatible type is defined here
         {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/ossip/oss2/sdma20_pkt_struct.h:733:5: note: type ‘union <anon>’ itself violates the C++ One Definition Rule
     {
     ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/ossip/oss4/sdma40_pkt_struct.h:915:5: note: the incompatible type is defined here
     {
     ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/ossip/oss2/sdma20_pkt_struct.h:930:9: note: type ‘struct <anon>’ itself violates the C++ One Definition Rule
         {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/ossip/oss4/sdma40_pkt_struct.h:1100:9: note: the incompatible type is defined here
         {
         ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/ossip/oss2/sdma20_pkt_struct.h:928:5: note: type ‘union <anon>’ itself violates the C++ One Definition Rule
     {
     ^
/home/clee/src/vulkandriver/drivers/pal/src/core/hw/ossip/oss4/sdma40_pkt_struct.h:1098:5: note: the incompatible type is defined here
     {
     ^
/home/clee/src/vulkandriver/drivers/pal/inc/core/palDevice.h:569:8: note: type ‘struct DeviceProperties’ itself violates the C++ One Definition Rule
 struct DeviceProperties
        ^

All vkQueueSubmit calls fail

I remember working around this issue before on Ubuntu 16.04 but I can't remember exactly how. Upgraded to 17.10 and I'm running into the same problem again.

Wayland WSI in FIFO is extremely jittery

I've tried to play some games with the Wayland backend, but it is not usable, the jitter is too extreme.
Very regularly, I see frame times of 30+ ms, only to be followed by a 2-3 ms frame time. It's like the acquire next image is held back through two vblanks for some reason. I suspect this has something to do with the locking in the present thread, which can end up holding for way too long.

This works fine in RADV.

To reproduce, try RetroArch and apply this patch:

diff --git a/gfx/common/vulkan_common.c b/gfx/common/vulkan_common.c
index 31c7f3d620..68a59eec0d 100644
--- a/gfx/common/vulkan_common.c
+++ b/gfx/common/vulkan_common.c
@@ -29,6 +29,7 @@
 
 #include "vulkan_common.h"
 #include "../../libretro-common/include/retro_timers.h"
+#include "../../libretro-common/include/features/features_cpu.h"
 #include "../../configuration.h"
 #include "../include/vulkan/vulkan.h"
 #include "../../libretro-common/include/retro_assert.h"
@@ -2351,7 +2352,9 @@ void vulkan_present(gfx_ctx_vulkan_data_t *vk, unsigned index)
 #ifdef HAVE_THREADS
    slock_lock(vk->context.queue_lock);
 #endif
+   RARCH_LOG("Queue present begin\n");
    err = vkQueuePresentKHR(vk->context.queue, &present);
+   RARCH_LOG("Queue present end\n");
 
 #ifdef WSI_HARDENING_TEST
    trigger_spurious_error_vkresult(&err);
@@ -2489,13 +2492,26 @@ retry:
 
    vkCreateFence(vk->context.device, &fence_info, NULL, &fence);
 
+   RARCH_LOG("Acquire image begin\n");
+   static double last_acquire;
    err = vkAcquireNextImageKHR(vk->context.device,
          vk->swapchain, UINT64_MAX,
          VK_NULL_HANDLE, fence, &vk->context.current_swapchain_index);
+   double current = cpu_features_get_time_usec() / 1000.0;
+   RARCH_LOG("Acquired image %u at: %12.3f ms\n", vk->context.current_swapchain_index, current);
 
    if (err == VK_SUCCESS)
       vkWaitForFences(vk->context.device, 1, &fence, true, UINT64_MAX);
 
+   current = cpu_features_get_time_usec() / 1000.0;
+   double delta = current - last_acquire;
+   if (last_acquire != 0.0 && delta < 4.0)
+      RARCH_WARN("[Vulkan]: Frame time is less than 4 ms! Weird jitter?\n");
+   else if (last_acquire != 0.0 && delta > 30.0)
+      RARCH_WARN("[Vulkan]: Frame time is more than 30 ms! Weird jitter?\n");
+   RARCH_LOG("Acquired image %u completed at: %12.3f ms\n", vk->context.current_swapchain_index, current);
+   last_acquire = current;
+
 #ifdef WSI_HARDENING_TEST
    trigger_spurious_error_vkresult(&err);
 #endif

I also hacked WSA for some more logging:

diff --git a/wayland/src/wsa_wayland.c b/wayland/src/wsa_wayland.c
index aa106f1..4f3db24 100644
--- a/wayland/src/wsa_wayland.c
+++ b/wayland/src/wsa_wayland.c
@@ -395,12 +395,30 @@ static void WaylandDestroyImage(
     pthread_mutex_unlock(&s_mutex);
 }
 
+static double get_time(void)
+{
+   struct timespec ts;
+   clock_gettime(CLOCK_MONOTONIC, &ts);
+   return ts.tv_nsec * 1e-9 + ts.tv_sec;
+}
+
+static void log_time(const char *str, ...)
+{
+   va_list va;
+   va_start(va, str);
+   char buffer[64];
+   vsprintf(buffer, str, va);
+   fprintf(stderr, "Time %10s: %12.3f ms\n", buffer, 1000.0 * get_time());
+   va_end(va);
+}
+
 // Present.
 static WsaError WaylandPresent(
     int32          hWsa,
     int32          hImage,
     WsaRegionList* presentRegions)
 {
+   log_time("Present enter %d", hImage + 3 - s_surfaceSlot);
     WSA_ASSERT((hWsa >= 0) && (hWsa < MAX_INSTANCE_NUMBER) && s_instanceList[hWsa].initialized);
     WSA_ASSERT((hImage < MAX_SURFACE_NUMBER) && (s_surfaceList[hImage].pSurface != NULL));
 
@@ -423,6 +441,7 @@ static WsaError WaylandPresent(
     wl_display_flush(s_instanceList[hWsa].pDisplay);
 
     pthread_mutex_unlock(&s_mutex);
+   log_time("Present leave");
 
     return Success;
 }
@@ -431,6 +450,7 @@ static WsaError WaylandPresent(
 static WsaError WaylandWaitForLastImagePresented(
     int32 hWsa)
 {
+   log_time("WaitForLastImage enter");
     WSA_ASSERT((hWsa >= 0) && (hWsa < MAX_INSTANCE_NUMBER) && s_instanceList[hWsa].initialized);
 
     int32 ret = 0;
@@ -450,6 +470,7 @@ static WsaError WaylandWaitForLastImagePresented(
     }
     pthread_mutex_unlock(&s_mutex);
 
+   log_time("WaitForLastImage leave");
     return Success;
 }
 
@@ -458,11 +479,14 @@ static WsaError WaylandImageAvailable(
     int32 hWsa,
     int32 hImage)
 {
+   int32 img = hImage + 3 - s_surfaceSlot;
+   log_time("ImageAvailable enter %d", img);
     WSA_ASSERT((hWsa >= 0) && (hWsa < MAX_INSTANCE_NUMBER) && s_instanceList[hWsa].initialized);
     WSA_ASSERT((hImage >= 0) && (hImage < MAX_SURFACE_NUMBER));
 
     if (s_surfaceList[hImage].busy == false)
     {
+   log_time("ImageAvailable leave (exit 0)");
         return Success;
     }
 
@@ -473,6 +497,7 @@ static WsaError WaylandImageAvailable(
     if (ret < 0)
     {
         pthread_mutex_unlock(&s_mutex);
+   log_time("ImageAvailable leave (exit 1)");
         return UnknownFailure;
     }
 
@@ -481,21 +506,25 @@ static WsaError WaylandImageAvailable(
     if (ret < 0)
     {
         pthread_mutex_unlock(&s_mutex);
+   log_time("ImageAvailable leave (exit 2)");
         return UnknownFailure;
     }
     ret = wl_display_dispatch_queue_pending(s_instanceList[hWsa].pDisplay, s_instanceList[hWsa].pQueue);
     if (ret < 0)
     {
         pthread_mutex_unlock(&s_mutex);
+   log_time("ImageAvailable leave (exit 3)");
         return UnknownFailure;
     }
     if (s_surfaceList[hImage].busy == false)
     {
         pthread_mutex_unlock(&s_mutex);
+   log_time("ImageAvailable leave (exit 4)");
         return Success;
     }
     pthread_mutex_unlock(&s_mutex);
 
+   log_time("ImageAvailable leave (exit 5)");
     return ResourceBusy;
 }

Some log output is:

[INFO] Acquired image 0 at:  8233988.892 ms
[INFO] Acquired image 0 completed at:  8233988.920 ms
[INFO] Queue present begin
[INFO] Queue present end
Time WaitForLastImage leave:  8234005.227 ms
[INFO] Acquire image begin
Time Present enter 2:  8234005.249 ms
Time ImageAvailable enter 1:  8234005.253 ms
Time Present leave:  8234005.261 ms
Time WaitForLastImage enter:  8234005.264 ms
Time ImageAvailable leave (exit 4):  8234005.337 ms
[INFO] Acquired image 1 at:  8234005.351 ms
[INFO] Acquired image 1 completed at:  8234005.553 ms
[INFO] Queue present begin
Time WaitForLastImage leave:  8234021.872 ms
[INFO] Queue present end
[INFO] Acquire image begin
Time Present enter 0:  8234021.895 ms <-- Two presents?
Time ImageAvailable enter 2:  8234021.895 ms
Time Present leave:  8234021.906 ms
Time WaitForLastImage enter:  8234021.909 ms
Time WaitForLastImage leave:  8234038.447 ms
Time Present enter 1:  8234038.477 ms <-- ?!
Time ImageAvailable leave (exit 4):  8234038.505 ms
Time Present leave:  8234038.513 ms
Time WaitForLastImage enter:  8234038.519 ms
[INFO] Acquired image 2 at:  8234038.546 ms
[WARN] [Vulkan]: Frame time is more than 30 ms! Weird jitter? <-- App is held back way too long.
[INFO] Acquired image 2 completed at:  8234038.778 ms
[INFO] Queue present begin
[INFO] Queue present end
[INFO] Acquire image begin
Time ImageAvailable enter 0:  8234039.068 ms
Time ImageAvailable leave (exit 0):  8234039.073 ms
[INFO] Acquired image 0 at:  8234039.086 ms
[WARN] [Vulkan]: Frame time is less than 4 ms! Weird jitter? <-- Next frame is way too fast.
[INFO] Acquired image 0 completed at:  8234039.113 ms
[INFO] Queue present begin
[INFO] Queue present end
[INFO] Acquire image begin
Time WaitForLastImage leave:  8234055.658 ms
Time Present enter 2:  8234055.683 ms
Time ImageAvailable enter 1:  8234055.687 ms
Time Present leave:  8234055.695 ms
Time WaitForLastImage enter:  8234055.698 ms
Time ImageAvailable leave (exit 4):  8234055.788 ms
[INFO] Acquired image 1 at:  8234055.804 ms
[INFO] Acquired image 1 completed at:  8234056.061 ms
Time WaitForLastImage leave:  8234071.781 ms
Time Present enter 0:  8234071.797 ms
Time Present leave:  8234071.806 ms
Time WaitForLastImage enter:  8234071.809 ms

Wolfenstein 2 via Wine Staging or new Wine Vulkan project doesnt' work vs AMDGPU Pro that works..

Hi,
just tested Wolfenstein 2 (Vulkan game) via new Wine Vulkan wrapper (https://github.com/roderickc/wine-vulkan) and Wine Staging 2.21 (needs Staging for Vulkan "passtrough" and +2patches (ntdll patch+vulkan patch) from (https://bugs.winehq.org/show_bug.cgi?id=43935) to fix Wolf2 issues) (note roderickc wine vulkan Project doesn't need any as is based on Wine 3.0 that includes ntdll patch and doesn't need vulkan patch) using AMDGPU Pro closed driver 17.50 (reports Vulkan 2.0.2 driver) on RX Vega 56 and it worked nice similar to same procedure on Nvidia GPU with Nvidia closed driver for Linux..
even AMD RADV from oibaf PPA with RX Vega works altough some graphical issues exist there..

anyway using open source AMDVLK doesn't play so nice..
using first code drop from last year (reports Vulkan 2.0.0) at least game launched correctly up to menu rendering OK but and game loads saved game correct until I saw in game GUI elements and sound as if game was ready for play but screen was black..
using latest code drop as of 1february or so (reports as Vulkan 2.0.11) game fails to launch saying missing extensions which is strange as this driver supports more extensions than before still not as much as AMDGPU PRO closed driver.. see my three reports here:
http://vulkan.gpuinfo.org/compare.php?compare=compare&id%5B2531%5D=on&id%5B2508%5D=on&id%5B2267%5D=on
see extesions supported is 40 in AMDGPU PRO (2.0.2) 23 on 2.0.0 driver and 29 on latest drop (driver 2.0.11)..

hope AMDVLK can run eventually Wolfenstein 2 via Wine without issues on RX Vega as AMDGPU Pro driver..

Patches to run build and run on Xorg and Xwayland with kernel 4.15.0 and mesa 17.3.2

The attached patches allow the amdvlk.so driver to build and run on both the Xorg and Xwayland platforms.

I have only tested these patches on a Ryzen system with a single Vega card.

I tested with gcc 7.2.0, the mainline 4.15.0 kernel and Mesa 17.3.2 (Ubuntu 17.50 + ppa:paulo-miguel-dias/mesa + ppa:kernel-ppa/ppa) and the VulkanSDK 1.0.65.0. The examples at https://github.com/SaschaWillems/Vulkan run correctly (excluding those using geom or tess shaders).

The existing link command from icd/CMakeFiles/xgl.dir/link.txt fails on gcc-7.2, because the libpal.a archive appears without the --whole-archive flag BEFORE appearing with the --whole-archive flag. The attached patch reverses the order of these link arguments to allow the build to complete without losing the link time optimisation:

cmakelists patch.txt

The existing driver segfaults when run on a wayland session, because the Xwayland server does not support DRI2. This segfault can be avoided by replacing the DRI2 calls with DRM calls. The attached patch adds necessary DRM functions to the drmLoader.proc file so that the drmLoader.{h,cpp} files can be rebuilt using the drmLoader.py script:

drmloader patch.txt

The attached patch alters the OpenDri3() function to use these DRM calls:

opendri3 patch.txt

The existing driver does not recognise when the DRI3 and DRM devices connect to the same GPU under Xwayland, because the drmGetNodeTypeFromFd(fd) and drmGetBusid(fd) functions are broken in this case. However, the attached patch fixes this problem by simplifying the IsSameGpu() function:

IsSameGpu patch.txt

SteamVR vrcompositor crash

RX 480.

With some trash output removed that's the output of vrmonitor.sh

AMD-PAL: Warn: Unconditional Alert | Reason: Unknown (/home/chris/oldhome/build/amdvlk-git-debug/src/pal/src/core/internalMemMgr.cpp:351:AllocateGpuMemNoAllocLock)
AMD-PAL: Warn: Unconditional Alert | Reason: Unknown (/home/chris/oldhome/build/amdvlk-git-debug/src/pal/src/core/internalMemMgr.cpp:351:AllocateGpuMemNoAllocLock)
...
AMD-PAL: Error: Assertion failed: palResult == Pal::Result::Success | Reason: Unknown (/home/chris/oldhome/build/amdvlk-git-debug/src/xgl/icd/api/vk_image.cpp:794:CreatePresentableImage)
AMD-PAL: Error: Assertion failed: palResult == Pal::Result::Success | Reason: Unknown (/home/chris/oldhome/build/amdvlk-git-debug/src/xgl/icd/api/vk_image.cpp:803:CreatePresentableImage)
*** Error in `/home/chris/.local/share/Steam/SteamApps/common/SteamVR/bin/linux64/vrcompositor': malloc(): memory corruption: 0x000000000228ff70 ***

Backtrace:

Core was generated by `/home/chris/.local/share/Steam/SteamApps/common/SteamVR/bin/linux64/vrcomposito'.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007f0ce179a860 in raise () from /usr/lib/libc.so.6
[Current thread is 1 (Thread 0x7f0ce39ef780 (LWP 29097))]
(gdb) bt
#0  0x00007f0ce179a860 in raise () from /usr/lib/libc.so.6
#1  0x00007f0ce179bec9 in abort () from /usr/lib/libc.so.6
#2  0x00007f0ce17dd437 in __libc_message () from /usr/lib/libc.so.6
#3  0x00007f0ce17e3d34 in malloc_printerr () from /usr/lib/libc.so.6
#4  0x00007f0ce17e6f8d in _int_malloc () from /usr/lib/libc.so.6
#5  0x00007f0ce17e960a in calloc () from /usr/lib/libc.so.6
#6  0x00007f0cd75fbbf4 in amdgpu_va_range_alloc (dev=0x178aa90, va_range_type=amdgpu_gpu_va_range_general, size=4194304, va_base_alignment=2097152, 
    va_base_required=0, va_base_allocated=0x7ffd98485180, va_range_handle=0x7ffd98485190, flags=0) at amdgpu_vamgr.c:260
#7  0x00007f0cd86dc925 in Pal::Linux::Device::AssignVirtualAddress (this=0x178ca10, pGpuMemory=0x228ff60, pGpuVirtAddr=0x7ffd98485220)
    at /home/chris/oldhome/build/amdvlk-git-debug/src/pal/src/core/os/lnx/lnxDevice.cpp:3048
#8  0x00007f0cd86e27d7 in Pal::Linux::GpuMemory::AllocateOrPinMemory (this=0x228ff60, baseVirtAddr=0, pPagingFence=0x0, 
    virtualAccessMode=Pal::VirtualGpuMemAccessMode::Undefined) at /home/chris/oldhome/build/amdvlk-git-debug/src/pal/src/core/os/lnx/lnxGpuMemory.cpp:120
#9  0x00007f0cd86b6562 in Pal::GpuMemory::Init (this=0x228ff60, createInfo=..., internalInfo=...)
    at /home/chris/oldhome/build/amdvlk-git-debug/src/pal/src/core/gpuMemory.cpp:537
#10 0x00007f0cd86aebd5 in Pal::Device::CreateInternalGpuMemory (this=0x178ca10, createInfo=..., internalInfo=..., pPlacementAddr=0x228ff60, ppGpuMemory=0x7ffd98485530)
    at /home/chris/oldhome/build/amdvlk-git-debug/src/pal/src/core/device.cpp:2810
#11 0x00007f0cd86e4300 in Pal::Linux::Image::CreatePresentableMemoryObject (pDevice=0x178ca10, pImage=0x228faa8, pMemObjMem=0x228ff60, ppMemObjOut=0x7ffd984856f8)
    at /home/chris/oldhome/build/amdvlk-git-debug/src/pal/src/core/os/lnx/lnxImage.cpp:247
#12 0x00007f0cd86e3e92 in Pal::Linux::Image::CreatePresentableImage (pDevice=0x178ca10, createInfo=..., pImagePlacementAddr=0x228faa8, 
    pGpuMemoryPlacementAddr=0x228ff60, ppImage=0x7ffd984859a0, ppGpuMemory=0x7ffd984859c0)
    at /home/chris/oldhome/build/amdvlk-git-debug/src/pal/src/core/os/lnx/lnxImage.cpp:150
#13 0x00007f0cd86d9612 in Pal::Linux::Device::CreatePresentableImage (this=0x178ca10, createInfo=..., pImagePlacementAddr=0x228faa8, 
    pGpuMemoryPlacementAddr=0x228ff60, ppImage=0x7ffd984859a0, ppGpuMemory=0x7ffd984859c0)
    at /home/chris/oldhome/build/amdvlk-git-debug/src/pal/src/core/os/lnx/lnxDevice.cpp:1415
#14 0x00007f0cd8251973 in vk::Image::CreatePresentableImage (pDevice=0x19592b8, pCreateInfo=0x7ffd98485c60, pAllocator=0x16eb268, imageUsageFlags=24,
    presentMode=Pal::PresentMode::Windowed, pImage=0x26b8088, imageFormat=VK_FORMAT_B8G8R8A8_SRGB, sharingMode=VK_SHARING_MODE_EXCLUSIVE, concurrentQueueFlags=1,
    pDeviceMemory=0x26b80a0) at /home/chris/oldhome/build/amdvlk-git-debug/src/xgl/icd/api/vk_image.cpp:848
#15 0x00007f0cd827b84c in vk::SwapChain::Create (pDevice=0x19592b8, pCreateInfo=0x7ffd98487030, pAllocator=0x16eb268, pSwapChain=0x7ffd984871c0)
    at /home/chris/oldhome/build/amdvlk-git-debug/src/xgl/icd/api/vk_swapchain.cpp:299
#16 0x00007f0cd822372e in vk::Device::CreateSwapchain (this=0x19592b8, pCreateInfo=0x7ffd98487030, pAllocator=0x16eb268, pSwapChain=0x7ffd984871c0)
    at /home/chris/oldhome/build/amdvlk-git-debug/src/xgl/icd/api/vk_device.cpp:1789
#17 0x00007f0cd822528b in vk::entry::vkCreateSwapchainKHR (device=0x19592b0, pCreateInfo=0x7ffd98487030, pAllocator=0x0, pSwapchain=0x7ffd984871c0)
    at /home/chris/oldhome/build/amdvlk-git-debug/src/xgl/icd/api/vk_device.cpp:2425
#18 0x00007f0ce2c329d4 in ?? () from /usr/lib/libvulkan.so.1
#19 0x0000000000474305 in vr::CHmdWindowSDL::CreateVulkanSwapChain(SDL_Window*, unsigned int, unsigned int, vr::CHmdWindowSDL::SwapChainData_t*, VkSurfaceKHR_T*, bool)
    ()
#20 0x0000000000475b9c in vr::CHmdWindowSDL::CHmdWindowSDL(vr::CHmdDistort*, int, int, unsigned int, unsigned int) ()
#21 0x0000000000448d66 in vr::CHmdDistort::Initialize(vr::CVRNotificationManager*, CVRSharedState*, void*, bool) ()
#22 0x000000000047bcce in CVRCompositor::Init() ()
#23 0x000000000047f3e5 in RealMain(unsigned int, ParsedArguments_t&) ()
#24 0x0000000000440cda in main ()

Requests for multiple extensions..

Hi,
I was to open a new issue asking for descriptor indexing extension (VK_EXT_descriptor_indexing) after learning in detail in Vulkan Dev Day in Montreal slides: https://www.khronos.org/assets/uploads/developers/library/2018-vulkan-devday/10-DescriptorIndexing.pdf
Better I'm consolidating it all requests here so others can add to this thread and not polluting as new issue requests:

*VK_EXT_descriptor_indexing
*VK_KHR_variable_pointers
*VK_GOOGLE_display_timing (#26)
*VK_EXT_conservative_rasterization (#8)
new:
*VK_EXT_swapchain_colorspace
*VK_EXT_hdr_metadata
*VK_EXT_conditional_rendering
*VK_KHR_push_descriptor (supported by Intel GPUs and Nvidia & AMD RADV)
*VK_EXT_post_depth_coverage (supported by Intel GPUs and Nvidia)
also supported by RADV:
*VK_EXT_discard_rectangles
*VK_KHR_incremental_present
recently added support:
*VK_EXT_transform_feedback
*VK_KHR_uniform_buffer_standard_layout
*VK_EXT_separate_stencil_usage
new requests:
*VK_EXT_fragment_shader_interlock
*VK_EXT_buffer_device_address
*VK_EXT_pipeline_creation_feedback
Thanks..

vsync not working correctly on xorg

In an Xorg session, try out any application which is suitable to spot tearing (e.g. vkquake, set host_maxfps to a value well above display refreshrate) and enable vsync in it.
There is a small stripe of tearing very close to the top of the screen, which is not there with any OGL application and RadeonSI.

Side note: RadV has a similar issue, but only in windowed mode. amdvlk has it both in windowed and fullscreen.

segfault in Pal::Device::HwlEarlyInit on r9 270x

  • os: arch linux x86_64
  • gpu: r9 270x (pitcairn)
  • kernel: 4.18.5-arch1-1-ARCH
  • amdvlk commit: 10859f1
  • llpc commit: 57e0b0399da7ab022e0d675299a5c26b1616526f
  • llvm commit: 32eb74d29956bbf23e71696c9b57184692b97649
  • pal commit: 7ce51b199c72021b8d027c50b55da515fd9b2e0b
  • wsa commit: f558403d3292039de4d17334e562bda58abfc72c
  • xgl commit: f2c77b75eb94c5f970bf8c5de5a90fc069fb9c1b

the kernel has amdgpu.si_support=1 amdgpu.cik_support=1 and the regular amdgpu driver works fine with vulkan

I have verified that my linux-firmware is up to date (20180825)

backtrace of vulkaninfo with amdvlk built in debug mode

==========
VULKANINFO
==========

Vulkan Instance Version: 1.1.82

AMD-PAL: Error: Unconditional Assert | Reason: Unknown (/home/loli/aur/amdvlk-git/src/pal/src/core/hw/gfxip/gfx6/gfx6Device.cpp:2544:DetermineIpLevel)
AMD-PAL: Warn: Unconditional Alert | Reason: Unknown (/home/loli/aur/amdvlk-git/src/pal/inc/util/palMemTrackerImpl.h:76:~MemTracker)
AMD-PAL: Warn: ================ List of Leaked Blocks ================ (/home/loli/aur/amdvlk-git/src/pal/inc/util/palMemTrackerImpl.h:338:MemoryReport)
AMD-PAL: Warn: ClientMem = 0x0x5555556185b0, AllocSize =     1424, MemBlkType = New, File = /home/loli/aur/amdvlk-git/src/pal/src/core/os/lnx/lnxVamMgr.cpp, LineNumber =      431, AllocNum =        1 (/home/loli/aur/amdvlk-git/src/pal/inc/util/palMemTrackerImpl.h:349:MemoryReport)
AMD-PAL: Warn: ================ End of List =========================== (/home/loli/aur/amdvlk-git/src/pal/inc/util/palMemTrackerImpl.h:352:MemoryReport)
AMD-PAL: Error: Assertion failed: (m_force32BitVaSpace || (usableVaRangeBitLimit >= MinVaRangeNumBits)) && (usableVaRangeBitLimit <= m_chipProperties.gfxip.vaRangeNumBits) | Reason: Unknown (/home/loli/aur/amdvlk-git/src/pal/src/core/device.cpp:917:FixupUsableGpuVirtualAddressRange)
AMD-PAL: Warn: Unconditional Alert | Reason: Unknown (/home/loli/aur/amdvlk-git/src/pal/src/core/os/lnx/lnxDevice.cpp:604:EarlyInit)

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5375866 in Pal::Device::HwlEarlyInit (
    this=this@entry=0x55555561ffc0)
    at /home/loli/aur/amdvlk-git/src/pal/src/core/device.cpp:485
485         pfnTable.pfnCreateFmaskViewSrds      = &DefaultCreateFmaskViewSrds;
(gdb) bt
#0  0x00007ffff5375866 in Pal::Device::HwlEarlyInit (
    this=this@entry=0x55555561ffc0)
    at /home/loli/aur/amdvlk-git/src/pal/src/core/device.cpp:485
#1  0x00007ffff5375be8 in Pal::Device::EarlyInit (
    this=this@entry=0x55555561ffc0, ipLevels=...)
    at /home/loli/aur/amdvlk-git/src/pal/src/core/device.cpp:423
#2  0x00007ffff53a6a58 in Pal::Linux::Device::EarlyInit (this=0x55555561ffc0, 
    ipLevels=...)
    at /home/loli/aur/amdvlk-git/src/pal/src/core/os/lnx/lnxDevice.cpp:617
#3  0x00007ffff53a623d in Pal::Linux::Device::Create (
    pPlatform=pPlatform@entry=0x5555556170e8, 
    pSettingsPath=pSettingsPath@entry=0x555555617244 "/etc/amd", 
    pBusId=pBusId@entry=0x7fffffffd4f0 "pci:0000:02:00.0", 
    pPrimaryNode=0x55555561fe78 "/dev/dri/card0", 
    pRenderNode=0x55555561fea8 "/dev/dri/renderD128", pciBusInfo=..., 
    deviceIndex=0, ppDeviceOut=0x7fffffffd468)
    at /home/loli/aur/amdvlk-git/src/pal/src/core/os/lnx/lnxDevice.cpp:218
#4  0x00007ffff525f58b in Pal::Linux::Platform::ReQueryDevices (
    this=0x5555556170e8)
    at /home/loli/aur/amdvlk-git/src/pal/src/core/os/lnx/lnxPlatform.cpp:201
#5  0x00007ffff5258409 in Pal::Platform::ReEnumerateDevices (
    this=this@entry=0x5555556170e8)
    at /home/loli/aur/amdvlk-git/src/pal/src/core/platform.cpp:599
#6  0x00007ffff5258e0d in Pal::Platform::Init (this=0x5555556170e8)
    at /home/loli/aur/amdvlk-git/src/pal/src/core/platform.cpp:332
#7  0x00007ffff52580b5 in Pal::Platform::Create (createInfo=..., allocCb=..., 
    pPlacementAddr=<optimized out>, ppPlatform=ppPlatform@entry=0x7fffffffd6e0)
    at /home/loli/aur/amdvlk-git/src/pal/src/core/platform.cpp:165
#8  0x00007ffff5256951 in Pal::CreatePlatform (createInfo=..., 
    pPlacementAddr=<optimized out>, pPlacementAddr@entry=0x555555616020, 
    ppPlatform=ppPlatform@entry=0x555555608e80)
    at /home/loli/aur/amdvlk-git/src/pal/src/core/libInit.cpp:165
#9  0x00007ffff46406f2 in vk::Instance::Init (this=this@entry=0x555555608e80, 
    pAppInfo=pAppInfo@entry=0x7fffffffe440)
    at /home/loli/aur/amdvlk-git/src/xgl/icd/api/vk_instance.cpp:315
#10 0x00007ffff4641195 in vk::Instance::Create (pCreateInfo=<optimized out>, 
    pAllocator=<optimized out>, pInstance=0x5555555a88b8)
    at /home/loli/aur/amdvlk-git/src/xgl/icd/api/vk_instance.cpp:198
#11 0x00007ffff7d5011e in ?? () from /usr/lib/libvulkan.so.1
#12 0x00007ffff7d53d19 in ?? () from /usr/lib/libvulkan.so.1
#13 0x00007ffff7d57dfe in vkCreateInstance () from /usr/lib/libvulkan.so.1
#14 0x0000555555556522 in ?? ()

Rise of the tomb raider causes ring gfx timeout

launching Rise of the Tomb Raider with AMDVLK causes the following error in dmesg:

[ 1792.044917] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx timeout, last signaled seq=60221, last emitted seq=60223
[ 1792.044926] [drm] No hardware hang detected. Did some blocks stall?

I managed to get the following errors in the debug build in AMDVLK

AMD-PAL: Warn: Alert triggered: earlyPhase == false | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/pal/src/core/hw/gfxip/gfx6/gfx6Barrier.cpp:237:GetDepthStencilBltPerSubres)
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Warn: Alert triggered: earlyPhase == false | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/pal/src/core/hw/gfxip/gfx6/gfx6Barrier.cpp:237:GetDepthStencilBltPerSubres)
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Warn: Alert triggered: earlyPhase == false | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/pal/src/core/hw/gfxip/gfx6/gfx6Barrier.cpp:237:GetDepthStencilBltPerSubres)
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Warn: Alert triggered: earlyPhase == false | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/pal/src/core/hw/gfxip/gfx6/gfx6Barrier.cpp:237:GetDepthStencilBltPerSubres)
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Warn: Alert triggered: earlyPhase == false | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/pal/src/core/hw/gfxip/gfx6/gfx6Barrier.cpp:237:GetDepthStencilBltPerSubres)
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po
AMD-PAL: Error: Assertion failed: (results[0].usages != 0) && (results[1].usages != 0) && (results[2].usages != 0) | Reason: Unknown (/home/aaron/Projects/AMDVLK/drivers/xgl/icd/api/barrier_po

My GPU is an AMD Radeon HD7770 / R7 250X (GFX6 Cape Verde) running with the AMDGPU driver using AMDVLK update 26/07/2018
Once the error is triggered, the computer stops responding and only a hard reboot works

vkcube segfault / assertion failed

https://github.com/krh/vkcube
Note that vkcube has at least one known bug: krh/vkcube#25

I'm still making this issue because the assertion seems unrelated.

Running it with a release build segfaults:

VK_ICD_FILENAMES=~/amd_icd64.json vkcube
1 physical devices
vendor id 1002, device name AMD Radeon (TM) RX 480 Graphics
[1]    29146 segmentation fault (core dumped)  VK_ICD_FILENAMES=~/amd_icd64.json vkcube

Running it with a debug build fails an assertion:

vkcube: /home/chris/oldhome/build/amdvlk-git-debug/src/llvm-amdvlk/lib/IR/Instructions.cpp:299: void llvm::CallInst::init(llvm::FunctionType*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::ArrayRef<llvm::OperandBundleDefT<llvm::Value*> >, const llvm::Twine&): Assertion `(i >= FTy->getNumParams() || FTy->getParamType(i) == Args[i]->getType()) && "Calling a function with a bad signature!"' failed.

gdb log with full backtrace: gdb.txt

Ps4 Vulkan

Hello.
I have an PS4 with archlinux on it. Do you think if its possible to run VULKAN?
I m an beginer on linux scene, and my linux experience is to short.
Marcan an developer run it in 1 years ago.
Lot of player turning linux on it but We have not Vulkan for liverpool...
Can you help me ?

29-02 release notes mention extensions not exposed yet..

it says:
Implementation for below AMD extensions:
AMD_shader_fragment_mask
AMD_gcn_shader
AMD_shader_trinary_minmax
AMD_shader_explicit_vertex_parameter
AMD_shader_ballot

but my 2.0.21 Vega report (https://vulkan.gpuinfo.org/displayreport.php?id=2884#extensions)
shows still missing:

AMD_shader_fragment_mask
AMD_gcn_shader
AMD_shader_trinary_minmax
AMD_shader_explicit_vertex_parameter
AMD_shader_ballot

also release notes mention:

Hide VK_AMD_negative_viewport_height in Vulkan 1.1

but it still shows in extensions list..

Installation instructions recommend nuking all Vulkan ICD files

See here.

This is destructive and could cause users to unknowingly hurt other driver installations on the same system. In particular, this will remove RADV's icd file and require manual fixing from the user.

Perhaps a change to the below commands would be safer:

Remove Previous Installed JSON Files

sudo rm /etc/vulkan/icd.d/amd_icd*.json
sudo rm /usr/share/vulkan/icd.d/amd_icd*.json

Or simply re-working the advice to reflect the risks.

Dolphin with Super Mario Sunshine hits assertion

When running SMS in dolphin with a release build the rendering is incomplete (other games seem to work fine). The debug build hits an assertion :
dolphin-emu: /home/zenyd/Downloads/amdvlk/drivers/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:8368: llvm::SDNode* llvm::SITargetLowering::adjustWritemask(llvm::MachineSDNode*&, llvm::SelectionDAG&) const: Assertion `NewOpcode != -1 && NewOpcode != static_cast<int>(Node->getMachineOpcode()) && "failed to find equivalent MIMG op"' failed.

To reproduce you need to run dolphin with sms_fifo.dff.zip and the following command:
dolphin-emu -b -e sms_fifo.dff

The game is working fine with radv.

Backtrace of assert
Dolphin: dolphin-emu-git-5.0.r8518.d425732837
Hardware:Mullins

Wayland WSI is deadlocking in FIFO mode

I have a problem where vkAcquireNextImageKHR can indefinitely hang on Wayland.
This happens spuriously, and there is no obvious pattern to it.

When it happens, it's hanging on a semaphore wait indefinitely, waiting for an image to be fetched from the present thread.

There is a way to unblock the thread, which is to move the mouse, or any kind of windowing event seems to unblock it. This of course will never happen when you're playing with a joypad ... My theory is that the present thread is not polling for present complete events from Wayland or similar, and it only gets flushed handling on a mouse event or something like that.

Another, probably related issue is that there are stutters once in while. It might just be a late vkAcquireNextImageKHR waiting for an unrelated event to come in, but I haven't investigated that.

I cannot seem to reproduce this with MAILBOX, so the logic might be a bit different.

To reproduce:

  • Compile and run RetroArch with Wayland and Vulkan enabled.
  • Play something using a gamepad.
  • Make sure vsync is enabled.
  • Find spurious hang in the game.
  • Move the mouse and see that it unblocks the game.

To get a GDB backtrace of it, you'll need to keep the GDB terminal window in focus while playing, and when it hangs, ctrl+c it right away. Losing focus on the game window also unblocks the game apparently.

FWIW, this works just fine on RADV and ANV.

I'm sometimes getting some assertions right before this happens, which are probably related:

AMD-PAL: Error: Assertion failed: result == Result::ErrorFenceNeverSubmitted | Reason: Unknown (/home/maister/git/amdvlk-git/src/pal/src/core/os/lnx/lnxSwapChain.cpp:171:WaitForImageIdle)
AMD-PAL: Error: Assertion failed: result == Result::ErrorFenceNeverSubmitted | Reason: Unknown (/home/maister/git/amdvlk-git/src/pal/src/core/os/lnx/lnxSwapChain.cpp:171:WaitForImageIdle)
AMD-PAL: Error: Assertion failed: result == Result::ErrorFenceNeverSubmitted | Reason: Unknown (/home/maister/git/amdvlk-git/src/pal/src/core/os/lnx/lnxSwapChain.cpp:171:WaitForImageIdle)

Main thread:

#2  0x00007fffc06e9a94 in Util::Semaphore::Wait (this=0x55555e315348, milliseconds=4294967295) at /home/maister/git/amdvlk-git/src/pal/src/util/lnx/lnxSemaphore.cpp:79
#3  0x00007fffc05d3031 in Pal::SwapChain::AcquireNextImage (this=0x55555e315178, acquireInfo=..., pImageIndex=0x5555584ee2b8)
    at /home/maister/git/amdvlk-git/src/pal/src/core/swapChain.cpp:174
#4  0x00007fffbf28f033 in vk::SwapChain::AcquireNextImage (this=0x55555e3150d0, pAcquireInfo=0x7fffffffda80, pImageIndex=0x5555584ee2b8)
    at /home/maister/git/amdvlk-git/src/xgl/icd/api/vk_swapchain.cpp:528
#5  0x00007fffbf290e58 in vk::entry::vkAcquireNextImageKHR (device=0x55555d131f20, swapchain=0x55555e3150d0, timeout=18446744073709551615, semaphore=0x0, fence=0x55555ed22350, 
    pImageIndex=0x5555584ee2b8) at /home/maister/git/amdvlk-git/src/xgl/icd/api/vk_swapchain.cpp:1315

Present thread hangs in:

#0  0x00007fffef760ea9 in poll () from /usr/lib/libc.so.6
#1  0x00007ffff4fa136b in ?? () from /usr/lib/libwayland-client.so.0
#2  0x00007ffff4fa2e3e in wl_display_dispatch_queue () from /usr/lib/libwayland-client.so.0
#3  0x00007fffd4eab351 in WaylandWaitForLastImagePresented (hWsa=3) at /home/maister/git/amdvlk-git/src/wsa/wayland/src/wsa_wayland.c:433
#4  0x00007fffc060043d in Pal::Linux::WaylandWindowSystem::WaitForLastImagePresented (this=0x55555e3153f0)
    at /home/maister/git/amdvlk-git/src/pal/src/core/os/lnx/wayland/waylandWindowSystem.cpp:321
#5  0x00007fffc06f416c in Pal::Linux::PresentScheduler::ProcessPresent (this=0x55555e315428, presentInfo=..., pQueue=0x55555e3359a8, isInline=false)
    at /home/maister/git/amdvlk-git/src/pal/src/core/os/lnx/lnxPresentScheduler.cpp:202
#6  0x00007fffc06f295b in Pal::PresentScheduler::RunWorkerThread (this=0x55555e315428) at /home/maister/git/amdvlk-git/src/pal/src/core/presentScheduler.cpp:396
#7  0x00007fffc06f232c in Pal::WorkerThreadCallback (pParameter=0x55555e315428) at /home/maister/git/amdvlk-git/src/pal/src/core/presentScheduler.cpp:222
#8  0x00007fffc05a3f5d in Util::Thread::StartThread (pThreadObject=0x55555e315518) at /home/maister/git/amdvlk-git/src/pal/src/util/lnx/lnxThread.cpp:169

GPUOpen-Drivers/llvm does not build in Debug mode

I'm trying to build GPUOpen-Drivers/llvm to chase down a bug, but I cannot build it in Debug mode.
The build works fine if I build in RelWithDebugInfo or Release. Has anyone seen this failure?

This is the trace I get:

+ cd bld
+ cmake -G Ninja -DLLVM_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Debug '-DLLVM_TARGETS_TO_BUILD='\''X86;AMDGPU'\''' ../llvm
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for dlfcn.h
-- Looking for dlfcn.h - found
-- Looking for errno.h
-- Looking for errno.h - found
-- Looking for fcntl.h
-- Looking for fcntl.h - found
-- Looking for link.h
-- Looking for link.h - found
-- Looking for malloc.h
-- Looking for malloc.h - found
-- Looking for malloc/malloc.h
-- Looking for malloc/malloc.h - not found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for signal.h
-- Looking for signal.h - found
-- Looking for sys/ioctl.h
-- Looking for sys/ioctl.h - found
-- Looking for sys/mman.h
-- Looking for sys/mman.h - found
-- Looking for sys/param.h
-- Looking for sys/param.h - found
-- Looking for sys/resource.h
-- Looking for sys/resource.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for termios.h
-- Looking for termios.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for valgrind/valgrind.h
-- Looking for valgrind/valgrind.h - not found
-- Looking for zlib.h
-- Looking for zlib.h - found
-- Looking for fenv.h
-- Looking for fenv.h - found
-- Looking for FE_ALL_EXCEPT
-- Looking for FE_ALL_EXCEPT - found
-- Looking for FE_INEXACT
-- Looking for FE_INEXACT - found
-- Looking for mach/mach.h
-- Looking for mach/mach.h - not found
-- Looking for histedit.h
-- Looking for histedit.h - not found
-- Looking for CrashReporterClient.h
-- Looking for CrashReporterClient.h - not found
-- Looking for linux/magic.h
-- Looking for linux/magic.h - found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Looking for pthread_getspecific in pthread
-- Looking for pthread_getspecific in pthread - found
-- Looking for pthread_rwlock_init in pthread
-- Looking for pthread_rwlock_init in pthread - found
-- Looking for pthread_mutex_lock in pthread
-- Looking for pthread_mutex_lock in pthread - found
-- Looking for dlopen in dl
-- Looking for dlopen in dl - found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Looking for pfm_initialize in pfm
-- Looking for pfm_initialize in pfm - not found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Looking for compress2 in z
-- Looking for compress2 in z - found
-- Looking for setupterm in tinfo
-- Looking for setupterm in tinfo - found
-- Could NOT find LibXml2 (missing: LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR)
-- Looking for xar_open in xar
-- Looking for xar_open in xar - not found
-- Looking for arc4random
-- Looking for arc4random - not found
-- Looking for backtrace
-- Looking for backtrace - found
-- backtrace facility detected in default set of libraries
-- Found Backtrace: /usr/include
-- Performing Test C_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW
-- Performing Test C_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW - Failed
-- Looking for _Unwind_Backtrace
-- Looking for _Unwind_Backtrace - found
-- Looking for getpagesize
-- Looking for getpagesize - found
-- Looking for sysconf
-- Looking for sysconf - found
-- Looking for getrusage
-- Looking for getrusage - found
-- Looking for setrlimit
-- Looking for setrlimit - found
-- Looking for isatty
-- Looking for isatty - found
-- Looking for futimens
-- Looking for futimens - found
-- Looking for futimes
-- Looking for futimes - found
-- Looking for posix_fallocate
-- Looking for posix_fallocate - found
-- Looking for sigaltstack
-- Looking for sigaltstack - found
-- Looking for lseek64
-- Looking for lseek64 - found
-- Looking for mallctl
-- Looking for mallctl - not found
-- Looking for mallinfo
-- Looking for mallinfo - found
-- Looking for malloc_zone_statistics
-- Looking for malloc_zone_statistics - not found
-- Looking for getrlimit
-- Looking for getrlimit - found
-- Looking for posix_spawn
-- Looking for posix_spawn - found
-- Looking for pread
-- Looking for pread - found
-- Looking for realpath
-- Looking for realpath - found
-- Looking for sbrk
-- Looking for sbrk - found
-- Looking for strerror
-- Looking for strerror - found
-- Looking for strerror_r
-- Looking for strerror_r - found
-- Looking for strerror_s
-- Looking for strerror_s - not found
-- Looking for setenv
-- Looking for setenv - found
-- Looking for dlopen
-- Looking for dlopen - found
-- Looking for dladdr
-- Looking for dladdr - not found
-- Looking for __GLIBC__
-- Looking for __GLIBC__ - found
-- Looking for sched_getaffinity
-- Looking for sched_getaffinity - found
-- Looking for CPU_COUNT
-- Looking for CPU_COUNT - found
-- Looking for pthread_getname_np
-- Looking for pthread_getname_np - found
-- Looking for pthread_setname_np
-- Looking for pthread_setname_np - found
-- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB
-- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB - Success
-- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB
-- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB - Success
-- Performing Test LLVM_HAS_ATOMICS
-- Performing Test LLVM_HAS_ATOMICS - Success
-- Performing Test SUPPORTS_VARIADIC_MACROS_FLAG
-- Performing Test SUPPORTS_VARIADIC_MACROS_FLAG - Success
-- Performing Test SUPPORTS_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS_FLAG
-- Performing Test SUPPORTS_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS_FLAG - Failed
-- Performing Test HAS_MAYBE_UNINITIALIZED
-- Performing Test HAS_MAYBE_UNINITIALIZED - Success
-- Native target architecture is X86
-- Threads enabled.
-- Doxygen disabled.
-- Go bindings enabled.
-- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH)
-- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH)
-- OCaml bindings disabled.
-- Could NOT find Python module pygments
-- Could NOT find Python module pygments.lexers.c_cpp
-- Could NOT find Python module yaml
-- LLVM host triple: x86_64-unknown-linux-gnu
-- LLVM default target triple: x86_64-unknown-linux-gnu
-- Performing Test C_SUPPORTS_FPIC
-- Performing Test C_SUPPORTS_FPIC - Success
-- Performing Test CXX_SUPPORTS_FPIC
-- Performing Test CXX_SUPPORTS_FPIC - Success
-- Building with -fPIC
-- Performing Test SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG
-- Performing Test SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG - Success
-- Performing Test C_SUPPORTS_WERROR_DATE_TIME
-- Performing Test C_SUPPORTS_WERROR_DATE_TIME - Success
-- Performing Test CXX_SUPPORTS_WERROR_DATE_TIME
-- Performing Test CXX_SUPPORTS_WERROR_DATE_TIME - Success
-- Performing Test CXX_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW
-- Performing Test CXX_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW - Failed
-- Performing Test CXX_SUPPORTS_CXX11
-- Performing Test CXX_SUPPORTS_CXX11 - Success
-- Performing Test CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG
-- Performing Test CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG - Success
-- Performing Test C_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG
-- Performing Test C_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG - Failed
-- Performing Test CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG
-- Performing Test CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG - Failed
-- Performing Test C_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG
-- Performing Test C_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG - Failed
-- Performing Test CXX_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG
-- Performing Test CXX_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG - Success
-- Performing Test C_WCOMMENT_ALLOWS_LINE_WRAP
-- Performing Test C_WCOMMENT_ALLOWS_LINE_WRAP - Failed
-- Performing Test C_SUPPORTS_STRING_CONVERSION_FLAG
-- Performing Test C_SUPPORTS_STRING_CONVERSION_FLAG - Failed
-- Performing Test CXX_SUPPORTS_STRING_CONVERSION_FLAG
-- Performing Test CXX_SUPPORTS_STRING_CONVERSION_FLAG - Failed
-- Performing Test LINKER_SUPPORTS_COLOR_DIAGNOSTICS
-- Performing Test LINKER_SUPPORTS_COLOR_DIAGNOSTICS - Success
-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.13")
-- Constructing LLVMBuild project information
-- Linker detection: LLD
-- Targeting X86
-- Targeting AMDGPU
-- Configuring done
-- Generating done
-- Build files have been written to: <dir>/llpc//bld
+ cd bld
+ /usr/bin/time ninja -j96
[109/1987] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Process.cpp.o
In file included from <dir>/llpc//llvm/lib/Support/Unix/Unix.h:24:0,
                 from <dir>/llpc//llvm/lib/Support/Unix/Process.inc:14,
                 from <dir>/llpc//llvm/lib/Support/Process.cpp:94:
<dir>/llpc//llvm/include/llvm/Support/Errno.h:34:13: warning: mangled name for ‘decltype (F(llvm::sys::RetryAfterSignal::As ...)) llvm::sys::RetryAfterSignal(const FailT&, const Fun&, const Args& ...) [with FailT = int; Fun = int(int, stat*) throw (); Args = {int, stat*}]’ will change in C++17 because the exception specification is part of a function type [-Wnoexcept-type]
 inline auto RetryAfterSignal(const FailT &Fail, const Fun &F,
             ^~~~~~~~~~~~~~~~
[892/1987] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MIParser.cpp.o
In file included from <dir>/llpc//llvm/include/llvm/ADT/StringRef.h:13:0,
                 from <dir>/llpc//llvm/include/llvm/ADT/StringMap.h:17,
                 from <dir>/llpc//llvm/include/llvm/Support/Host.h:17,
                 from <dir>/llpc//llvm/include/llvm/ADT/Hashing.h:49,
                 from <dir>/llpc//llvm/include/llvm/ADT/ArrayRef.h:13,
                 from <dir>/llpc//llvm/include/llvm/ADT/DenseMapInfo.h:17,
                 from <dir>/llpc//llvm/include/llvm/ADT/DenseMap.h:17,
                 from <dir>/llpc//llvm/lib/CodeGen/MIRParser/MIParser.h:17,
                 from <dir>/llpc//llvm/lib/CodeGen/MIRParser/MIParser.cpp:14:
<dir>/llpc//llvm/include/llvm/ADT/STLExtras.h:908:6: warning: mangled name for ‘bool llvm::all_of(R&&, UnaryPredicate) [with R = llvm::StringRef&; UnaryPredicate = int (*)(int) throw ()]’ will change in C++17 because the exception specification is part of a function type [-Wnoexcept-type]
 bool all_of(R &&Range, UnaryPredicate P) {
      ^~~~~~
[1225/1987] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLLexer.cpp.o
In file included from <dir>/llpc//llvm/include/llvm/ADT/StringRef.h:13:0,
                 from <dir>/llpc//llvm/include/llvm/ADT/StringMap.h:17,
                 from <dir>/llpc//llvm/include/llvm/Support/Host.h:17,
                 from <dir>/llpc//llvm/include/llvm/ADT/Hashing.h:49,
                 from <dir>/llpc//llvm/include/llvm/ADT/ArrayRef.h:13,
                 from <dir>/llpc//llvm/include/llvm/ADT/APFloat.h:21,
                 from <dir>/llpc//llvm/lib/AsmParser/LLLexer.h:18,
                 from <dir>/llpc//llvm/lib/AsmParser/LLLexer.cpp:14:
<dir>/llpc//llvm/include/llvm/ADT/STLExtras.h:908:6: warning: mangled name for ‘bool llvm::all_of(R&&, UnaryPredicate) [with R = llvm::StringRef&; UnaryPredicate = int (*)(int) throw ()]’ will change in C++17 because the exception specification is part of a function type [-Wnoexcept-type]
 bool all_of(R &&Range, UnaryPredicate P) {
      ^~~~~~
[1478/1987] Building AMDGPUGenDAGISel.inc...
FAILED: lib/Target/AMDGPU/AMDGPUGenDAGISel.inc.tmp
cd <dir>/llpc//bld && <dir>/llpc//bld/bin/llvm-tblgen -gen-dag-isel -I <dir>/llpc//llvm/lib/Target/AMDGPU -I <dir>/llpc//llvm/include -I <dir>/llpc//llvm/lib/Target <dir>/llpc//llvm/lib/Target/AMDGPU/AMDGPU.td -o lib/Target/AMDGPU/AMDGPUGenDAGISel.inc.tmp -d lib/Target/AMDGPU/AMDGPUGenDAGISel.inc.d
Type set is empty for each HW mode:
possible type contradiction in the pattern below (use -print-records with llvm-tblgen to see all expanded records).
V_INTERP_P1LL_F16:      (V_INTERP_P1LL_F16:{ *:[f32] } (imm:{ *:[i32] }):$src0_modifiers, f32:{ *:[f32] }:$src0, (imm:{ *:[i32] }):$attr, (imm:{ *:[i32] }):$attrchan, (imm:{ *:[i1] }):$high, (imm:{ *:[i1] }):$clamp, (imm:{ *:[] }):$omod)
UNREACHABLE executed at <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:817!
#0 0x00005643a0296f3a llvm::sys::PrintStackTrace(llvm::raw_ostream&) <dir>/llpc//llvm/lib/Support/Unix/Signals.inc:399:0
#1 0x00005643a0296fcd PrintStackTraceSignalHandler(void*) <dir>/llpc//llvm/lib/Support/Unix/Signals.inc:463:0
#2 0x00005643a0295472 llvm::sys::RunSignalHandlers() <dir>/llpc//llvm/lib/Support/Signals.cpp:49:0
#3 0x00005643a02968af SignalHandler(int) <dir>/llpc//llvm/lib/Support/Unix/Signals.inc:253:0
#4 0x00007f6467afc0c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x110c0)
#5 0x00007f646668dfcf gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x32fcf)
#6 0x00007f646668f3fa abort (/lib/x86_64-linux-gnu/libc.so.6+0x343fa)
#7 0x00005643a01edb3e bindingsErrorHandler(void*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) <dir>/llpc//llvm/lib/Support/ErrorHandling.cpp:231:0
#8 0x000056439ff5c56f llvm::TypeInfer::ValidateOnExit::~ValidateOnExit() <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:819:0
#9 0x000056439ff57dff llvm::TypeInfer::MergeInTypeInfo(llvm::TypeSetByHwMode&, llvm::TypeSetByHwMode const&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:328:0
#10 0x000056439ff79ef6 llvm::TreePatternNode::UpdateNodeType(unsigned int, llvm::ValueTypeByHwMode, llvm::TreePattern&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.h:896:0
#11 0x000056439ff61034 llvm::TreePatternNode::UpdateNodeTypeFromInst(unsigned int, llvm::Record*, llvm::TreePattern&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:1533:0
#12 0x000056439ff667c6 llvm::TreePatternNode::ApplyTypeConstraints(llvm::TreePattern&, bool) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2402:0
#13 0x000056439ff69ea3 llvm::TreePattern::InferAllTypes(llvm::StringMap<llvm::SmallVector<llvm::TreePatternNode*, 1u>, llvm::MallocAllocator> const*) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2760:0
#14 0x000056439ff6efe2 llvm::CodeGenDAGPatterns::parseInstructionPattern(llvm::CodeGenInstruction&, llvm::ListInit*, std::map<llvm::Record*, llvm::DAGInstruction, llvm::LessRecordByID, std::allocator<std::pair<llvm::Record* const, llvm::DAGInstruction> > >&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:3585:0
#15 0x000056439ff6f53b llvm::CodeGenDAGPatterns::ParseInstructions() <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:3633:0
#16 0x000056439ff6abfc llvm::CodeGenDAGPatterns::CodeGenDAGPatterns(llvm::RecordKeeper&, std::function<void (llvm::TreePattern*)>) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2864:0
#17 0x00005643a0046f23 (anonymous namespace)::DAGISelEmitter::DAGISelEmitter(llvm::RecordKeeper&) <dir>/llpc//llvm/utils/TableGen/DAGISelEmitter.cpp:29:0
#18 0x00005643a00478e5 llvm::EmitDAGISel(llvm::RecordKeeper&, llvm::raw_ostream&) <dir>/llpc//llvm/utils/TableGen/DAGISelEmitter.cpp:181:0
#19 0x00005643a0191ce4 (anonymous namespace)::LLVMTableGenMain(llvm::raw_ostream&, llvm::RecordKeeper&) <dir>/llpc//llvm/utils/TableGen/TableGen.cpp:155:0
#20 0x00005643a029ade1 llvm::TableGenMain(char*, bool (*)(llvm::raw_ostream&, llvm::RecordKeeper&)) <dir>/llpc//llvm/lib/TableGen/Main.cpp:109:0
#21 0x00005643a0192324 main <dir>/llpc//llvm/utils/TableGen/TableGen.cpp:229:0
#22 0x00007f646667b2b1 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b1)
#23 0x000056439fee802a _start (<dir>/llpc//bld/bin/llvm-tblgen+0x26302a)
Stack dump:
0.      Program arguments: <dir>/llpc//bld/bin/llvm-tblgen -gen-dag-isel -I <dir>/llpc//llvm/lib/Target/AMDGPU -I <dir>/llpc//llvm/include -I <dir>/llpc//llvm/lib/Target <dir>/llpc//llvm/lib/Target/AMDGPU/AMDGPU.td -o lib/Target/AMDGPU/AMDGPUGenDAGISel.inc.tmp -d lib/Target/AMDGPU/AMDGPUGenDAGISel.inc.d
[1485/1987] Building AMDGPUGenInstrInfo.inc...
FAILED: lib/Target/AMDGPU/AMDGPUGenInstrInfo.inc.tmp
cd <dir>/llpc//bld && <dir>/llpc//bld/bin/llvm-tblgen -gen-instr-info -I <dir>/llpc//llvm/lib/Target/AMDGPU -I <dir>/llpc//llvm/include -I <dir>/llpc//llvm/lib/Target <dir>/llpc//llvm/lib/Target/AMDGPU/AMDGPU.td -o lib/Target/AMDGPU/AMDGPUGenInstrInfo.inc.tmp -d lib/Target/AMDGPU/AMDGPUGenInstrInfo.inc.d
Type set is empty for each HW mode:
possible type contradiction in the pattern below (use -print-records with llvm-tblgen to see all expanded records).
V_INTERP_P1LL_F16:      (V_INTERP_P1LL_F16:{ *:[f32] } (imm:{ *:[i32] }):$src0_modifiers, f32:{ *:[f32] }:$src0, (imm:{ *:[i32] }):$attr, (imm:{ *:[i32] }):$attrchan, (imm:{ *:[i1] }):$high, (imm:{ *:[i1] }):$clamp, (imm:{ *:[] }):$omod)
UNREACHABLE executed at <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:817!
#0 0x0000564a135bff3a llvm::sys::PrintStackTrace(llvm::raw_ostream&) <dir>/llpc//llvm/lib/Support/Unix/Signals.inc:399:0
#1 0x0000564a135bffcd PrintStackTraceSignalHandler(void*) <dir>/llpc//llvm/lib/Support/Unix/Signals.inc:463:0
#2 0x0000564a135be472 llvm::sys::RunSignalHandlers() <dir>/llpc//llvm/lib/Support/Signals.cpp:49:0
#3 0x0000564a135bf8af SignalHandler(int) <dir>/llpc//llvm/lib/Support/Unix/Signals.inc:253:0
#4 0x00007f33f52db0c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x110c0)
#5 0x00007f33f3e6cfcf gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x32fcf)
#6 0x00007f33f3e6e3fa abort (/lib/x86_64-linux-gnu/libc.so.6+0x343fa)
#7 0x0000564a13516b3e bindingsErrorHandler(void*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) <dir>/llpc//llvm/lib/Support/ErrorHandling.cpp:231:0
#8 0x0000564a1328556f llvm::TypeInfer::ValidateOnExit::~ValidateOnExit() <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:819:0
#9 0x0000564a13280dff llvm::TypeInfer::MergeInTypeInfo(llvm::TypeSetByHwMode&, llvm::TypeSetByHwMode const&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:328:0
#10 0x0000564a132a2ef6 llvm::TreePatternNode::UpdateNodeType(unsigned int, llvm::ValueTypeByHwMode, llvm::TreePattern&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.h:896:0
#11 0x0000564a1328a034 llvm::TreePatternNode::UpdateNodeTypeFromInst(unsigned int, llvm::Record*, llvm::TreePattern&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:1533:0
#12 0x0000564a1328f7c6 llvm::TreePatternNode::ApplyTypeConstraints(llvm::TreePattern&, bool) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2402:0
#13 0x0000564a13292ea3 llvm::TreePattern::InferAllTypes(llvm::StringMap<llvm::SmallVector<llvm::TreePatternNode*, 1u>, llvm::MallocAllocator> const*) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2760:0
#14 0x0000564a13297fe2 llvm::CodeGenDAGPatterns::parseInstructionPattern(llvm::CodeGenInstruction&, llvm::ListInit*, std::map<llvm::Record*, llvm::DAGInstruction, llvm::LessRecordByID, std::allocator<std::pair<llvm::Record* const, llvm::DAGInstruction> > >&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:3585:0
#15 0x0000564a1329853b llvm::CodeGenDAGPatterns::ParseInstructions() <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:3633:0
#16 0x0000564a13293bfc llvm::CodeGenDAGPatterns::CodeGenDAGPatterns(llvm::RecordKeeper&, std::function<void (llvm::TreePattern*)>) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2864:0
#17 0x0000564a13436968 (anonymous namespace)::InstrInfoEmitter::InstrInfoEmitter(llvm::RecordKeeper&) <dir>/llpc//llvm/utils/TableGen/InstrInfoEmitter.cpp:46:0
#18 0x0000564a1343a147 llvm::EmitInstrInfo(llvm::RecordKeeper&, llvm::raw_ostream&) <dir>/llpc//llvm/utils/TableGen/InstrInfoEmitter.cpp:619:0
#19 0x0000564a134babf4 (anonymous namespace)::LLVMTableGenMain(llvm::raw_ostream&, llvm::RecordKeeper&) <dir>/llpc//llvm/utils/TableGen/TableGen.cpp:131:0
#20 0x0000564a135c3de1 llvm::TableGenMain(char*, bool (*)(llvm::raw_ostream&, llvm::RecordKeeper&)) <dir>/llpc//llvm/lib/TableGen/Main.cpp:109:0
#21 0x0000564a134bb324 main <dir>/llpc//llvm/utils/TableGen/TableGen.cpp:229:0
#22 0x00007f33f3e5a2b1 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b1)
#23 0x0000564a1321102a _start (<dir>/llpc//bld/bin/llvm-tblgen+0x26302a)
Stack dump:
0.      Program arguments: <dir>/llpc//bld/bin/llvm-tblgen -gen-instr-info -I <dir>/llpc//llvm/lib/Target/AMDGPU -I <dir>/llpc//llvm/include -I <dir>/llpc//llvm/lib/Target <dir>/llpc//llvm/lib/Target/AMDGPU/AMDGPU.td -o lib/Target/AMDGPU/AMDGPUGenInstrInfo.inc.tmp -d lib/Target/AMDGPU/AMDGPUGenInstrInfo.inc.d
[1493/1987] Building AMDGPUGenGlobalISel.inc...
FAILED: lib/Target/AMDGPU/AMDGPUGenGlobalISel.inc.tmp
cd <dir>/llpc//bld && <dir>/llpc//bld/bin/llvm-tblgen -gen-global-isel -I <dir>/llpc//llvm/lib/Target/AMDGPU -I <dir>/llpc//llvm/include -I <dir>/llpc//llvm/lib/Target <dir>/llpc//llvm/lib/Target/AMDGPU/AMDGPUGISel.td -o lib/Target/AMDGPU/AMDGPUGenGlobalISel.inc.tmp -d lib/Target/AMDGPU/AMDGPUGenGlobalISel.inc.d
Type set is empty for each HW mode:
possible type contradiction in the pattern below (use -print-records with llvm-tblgen to see all expanded records).
V_INTERP_P1LL_F16:      (V_INTERP_P1LL_F16:{ *:[f32] } (imm:{ *:[i32] }):$src0_modifiers, f32:{ *:[f32] }:$src0, (imm:{ *:[i32] }):$attr, (imm:{ *:[i32] }):$attrchan, (imm:{ *:[i1] }):$high, (imm:{ *:[i1] }):$clamp, (imm:{ *:[] }):$omod)
UNREACHABLE executed at <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:817!
#0 0x000055e96686af3a llvm::sys::PrintStackTrace(llvm::raw_ostream&) <dir>/llpc//llvm/lib/Support/Unix/Signals.inc:399:0
#1 0x000055e96686afcd PrintStackTraceSignalHandler(void*) <dir>/llpc//llvm/lib/Support/Unix/Signals.inc:463:0
#2 0x000055e966869472 llvm::sys::RunSignalHandlers() <dir>/llpc//llvm/lib/Support/Signals.cpp:49:0
#3 0x000055e96686a8af SignalHandler(int) <dir>/llpc//llvm/lib/Support/Unix/Signals.inc:253:0
#4 0x00007fe0bc94a0c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x110c0)
#5 0x00007fe0bb4dbfcf gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x32fcf)
#6 0x00007fe0bb4dd3fa abort (/lib/x86_64-linux-gnu/libc.so.6+0x343fa)
#7 0x000055e9667c1b3e bindingsErrorHandler(void*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) <dir>/llpc//llvm/lib/Support/ErrorHandling.cpp:231:0
#8 0x000055e96653056f llvm::TypeInfer::ValidateOnExit::~ValidateOnExit() <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:819:0
#9 0x000055e96652bdff llvm::TypeInfer::MergeInTypeInfo(llvm::TypeSetByHwMode&, llvm::TypeSetByHwMode const&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:328:0
#10 0x000055e96654def6 llvm::TreePatternNode::UpdateNodeType(unsigned int, llvm::ValueTypeByHwMode, llvm::TreePattern&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.h:896:0
#11 0x000055e966535034 llvm::TreePatternNode::UpdateNodeTypeFromInst(unsigned int, llvm::Record*, llvm::TreePattern&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:1533:0
#12 0x000055e96653a7c6 llvm::TreePatternNode::ApplyTypeConstraints(llvm::TreePattern&, bool) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2402:0
#13 0x000055e96653dea3 llvm::TreePattern::InferAllTypes(llvm::StringMap<llvm::SmallVector<llvm::TreePatternNode*, 1u>, llvm::MallocAllocator> const*) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2760:0
#14 0x000055e966542fe2 llvm::CodeGenDAGPatterns::parseInstructionPattern(llvm::CodeGenInstruction&, llvm::ListInit*, std::map<llvm::Record*, llvm::DAGInstruction, llvm::LessRecordByID, std::allocator<std::pair<llvm::Record* const, llvm::DAGInstruction> > >&) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:3585:0
#15 0x000055e96654353b llvm::CodeGenDAGPatterns::ParseInstructions() <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:3633:0
#16 0x000055e96653ebfc llvm::CodeGenDAGPatterns::CodeGenDAGPatterns(llvm::RecordKeeper&, std::function<void (llvm::TreePattern*)>) <dir>/llpc//llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2864:0
#17 0x000055e96668fe96 (anonymous namespace)::GlobalISelEmitter::GlobalISelEmitter(llvm::RecordKeeper&) <dir>/llpc//llvm/utils/TableGen/GlobalISelEmitter.cpp:2832:0
#18 0x000055e96669b6ed llvm::EmitGlobalISel(llvm::RecordKeeper&, llvm::raw_ostream&) <dir>/llpc//llvm/utils/TableGen/GlobalISelEmitter.cpp:4218:0
#19 0x000055e9667661f3 (anonymous namespace)::LLVMTableGenMain(llvm::raw_ostream&, llvm::RecordKeeper&) <dir>/llpc//llvm/utils/TableGen/TableGen.cpp:206:0
#20 0x000055e96686ede1 llvm::TableGenMain(char*, bool (*)(llvm::raw_ostream&, llvm::RecordKeeper&)) <dir>/llpc//llvm/lib/TableGen/Main.cpp:109:0
#21 0x000055e966766324 main <dir>/llpc//llvm/utils/TableGen/TableGen.cpp:229:0
#22 0x00007fe0bb4c92b1 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b1)
#23 0x000055e9664bc02a _start (<dir>/llpc//bld/bin/llvm-tblgen+0x26302a)
Stack dump:
0.      Program arguments: <dir>/llpc//bld/bin/llvm-tblgen -gen-global-isel -I <dir>/llpc//llvm/lib/Target/AMDGPU -I <dir>/llpc//llvm/include -I <dir>/llpc//llvm/lib/Target <dir>/llpc//llvm/lib/Target/AMDGPU/AMDGPUGISel.td -o lib/Target/AMDGPU/AMDGPUGenGlobalISel.inc.tmp -d lib/Target/AMDGPU/AMDGPUGenGlobalISel.inc.d
[1573/1987] Building X86GenDAGISel.inc...
ninja: build stopped: subcommand failed.
Command exited with non-zero status 1
7126.86user 433.95system 3:12.85elapsed 3920%CPU (0avgtext+0avgdata 1451428maxresident)k
13760inputs+29478488outputs (10589major+123218555minor)pagefaults 0swaps

DXVK flickering garbage

When running games through wine+DXVK, some games are suffering from flickering garbage. The same setup works correctly when using the -pro driver or when using DXVK on AMD under Windows. It also works on a nvidia machine under Linux.

Here is a RenderDoc capture (requires nightly build of RenderDoc because DXVK uses recent extensions):
https://drive.google.com/file/d/1MZ3GaxQaKgdJ-FZHRj7hnpmimv9bKodU/view?usp=sharing
(visible best with "renderdoccmd replay")

GPU: POLARIS10/rx470 (others are known to be affected)

DXVK issue, for reference:
doitsujin/dxvk#10

vkGetInstanceProcAddress returning null when getting vkEnumerateDeviceGroups

As the title says. I think this may be because I did not specify the device group creation extension when creating the VkInstance. However, I am unclear as to what it means to have these extensions promoted to core. I assume that I can expect it on all 1.1 confirming implementations. Or does it mean the extension is no longer considered a KHX extension and I still have to query for it?

Symbol lookup fails in amdvlk64.so

Getting this error, and I cannot load the ICD. This seems to be related to the new VK_KHR_display support, but it doesn't seem to be built in.

ERROR: [Loader Message] Code 0 : /usr/lib/amdvlk64.so: undefined symbol: _ZN3Pal5Linux19DisplayWindowSystem30DeterminePresentationSupportedEPNS0_6DeviceEPvl

Arch Linux's AUR package is doing this:

  cmake -H. -Bbuilds/Release64 \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_WAYLAND_SUPPORT=On \
    -DBUILD_WSA=On

  cd builds/Release64
  make

Segfault in Pal::AddrMgr::Init

Only built the 64-bit AMDVLK (PCLinuxOS doesn't really have any 32-bit support), but I don't imagine that's the issue? I've tried with and without the amdPalSettings that apparently only matter for libdrm older than mine.

For what it's worth, RADV works fine on this system if I remove AMDVLK's json file.

PCLinuxOS kde5 2018.06.
LunarG's VulkanSDK 1.1.82.0.
ASUS Radeon HD 7770 GHz edition ("Cape Verde XT").
AMD Phenom II X6 1100T.

Here's the backtrace from vulkaninfo with the debug build:

Reading symbols from vulkaninfo...(no debugging symbols found)...done.
(gdb) run
Starting program: /opt/VulkanSDK/1.1.82.0/x86_64/bin/vulkaninfo 
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
==========
VULKANINFO
==========

Vulkan Instance Version: 1.1.82

AMD-PAL: Error: Unconditional Assert | Reason: Unknown (/var/lifsrc/vulkandriver/drivers/pal/src/core/hw/gfxip/gfx6/gfx6Device.cpp:2531:DetermineIpLevel)
AMD-PAL: Warn: Unconditional Alert | Reason: Unknown (/var/lifsrc/vulkandriver/drivers/pal/inc/util/palMemTrackerImpl.h:76:~MemTracker)
AMD-PAL: Warn: ================ List of Leaked Blocks ================ (/var/lifsrc/vulkandriver/drivers/pal/inc/util/palMemTrackerImpl.h:338:MemoryReport)
AMD-PAL: Warn: ClientMem = 0x0x7fffe861b040, AllocSize =     1424, MemBlkType = New, File = /var/lifsrc/vulkandriver/drivers/pal/src/core/os/lnx/lnxVamMgr.cpp, LineNumber =      421, AllocNum =        1 (/var/lifsrc/vulkandriver/drivers/pal/inc/util/palMemTrackerImpl.h:349:MemoryReport)
AMD-PAL: Warn: ================ End of List =========================== (/var/lifsrc/vulkandriver/drivers/pal/inc/util/palMemTrackerImpl.h:352:MemoryReport)

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff177c090 in Pal::AddrMgr::Init (this=0x877630) at /var/lifsrc/vulkandriver/drivers/pal/src/core/addrMgr/addrMgr.cpp:94
94          Result result = pGfxDevice->InitAddrLibCreateInput(&createInput.createFlags, &createInput.regValue);
(gdb) bt
#0  0x00007ffff177c090 in Pal::AddrMgr::Init (this=0x877630) at /var/lifsrc/vulkandriver/drivers/pal/src/core/addrMgr/addrMgr.cpp:94
#1  0x00007ffff177ccf2 in Pal::AddrMgr1::Create (pDevice=0x870600, pPlacementAddr=0x877630, ppAddrMgr=0x8768a8) at /var/lifsrc/vulkandriver/drivers/pal/src/core/addrMgr/addrMgr1/addrMgr1.cpp:57
#2  0x00007ffff175214b in Pal::Device::HwlEarlyInit (this=0x870600) at /var/lifsrc/vulkandriver/drivers/pal/src/core/device.cpp:542
#3  0x00007ffff1751b73 in Pal::Device::EarlyInit (this=0x870600, ipLevels=...) at /var/lifsrc/vulkandriver/drivers/pal/src/core/device.cpp:412
#4  0x00007ffff17836cd in Pal::Linux::Device::EarlyInit (this=0x870600, ipLevels=...) at /var/lifsrc/vulkandriver/drivers/pal/src/core/os/lnx/lnxDevice.cpp:616
#5  0x00007ffff1782829 in Pal::Linux::Device::Create (pPlatform=0x867318, pSettingsPath=0x867474 "/etc/amd", pBusId=0x7fffffffc220 "pci:0000:01:00.0", pPrimaryNode=0x870438 "/dev/dri/card0", 
    pRenderNode=0x870468 "/dev/dri/renderD128", pciBusInfo=..., deviceIndex=0, ppDeviceOut=0x7fffffffc218) at /var/lifsrc/vulkandriver/drivers/pal/src/core/os/lnx/lnxDevice.cpp:217
#6  0x00007ffff15fba31 in Pal::Linux::Platform::ReQueryDevices (this=0x867318) at /var/lifsrc/vulkandriver/drivers/pal/src/core/os/lnx/lnxPlatform.cpp:201
#7  0x00007ffff15f3838 in Pal::Platform::ReEnumerateDevices (this=0x867318) at /var/lifsrc/vulkandriver/drivers/pal/src/core/platform.cpp:603
#8  0x00007ffff15f2e67 in Pal::Platform::Init (this=0x867318) at /var/lifsrc/vulkandriver/drivers/pal/src/core/platform.cpp:336
#9  0x00007ffff15f286f in Pal::Platform::Create (createInfo=..., allocCb=..., pPlacementAddr=0x867318, ppPlatform=0x7fffffffc5c8) at /var/lifsrc/vulkandriver/drivers/pal/src/core/platform.cpp:169
#10 0x00007ffff15f0a64 in Pal::CreatePlatform (createInfo=..., pPlacementAddr=0x867318, ppPlatform=0x8590b0) at /var/lifsrc/vulkandriver/drivers/pal/src/core/libInit.cpp:168
#11 0x00007ffff0437f10 in vk::Instance::Init (this=0x8590b0, pAppInfo=0x7fffffffd400) at /var/lifsrc/vulkandriver/drivers/xgl/icd/api/vk_instance.cpp:315
#12 0x00007ffff0437b9c in vk::Instance::Create (pCreateInfo=0x7fffffffd080, pAllocator=0x0, pInstance=0x79bbd8) at /var/lifsrc/vulkandriver/drivers/xgl/icd/api/vk_instance.cpp:198
#13 0x00007ffff0439bac in vk::entry::vkCreateInstance (pCreateInfo=0x7fffffffd080, pAllocator=0x0, pInstance=0x79bbd8) at /var/lifsrc/vulkandriver/drivers/xgl/icd/api/vk_instance.cpp:1177
#14 0x00007ffff79810f1 in terminator_CreateInstance () from /opt/VulkanSDK/1.1.82.0/x86_64/lib/libvulkan.so.1
#15 0x00007ffff7984fbc in loader_create_instance_chain () from /opt/VulkanSDK/1.1.82.0/x86_64/lib/libvulkan.so.1
#16 0x00007ffff798922a in vkCreateInstance () from /opt/VulkanSDK/1.1.82.0/x86_64/lib/libvulkan.so.1
#17 0x0000000000401c15 in main ()
(gdb) info locals
createInput = {size = 0, chipEngine = 0, chipFamily = 110, chipRevision = 41, callbacks = {allocSysMem = 0x7ffff177c5d5 <Pal::AllocSysMemCb(ADDR_ALLOCSYSMEM_INPUT const*)>, 
    freeSysMem = 0x7ffff177c6c6 <Pal::FreeSysMemCb(ADDR_FREESYSMEM_INPUT const*)>, debugPrint = 0x0}, createFlags = {{noCubeMipSlicesPad = 0, fillSizeFields = 0, useTileIndex = 0, useCombinedSwizzle = 0, 
      checkLast2DLevel = 0, useHtileSliceAlign = 0, allowLargeThickTile = 0, reserved = 0}, value = 0}, regValue = {gbAddrConfig = 0, backendDisables = 0, noOfBanks = 0, noOfRanks = 0, pTileConfig = 0x0, 
    noOfEntries = 0, pMacroTileConfig = 0x0, noOfMacroEntries = 0, blockVarSizeLog2 = 0}, hClient = 0x877630, minPitchAlignPixels = 0}
createOutput = {size = 0, hLib = 0x0, numEquations = 0, pEquationTable = 0x0}
pGfxDevice = 0x0
chipProps = @0x871e38: {gfxEngineId = 0, familyId = 110, eRevId = 41, revisionId = 0, deviceId = 26685, gpuIndex = 0, revision = Pal::AsicRevision::Unknown, gpuType = Pal::GpuType::Unknown, 
  gfxLevel = Pal::GfxIpLevel::_None, ossLevel = Pal::OssIpLevel::OssIp1, vceLevel = Pal::VceIpLevel::_None, uvdLevel = Pal::UvdIpLevel::_None, vcnLevel = Pal::VcnIpLevel::_None, gfxStepping = 0, 
  vceUcodeVersion = 0, uvdUcodeVersion = 0, vceFwVersionMajor = 0, vceFwVersionMinor = 0, uvdEncodeFwInterfaceVersionMajor = 0, uvdEncodeFwInterfaceVersionMinor = 0, uvdFwVersionSubMinor = 0, 
  imageProperties = {flags = {{supportsSingleSampleQuilting = 0, supportsAqbsStereoMode = 0, reservedForFutureHw = 0, reserved = 0}, u32All = 0}, minPitchAlignPixel = 0, maxImageDimension = {width = 0, 
      height = 0, depth = 0}, maxImageArraySize = 0, prtFeatures = (unknown: 0), prtTileSize = 0, numSwizzleEqs = 0 '\000', pSwizzleEqs = 0x0, tilingSupported = {false, false, false}}, gfxip = {
    maxUserDataEntries = 0, fastUserDataEntries = {0, 0, 0, 0, 0, 0}, vaRangeNumBits = 0, realTimeCuMask = 0, maxThreadGroupSize = 0, maxAsyncComputeThreadGroupSize = 0, gdsSize = 0, hardwareContexts = 0, 
    ldsSizePerThreadGroup = 0, ldsSizePerCu = 0, ldsGranularity = 0, offChipTessBufferSize = 0, tessFactorBufferSizePerSe = 0, ceRamSize = 32768, tccSizeInBytes = 0, tcpSizeInBytes = 0, 
    maxLateAllocVsLimit = 0, queuesUseCaches = false}, {gfx6 = {mcArbRamcfg = 0, gbAddrConfig = 0, paScRasterCfg = 0, paScRasterCfg1 = 0, backendDisableMask = 0, sqThreadTraceMask = 0, gbTileMode = {
        0 <repeats 32 times>}, gbMacroTileMode = {0 <repeats 16 times>}, {activeCuMaskGfx6 = {{0, 0}, {0, 0}}, activeCuMaskGfx7 = {0, 0, 0, 0}}, {alwaysOnCuMaskGfx6 = {{0, 0}, {0, 0}}, alwaysOnCuMaskGfx7 = {
          0, 0, 0, 0}}, numCuPerSh = 0, numCuAlwaysOnPerSh = 0, numSimdPerCu = 0, numWavesPerSimd = 0, numActiveRbs = 0, numTotalRbs = 0, numShaderVisibleSgprs = 0, numPhysicalSgprs = 0, minSgprAlloc = 0, 
      sgprAllocGranularity = 0, numShaderVisibleVgprs = 0, numPhysicalVgprs = 0, minVgprAlloc = 0, vgprAllocGranularity = 0, wavefrontSize = 0, numShaderEngines = 0, numShaderArrays = 0, maxNumCuPerSh = 0, 
      maxNumRbPerSe = 0, numMcdTiles = 0, numTcaBlocks = 0, numTccBlocks = 0, gsVgtTableDepth = 0, gsPrimBufferDepth = 0, maxGsWavesPerVgt = 0, {doubleOffchipLdsBuffers = 0, rbPlus = 0, sqgEventsEnabled = 0, 
        support8bitIndices = 0, support16BitInstructions = 0, supportSetShIndexPkt = 0, supportLoadRegIndexPkt = 0, supportAddrOffsetDumpAndSetShPkt = 0, supportPreemptionWithChaining = 0, 
        supports2BitSignedValues = 0, lbpwEnabled = 0, rbReconfigureEnabled = 0, supportPatchTessDistribution = 0, supportDonutTessDistribution = 0, supportTrapezoidTessDistribution = 0, supportRgpTraces = 0, 
        reserved = 0}, perfCounterInfo = {features = {{counters = 0, threadTrace = 0, spmTrace = 0, supportPs1Events = 0, sqttBadScPackerId = 0, reserved = 0}, u32All = 0}, block = {{available = false, 
            numShaderEngines = 0, numShaderArrays = 0, numInstances = 0, numCounters = 0, maxEventId = 0, numStreamingCounters = 0, numStreamingCounterRegs = 0, spmBlockSelectCode = 0, regInfo = {{
                perfSel0RegAddr = 0, perfSel1RegAddr = 0, perfCountLoAddr = 0, perfCountHiAddr = 0} <repeats 16 times>}} <repeats 32 times>}, mcConfigRegAddress = 0, mcWriteEnableMask = 0, 
        mcReadEnableShift = 0}}, gfx9 = {backendDisableMask = 0, gbAddrConfig = 0, paScTileSteeringOverride = 0, numShaderEngines = 0, numShaderArrays = 0, maxNumRbPerSe = 0, wavefrontSize = 0, 
      numShaderVisibleSgprs = 0, numPhysicalSgprs = 0, minSgprAlloc = 0, sgprAllocGranularity = 0, numShaderVisibleVgprs = 0, numPhysicalVgprs = 0, minVgprAlloc = 0, vgprAllocGranularity = 0, numCuPerSh = 0, 
      maxNumCuPerSh = 0, numTccBlocks = 0, numSimdPerCu = 0, numWavesPerSimd = 0, numActiveRbs = 0, numTotalRbs = 0, gsVgtTableDepth = 0, gsPrimBufferDepth = 0, maxGsWavesPerVgt = 0, parameterCacheLines = 0, 
      activeCuMask = {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, alwaysOnCuMask = {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, {doubleOffchipLdsBuffers = 0, supportFp16Fetch = 0, 
        support16BitInstructions = 0, supportDoubleRate16BitInstructions = 0, rbPlus = 0, supportConservativeRasterization = 0, supportPrtBlendZeroMode = 0, sqgEventsEnabled = 0, supports2BitSignedValues = 0, 
        supportPrimitiveOrderedPs = 0, lbpwEnabled = 0, supportPatchTessDistribution = 0, supportDonutTessDistribution = 0, supportTrapezoidTessDistribution = 0, supportAddrOffsetDumpAndSetShPkt = 0, 
        supportImplicitPrimitiveShader = 0, supportSpp = 0, validPaScTileSteeringOverride = 0, placeholder0 = 0, placeholder1 = 0, timestampResetOnIdle = 0, placeholder2 = 0, support1xMsaaSampleLocations = 0, 
        reserved = 0}, primShaderInfo = {primitiveBufferVa = 0, primitiveBufferSize = 0, positionBufferVa = 0, positionBufferSize = 0, controlSidebandVa = 0, controlSidebandSize = 0, parameterCacheVa = 0, 
        parameterCacheSize = 0}, perfCounterInfo = {features = {{counters = 0, threadTrace = 0, spmTrace = 0, supportPs1Events = 0, sqttBadScPackerId = 0, reserved = 0}, u32All = 0}, block = {{
            available = false, numShaderEngines = 0, numShaderArrays = 0, numInstances = 0, numCounters = 0, maxEventId = 0, numStreamingCounters = 0, numStreamingCounterRegs = 0, spmBlockSelectCode = 0, 
            regInfo = {{perfSel0RegAddr = 0, perfSel1RegAddr = 0, perfCountLoAddr = 0, perfCountHiAddr = 0, perfRsltCntlRegAddr = 0} <repeats 16 times>}} <repeats 32 times>}}}}, maxEngineClock = 1020, 
  maxMemoryClock = 1150, alusPerClock = 0, pixelsPerClock = 0, primsPerClock = 0, texelsPerClock = 0, gpuCounterFrequency = 27000000, enginePerfRating = 0, memoryPerfRating = 588800, srdSizes = {
    bufferView = 0, imageView = 0, fmaskView = 0, sampler = 0}, nullSrds = {pNullBufferView = 0x0, pNullImageView = 0x0, pNullFmaskView = 0x0, pNullSampler = 0x0}, pciBusNumber = 1, pciDeviceNumber = 0, 
  pciFunctionNumber = 0, gpuConnectedViaThunderbolt = false, requiresOnionAccess = false, p2pBltWaInfo = {required = false, maxCopyChunkSize = 0, gfxPlaceholderDwords = 0, dmaPlaceholderDwords = 0}}
result = Util::Result::_Success
__func__ = "Init"

versions of seemingly-pertinent things:
AMDVLK commit a7ba73e
xgl commit e15b26329b0bfc6ca5ad45e867f01afb6186e25b
pal commit 7ccd54869e36626000148f8c05484ddfa79e077b
llvm commit 2ac3d4684ac76f889573a4cf438e2dbfe1764d3b
llpc commit 57ebe6db0b6332939aa83fdd7d91a09e10e65fe8

$ rpm -q gcc-c++ cmake python3 curl glibc-devel libstdc++-devel libxcb-devel lib64x11-devel lib64xshmfence-devel lib64drm2 mesa x11-driver-video-amdgpu kernel-4.17.14-pclos1 
gcc-c++-7.3.0-1pclos2018
cmake-3.12.1-1pclos2018
python3-3.6.5-1pclos2018
curl-7.61.0-1pclos2018
glibc-devel-2.26-3pclos2017
libstdc++-devel-7.3.0-1pclos2018
libxcb-devel-1.12-4pclos2017
lib64x11-devel-1.6.5-4pclos2017
lib64xshmfence-devel-1.2-4pclos2017
lib64drm2-2.4.93-1pclos2018
mesa-18.1.6-1pclos2018
x11-driver-video-amdgpu-18.0.1-1pclos2018
kernel-4.17.14-pclos1-1-1pclos2018
$ lsmod | grep amdgpu
amdgpu               2215936  39 
gpu_sched              20480  1 amdgpu
chash                  16384  1 amdgpu
mfd_core               16384  1 amdgpu
ttm                    81920  2 amdgpu,radeon
drm_kms_helper        131072  2 amdgpu,radeon
drm                   319488  15 amdgpu,gpu_sched,radeon,ttm,drm_kms_helper
i2c_algo_bit           16384  2 amdgpu,radeon

Any ideas / anything I could've done wrong in the build/installation to lead to this?

Cheers

vkcube segfault

vkcube segfaults when run:

vkcube[1337]: segfault at 5577bd1a4018 ip 00007f5007953518 sp 00007ffcf1c4dbb8 error 4 in amdvlk64.so[7f50076e8000+22dd000]

coredump:
core.vkcube.zip

not only vkcube segfaults - dolphin emulator and mpv also segfault at the same offset.

vkcube r119.0d57034
amdvlk r40.48d46fa

VK_ERROR_OUT_OF_HOST_MEMORY on radeon HD7770

Running vulkaninfo on my fully-updated archlinux machine results in the above-mentioned error. This error also appeared running on ubuntu, though I assumed I had done something wrong in the install process. The card has 1 GB of VRAM and the system has 8GB of RAM. According to this forum post a similar issue exited in the closed-source opencl driver, which could be fixed by setting GPU_FORCE_64BIT_PTR=1

Build failure on Fedora 27 with gcc 7.2.1

When attempting to build, I get:

src/vulkandriver/drivers/pal/src/util/math.cpp:73:1: error: ‘const Util::Math::NBitFloatInfo{16, 10, 5, 15, 32768, 1023, 31744, 15, 15, -14, 1199562752, 947912704, ((Util::uint32)((((1 << (5 - 1)) - 1) - 127) << 23)), 13}’ is not a constant expression
 };
 ^
src/vulkandriver/drivers/pal/src/util/math.cpp:91:1: error: ‘const Util::Math::NBitFloatInfo{11, 6, 5, 0, 0, 63, 1984, 15, 15, -14, 1191698432, 947912704, ((Util::uint32)((((1 << (5 - 1)) - 1) - 127) << 23)), 17}’ is not a constant expression
 };
 ^
src/vulkandriver/drivers/pal/src/util/math.cpp:109:1: error: ‘const Util::Math::NBitFloatInfo{10, 5, 5, 0, 0, 31, 992, 15, 15, -14, 1191690240, 947912704, ((Util::uint32)((((1 << (5 - 1)) - 1) - 127) << 23)), 18}’ is not a constant expression
 };

Looks like gcc doesn't like the static_cast<uint32> in a const.

PatchDescriptorLoad segfault when compiling SPIR-V binary

Assembled the following shader using SPIR-V Tools (attached):

               OpCapability Shader
         %1 = OpExtInstImport "GLSL.std.450"
              OpMemoryModel Logical GLSL450
              OpEntryPoint GLCompute %main "main"
              OpExecutionMode %main LocalSize 1 1 1
              OpSource GLSL 450
              OpSourceExtension "GL_GOOGLE_cpp_style_line_directive"
              OpSourceExtension "GL_GOOGLE_include_directive"
              OpName %main "main"
              OpName %B "B"
              OpMemberName %B 0 "x"
              OpName %Buf "Buf"
              OpMemberDecorate %B 0 Offset 0
              OpDecorate %B BufferBlock
              OpDecorate %Buf DescriptorSet 0
              OpDecorate %Buf Binding 1
      %void = OpTypeVoid
         %3 = OpTypeFunction %void
     %float = OpTypeFloat 32
         %B = OpTypeStruct %float
%_ptr_Uniform_B = OpTypePointer Uniform %B
       %Buf = OpVariable %_ptr_Uniform_B Uniform
       %int = OpTypeInt 32 1
     %int_0 = OpConstant %int 0
   %float_0 = OpConstant %float 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
      %main = OpFunction %void None %3
         %5 = OpLabel
        %14 = OpAccessChain %_ptr_Uniform_float %Buf %int_0
              OpStore %14 %float_0
              OpReturn
              OpFunctionEnd

glsl_store.spv.gz

Compilation succeeds when starting from the assembly, but segfaults when compiling from the assembled binary. The crash stacktrace follows:

Stack dump:
0.	Program arguments: vulkandriver/drivers/xgl/builds/Debug64/llpc/amdllpc glsl_store.spv -S -val -o glsl_store.s 
1.	Running pass 'Patch LLVM for descriptor load operations' on module ''.
#0 0x00005602515d0844 llvm::sys::PrintStackTrace(llvm::raw_ostream&) vulkandriver/drivers/llvm/lib/Support/Unix/Signals.inc:398:0
#1 0x00005602515d08d7 PrintStackTraceSignalHandler(void*) vulkandriver/drivers/llvm/lib/Support/Unix/Signals.inc:462:0
#2 0x00005602515ced9e llvm::sys::RunSignalHandlers() vulkandriver/drivers/llvm/lib/Support/Signals.cpp:49:0
#3 0x00005602515d01c8 SignalHandler(int) vulkandriver/drivers/llvm/lib/Support/Unix/Signals.inc:252:0
#4 0x00007f3dfad470c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x110c0)
#5 0x000056025054619e llvm::Value::getType() const vulkandriver/drivers/llvm/include/llvm/IR/Value.h:245:0
#6 0x000056025054674f llvm::GetElementPtrInst::Create(llvm::Type*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::Twine const&, llvm::Instruction*) vulkandriver/drivers/llvm/include/llvm/IR/Instructions.h:870:0
#7 0x00005602505dd162 Llpc::PatchDescriptorLoad::visitCallInst(llvm::CallInst&) vulkandriver/drivers/xgl/icd/api/llpc/patch/llpcPatchDescriptorLoad.cpp:457:0
#8 0x00005602505e14f6 llvm::InstVisitor<Llpc::PatchDescriptorLoad, void>::delegateCallInst(llvm::CallInst&) vulkandriver/drivers/llvm/include/llvm/IR/InstVisitor.h:285:0
#9 0x00005602505e0b2d llvm::InstVisitor<Llpc::PatchDescriptorLoad, void>::visitCall(llvm::CallInst&) vulkandriver/drivers/llvm/include/llvm/IR/Instruction.def:190:0
#10 0x00005602505e002f llvm::InstVisitor<Llpc::PatchDescriptorLoad, void>::visit(llvm::Instruction&) vulkandriver/drivers/llvm/include/llvm/IR/Instruction.def:190:0
#11 0x00005602505df774 void llvm::InstVisitor<Llpc::PatchDescriptorLoad, void>::visit<llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, false> >(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, false>) vulkandriver/drivers/llvm/include/llvm/IR/InstVisitor.h:91:0
#12 0x00005602505df180 llvm::InstVisitor<Llpc::PatchDescriptorLoad, void>::visit(llvm::BasicBlock&) vulkandriver/drivers/llvm/include/llvm/IR/InstVisitor.h:108:0
#13 0x00005602505debf8 void llvm::InstVisitor<Llpc::PatchDescriptorLoad, void>::visit<llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, true, false, void>, false, false> >(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, true, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, true, false, void>, false, false>) vulkandriver/drivers/llvm/include/llvm/IR/InstVisitor.h:91:0
#14 0x00005602505de5a0 llvm::InstVisitor<Llpc::PatchDescriptorLoad, void>::visit(llvm::Function&) vulkandriver/drivers/llvm/include/llvm/IR/InstVisitor.h:104:0
#15 0x00005602505de26c void llvm::InstVisitor<Llpc::PatchDescriptorLoad, void>::visit<llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, true, false, void>, false, false> >(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, true, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, true, false, void>, false, false>) vulkandriver/drivers/llvm/include/llvm/IR/InstVisitor.h:91:0
#16 0x00005602505ddea2 llvm::InstVisitor<Llpc::PatchDescriptorLoad, void>::visit(llvm::Module&) vulkandriver/drivers/llvm/include/llvm/IR/InstVisitor.h:100:0
#17 0x00005602505db120 Llpc::PatchDescriptorLoad::runOnModule(llvm::Module&) vulkandriver/drivers/xgl/icd/api/llpc/patch/llpcPatchDescriptorLoad.cpp:71:0
#18 0x0000560252237177 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) vulkandriver/drivers/llvm/lib/IR/LegacyPassManager.cpp:1591:0
#19 0x000056025223782b llvm::legacy::PassManagerImpl::run(llvm::Module&) vulkandriver/drivers/llvm/lib/IR/LegacyPassManager.cpp:1694:0
#20 0x0000560252237a23 llvm::legacy::PassManager::run(llvm::Module&) vulkandriver/drivers/llvm/lib/IR/LegacyPassManager.cpp:1726:0
#21 0x00005602505dac06 Llpc::Patch::Run(llvm::Module*) vulkandriver/drivers/xgl/icd/api/llpc/patch/llpcPatch.cpp:159:0
#22 0x000056025052d215 Llpc::Compiler::BuildComputePipeline(Llpc::ComputePipelineBuildInfo const*, Llpc::ComputePipelineBuildOut*) vulkandriver/drivers/xgl/icd/api/llpc/context/llpcCompiler.cpp:1211:0
#23 0x00005602505247bd BuildPipeline(Llpc::ICompiler*, CompileInfo*) vulkandriver/drivers/xgl/icd/api/llpc/tool/amdllpc.cpp:851:0
#24 0x0000560250525920 main vulkandriver/drivers/xgl/icd/api/llpc/tool/amdllpc.cpp:1189:0
#25 0x00007f3dfa49c2b1 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b1)
#26 0x000056025052262a _start (vulkandriver/drivers/xgl/builds/Debug64/llpc/amdllpc+0x18262a)
Segmentation fault

dxvk: F.E.A.R. 3 black screen in menu

F.E.A.R 3 is only showing a black screen for the menu. But one can get into the story mode, where it only displays the environment, no characters, or HUD. The log shows "Failed to compile pipeline" errors.

I have taken two traces showing the problem: one captured with wine d3d and one with dxvk. The first can be replayed with amdvlk, but the second can't. It shows the menu correctly when replayed with radv.

Trace 1 (wine d3d)
Trace 2 (dxvk)

Hardware is a Mullins based chip.

Logs:
d3d11.log
dxgi.log

DRM version is lower than the version supported by this driver

I have Linux 16.4.3 with an AMD Fire Pro W9100 GPU. After compiling and copying all the driver files, running vulkan applications triggers the following error:

amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.
Could not create Vulkan instance :
ERROR_INCOMPATIBLE_DRIVER

Not working on amdgpu with stock linux-firmware on Pitcairn

I could not make amdvlk work on Pitcairn chipsets with the firmware from linux-firmware package, the images contained within are too old. It works amdgpu and firmware bundled into AMDs closed source stack. The solution is brittle, since the firmware will be overwritten on subsequent updates of the said package.

R7 370 and brothers, while old, are still perfectly adequate in a lot of circumstances, and it should be possible to run amdvlk on the open source stack out of the box on by modern Linux system.

What is the procedure/proper place to ask AMD to upstream latest firmware for those chipsets to linux-firmware , and what prevented AMD to update the ancient firmware for those chipsets to the latest versions shipping with closed source driver ? Are there technical issue with latest firmware and current incarnation of amdgpu/radeon ?

Request for adding 2 Vulkan extensions: variable pointers, conservative rasterization..

Hi,
don't know if it's the correct place to ask for new Vulkan extensions to be supported on AMD drivers like AMDVLK but anyway I will ask here:
first is VK_KHR_variable_pointers I ask because is needed by clspv tool for converting OpenCL kernels to Vulkan compute shaders and is supported almost everywhere (NV drviers, Intel ANV,Adreno) (even by AMD RADV driver):
http://vulkan.gpuinfo.org/listreports.php?extension=VK_KHR_variable_pointers
second is VK_EXT_conservative_rasterization a new ext. reléased last month..
supported right now by Nvidia dev driver and also seen this string on Intel HD Graphics Vulkan Windows driver so seems support is coming soon for it..
it's a D3D12 optional feature so makes sense to expose also to Vulkan devs.. should be good to VKD3D project devs eventually (a D3D12 Vulkan wrapper)..

vkAcquireNextImageKHR returning VK_TIMEOUT w/o waiting the timeout duration

I've been able to cause a condition where vkAcquireNextImageKHR returns VK_TIMEOUT. It's not the first frame, but rather near the first frame (maybe the second, third, or fourth).

The timeout parameter passed to that function has been 4000000000 nanoseconds (4 seconds). Yet my renderer comes up and crashes all within about half a second, so it's clearly not waiting 4 seconds.

I can get the renderer to work in other conditions, and I'm not concerned about the condition that causes this, just about it's handling. After all, it's quite possible that I haven't quite fulfilled the synchronization requirements, in which case it would technically be my fault.

However, IMHO, vkAcquireNextImageKHR shouldn't return VK_TIMEOUT unless it was actually a timeout. It should return an appropriate error if it was an error.

Vulkan layers report no warnings or errors.

AMDVLK on systems with hybrid graphics?

Has anyone luck making it work on systems with dual graphics?

OS: Arch Linux. AMDVLK is installed through https://aur.archlinux.org/packages/amdvlk-git

I have PC with intel hd 4600 + amd radeon 8750m. It does work with mesa vulkan-radeon drivers, but not with AMDVLK. For ex launching vkQuake:

[xdshot@lenovo-pc Quake]$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_icd64.json WINEPREFIX=~/wineprefixes/win64/ DRI_PRIME=1 wine vkQuake.exe
000b:fixme:winediag:start_process Wine Staging 3.13 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
000b:err:wineboot:ProcessRunKeys Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2)
Command line: Z:\home\xdshot\vkQuake\Quake\vkQuake.exe
Found SDL version 2.0.8
Detected 4 CPUs.
Quake 1.09 (c) id Software
GLQuake 1.00 (c) id Software
FitzQuake 0.85 (c) John Fitzgibbons
FitzQuake SDL port (c) SleepwalkR, Baker
QuakeSpasm 0.93.0 (c) Ozkan Sezer, Eric Wasylishen & others
vkQuake 1.00.0 (c) Axel Gneiting & others
Host_Init
Playing registered version.
Console initialized.
UDP Initialized
WIPX_OpenSocket: Protocol not supported
WIPX_Init: Unable to open control socket, IPX disabled
Server using protocol 666 (FitzQuake)
Exe: 15:52:13 Jul 27 2018
256.0 megabyte heap

ERROR-OUT BEGIN


QUAKE ERROR: Couldn't create window: Installed Vulkan doesn't implement the VK_KHR_surface extension

[xdshot@lenovo-pc Quake]$

BUG ASUS N551zu

Hardware is wrong.

screenshot_2018-02-11_14-26-30


Asus website
https://www.asus.com/Laptops/N551ZU/

lspci -mm

00:00.0 "Host bridge" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) Processor Root Complex" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) Processor Root Complex" 00:00.2 "IOMMU" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) I/O Memory Management Unit" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) I/O Memory Management Unit" 00:01.0 "VGA compatible controller" "Advanced Micro Devices, Inc. [AMD/ATI]" "Kaveri [Radeon R7 Graphics]" "ASUSTeK Computer Inc." "Kaveri [Radeon R7 Graphics]" 00:01.1 "Audio device" "Advanced Micro Devices, Inc. [AMD/ATI]" "Kaveri HDMI/DP Audio Controller" "ASUSTeK Computer Inc." "Kaveri HDMI/DP Audio Controller" 00:02.0 "Host bridge" "Advanced Micro Devices, Inc. [AMD]" "Device 1424" "" "" 00:02.1 "PCI bridge" "Advanced Micro Devices, Inc. [AMD]" "Device 1425" "" "" 00:03.0 "Host bridge" "Advanced Micro Devices, Inc. [AMD]" "Device 1424" "" "" 00:03.1 "PCI bridge" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) Processor Root Port" "" "" 00:03.2 "PCI bridge" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) Processor Root Port" "" "" 00:04.0 "Host bridge" "Advanced Micro Devices, Inc. [AMD]" "Device 1424" "" "" 00:10.0 "USB controller" "Advanced Micro Devices, Inc. [AMD]" "FCH USB XHCI Controller" -r09 -p30 "ASUSTeK Computer Inc." "FCH USB XHCI Controller" 00:10.1 "USB controller" "Advanced Micro Devices, Inc. [AMD]" "FCH USB XHCI Controller" -r09 -p30 "ASUSTeK Computer Inc." "FCH USB XHCI Controller" 00:11.0 "SATA controller" "Advanced Micro Devices, Inc. [AMD]" "FCH SATA Controller [IDE mode]" -r40 -p01 "ASUSTeK Computer Inc." "FCH SATA Controller [IDE mode]" 00:12.0 "USB controller" "Advanced Micro Devices, Inc. [AMD]" "FCH USB OHCI Controller" -r11 -p10 "ASUSTeK Computer Inc." "FCH USB OHCI Controller" 00:12.2 "USB controller" "Advanced Micro Devices, Inc. [AMD]" "FCH USB EHCI Controller" -r11 -p20 "ASUSTeK Computer Inc." "FCH USB EHCI Controller" 00:13.0 "USB controller" "Advanced Micro Devices, Inc. [AMD]" "FCH USB OHCI Controller" -r11 -p10 "ASUSTeK Computer Inc." "FCH USB OHCI Controller" 00:13.2 "USB controller" "Advanced Micro Devices, Inc. [AMD]" "FCH USB EHCI Controller" -r11 -p20 "ASUSTeK Computer Inc." "FCH USB EHCI Controller" 00:14.0 "SMBus" "Advanced Micro Devices, Inc. [AMD]" "FCH SMBus Controller" -r16 "ASUSTeK Computer Inc." "FCH SMBus Controller" 00:14.2 "Audio device" "Advanced Micro Devices, Inc. [AMD]" "FCH Azalia Controller" -r01 "ASUSTeK Computer Inc." "FCH Azalia Controller" 00:14.3 "ISA bridge" "Advanced Micro Devices, Inc. [AMD]" "FCH LPC Bridge" -r11 "ASUSTeK Computer Inc." "FCH LPC Bridge" 00:14.4 "PCI bridge" "Advanced Micro Devices, Inc. [AMD]" "FCH PCI Bridge" -r40 -p01 "" "" 00:18.0 "Host bridge" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) Processor Function 0" "" "" 00:18.1 "Host bridge" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) Processor Function 1" "" "" 00:18.2 "Host bridge" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) Processor Function 2" "" "" 00:18.3 "Host bridge" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) Processor Function 3" "" "" 00:18.4 "Host bridge" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) Processor Function 4" "" "" 00:18.5 "Host bridge" "Advanced Micro Devices, Inc. [AMD]" "Family 15h (Models 30h-3fh) Processor Function 5" "" "" 01:00.0 "Display controller" "Advanced Micro Devices, Inc. [AMD/ATI]" "Bonaire PRO [Radeon R9 M270X]" -rff -pff "" "" 02:00.0 "Network controller" "Intel Corporation" "Wireless 7260" -rbb "Intel Corporation" "Dual Band Wireless-N 7260" 03:00.0 "Unassigned class [ff00]" "Realtek Semiconductor Co., Ltd." "RTL8411B PCI Express Card Reader" -r01 "ASUSTeK Computer Inc." "RTL8411B PCI Express Card Reader" 03:00.1 "Ethernet controller" "Realtek Semiconductor Co., Ltd." "RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller" -r12 "ASUSTeK Computer Inc." "RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller"


There is no problem in Windows

Distribute me Xubuntu

Possible bug when writing the vertex fetch instructions

Hi,

I have a vertex attribute with format equal to VK_FORMAT_A2B10G10R10_SNORM_PACK32. My program fails on pipeline creation. Did some digging and I hit an assertion deep into LLVM code.

The issue starts in:

llpcVertexFetch.cpp:1163

// Insert alpha channel: %vf0 = insertelement %vf0, %a, 3
vertexFetch[0] = InsertElementInst::Create(vertexFetch[0],
pAlpha,
ConstantInt::get(m_pContext->Int32Ty(), 3),
"",
pInsertPos);

The pAlpha is of type FloatTyID and vertexFetch[0] is VectorTyID.

Later on there is this assert:

assert(isValidOperands(Vec, Elt, Index) &&
"Invalid insertelement instruction operands!");

which states that "Second operand of insertelement must be vector element type" which is probably not.

If you do a quick code inspection, is this piece of code correct? If yes I'll dig some more and create a repro case.

Failed to build AMDVLK with a missing file error

I followed the instructions at https://github.com/GPUOpen-Drivers/AMDVLK#build-instructions. Specifically:

cd <vulkandriver_path>/drivers/xgl
cmake -H. -Bbuilds/Release64
cd builds/Release64
make -j$(nproc)

Near the end of the build, I get the error:

[ ... ]
[ 99%] Building CXX object icd/CMakeFiles/xgl.dir/api/renderpass/renderpass_builder.cpp.o
[ 99%] Building CXX object icd/CMakeFiles/xgl.dir/api/renderpass/renderpass_logger.cpp.o
[ 99%] Building CXX object icd/CMakeFiles/xgl.dir/api/utils/json_reader.cpp.o
[ 99%] Building CXX object icd/CMakeFiles/xgl.dir/api/strings/strings.cpp.o
c++: error: /..../drivers/xgl/icd/api/strings/strings.cpp: No such file or directory
c++: fatal error: no input files
compilation terminated.
icd/CMakeFiles/xgl.dir/build.make:1413: recipe for target 'icd/CMakeFiles/xgl.dir/api/strings/strings.cpp.o' failed
make[2]: *** [icd/CMakeFiles/xgl.dir/api/strings/strings.cpp.o] Error 1
CMakeFiles/Makefile2:17409: recipe for target 'icd/CMakeFiles/xgl.dir/all' failed
make[1]: *** [icd/CMakeFiles/xgl.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2

Is there another repo that I should be getting?

Thanks.

Support for APU Graphics Device - Richland [Radeon HD 8610G]

Does the Radeon open source driver have support for APUs like the Richaland Radeon HD 8610G. This is the graphics device that I have installed on my laptop. If the open source driver doesn't support this family of GPUs, what is the best way for me to experiment with Vulkan on my laptop ? Also, when is it likely that support for APUs like mine will be added ? I think on the main page it said the drivers have support for the 8000M series, but I'm not sure if that includes APUs like the one I have installed.

_ZN2vk6secure5entry24vkGetDeviceProcAddr_nameE VK_ERROR_INCOMPATIBLE_DRIVER

Just trying to build on updated ubuntu x64 while following instructions.

When i build, the make process halts on a missing ~/vulkan-driver/drivers/xgl/icd/api/strings/strings.cpp
I had to create an empty one (repo synch don't find any missing file an this git cant be browsed).

It then builds the amdvlk64.so but vulkan loader crashes because it doesn't find an exported method, even if it's there :

~/vulkan-driver//home/franck/vulkan-sdk/VulkanSDK/1.1.70.1/x86_64/bin/vulkaninfo

VULKAN INFO

Vulkan Instance Version: 1.1.70

ERROR: [Loader Message] Code 0 : /usr/lib/x86_64-linux-gnu/amdvlk64.so: undefined symbol: _ZN2vk6secure5entry24vkGetDeviceProcAddr_nameE
Cannot create Vulkan instance.
/tmp/SDK-DEV/Build/Vulkan-LoaderAndValidationLayers/demos/vulkaninfo.c:768: failed with VK_ERROR_INCOMPATIBLE_DRIVER

~/vulkan-driver/nm /usr/lib/x86_64-linux-gnu/amdvlk64.so|grep _ZN2vk6secure5entry24vkGetDeviceProcAddr_nameE
U _ZN2vk6secure5entry24vkGetDeviceProcAddr_nameE

So exports exists but wont get recognized.
Looks like that there is a mess in the datatypes between expected prototypes and built prototype.
(Cmake dind't emit any error before building)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.