8 Replies Latest reply on Oct 29, 2016 4:37 AM by nirei

    Vulkan applications freeze the system on Ubuntu

    nirei

      Hello,

       

      i am trying to get Vulkan running on my machine for development purposes.

      I am running Ubuntu 16.04 on a Lenovo Edge E145 with AMD A4-5000 APU and Kabini [Radeon HD 8330] Graphics. I am using the current  AMDGPU-Pro Driver Version 16.30.

       

      When running the "cube" example from the VulkanSDK Version 1.0.17.0 my system freezes. To be precise, the window manager and all GUI elements stop responding, but i can still connect to the machine using SSH. Using the command line via SSH works fine. I can remotely kill the stuck "cube" process, but i don't seem to be able to remotely restart the window manager.

       

      The "cube" example getting stuck seems to be a bug in the Vulkan driver, or somewhere on the way down to the Kernel amdgpu driver.

      Remotely starting GDB on the cube process, i get the following backtrace:

      #0  0x00007f0755336687 in ioctl () at ../sysdeps/unix/syscall-template.S:84

      #1  0x00007f07532afe8f in drmIoctl () from /usr/lib/x86_64-linux-gnu/amdgpu-pro/libdrm.so.2

      #2  0x00007f0753a45f63 in amdgpu_cs_query_fence_status () from /usr/lib/x86_64-linux-gnu/amdgpu-pro/libdrm_amdgpu.so.1

      #3  0x00007f0753ef65ab in ?? () from /usr/lib/x86_64-linux-gnu/amdvlk64.so

      #4  0x00007f0753efa67b in ?? () from /usr/lib/x86_64-linux-gnu/amdvlk64.so

      #5  0x00007f075449807d in ?? () from /usr/lib/x86_64-linux-gnu/amdvlk64.so

      #6  0x00007f0755920e19 in vkQueueWaitIdle (queue=0x178d180) at /home/lunarg/Development/LinuxSDK/Vulkan-LoaderAndValidationLayers/loader/trampoline.c:956

      #7  0x0000000000405471 in demo_draw (demo=0x7ffe63f66c60) at /home/sergej/Downloads/vulkan/VulkanSDK/1.0.17.0/examples/cube.c:793

      #8  0x0000000000409600 in demo_run_xcb (demo=0x7ffe63f66c60) at /home/sergej/Downloads/vulkan/VulkanSDK/1.0.17.0/examples/cube.c:2247

      #9  0x000000000040b7ea in main (argc=1, argv=0x7ffe63f679c8) at /home/sergej/Downloads/vulkan/VulkanSDK/1.0.17.0/examples/cube.c:3155

      Using the program strace i can see that the process is stuck on the following ioctl:

      ioctl(5, _IOC(_IOC_READ|_IOC_WRITE, 0x64, 0x49, 0x20)

       

      I am attaching outputs of a GDB session, strace, vulkaninfo and the dmesg output. For reasons of hardware identification i am also attaching output of lspci and cpuinfo.

       

      Steps to reproduce this behaviour:

      1. Install Ubuntu 16.04
      2. Install AMDGPU-PRO 16.30 and the VulkanSDK using the How-Tos on AMDGPU-PRO Driver for Linux® – Release Notes
      3. Compile the examples in the VulkanSDK via "./build_examples.sh" (also append " -DCMAKE_BUILD_TYPE=Debug" to the cmake line in the build_examples.sh script)
      4. Run "cube" executable in "VulkanSDK/1.0.17.0/examples/build/"
      5. Wait until the cube stops rotating => cube process and window manager now are stuck.
        • Re: Vulkan applications freeze the system on Ubuntu
          pchiruma

          Hi nirei,

          Kabini is not supported platform. Please refer below link for AMD Product Compatibility

          AMDGPU-PRO Driver for Linux® – Release Notes

            • Re: Vulkan applications freeze the system on Ubuntu
              nirei

              Hello pchiruma, thank you for your reply.

              I am aware that the AMDGPU-PRO Release Note does not list Kabini as supported.

              However, looking at the Vulkan API Mainpage AMD Vulkan™ Graphics API, Kabini and "Any AMD APU or Radeon™ GPU based on the Graphics Core Next (GCN) architecture is already Vulkan™-compliant." Phoronix states that the AMD Vulkan drivers "use an identical user-mode component on Windows and Linux". So this Vulkan issue i run into probably is specific to Linux (either in userspace starting at "libdrm_amdgpu.so" or down in the "amdgpu" kernel driver). I haven't tested Vulkan with Windows on my hardware yet.

              I was hoping that someone can confirm the bug, and that maybe someone familiar with the drivers has any ideas where the bug comes from (userspace AMDGPU-PRO component or kernel driver?) It would be nice if the issue would reach the responsible driver team and land in some bugtracker.

               

              Apart from that (and as it seems a few other Vulkan bugs with fences), AMDGPU-PRO runs smoothly on Kabini in everyday use and OpenGL development

                • Re: Vulkan applications freeze the system on Ubuntu
                  dwitczak

                  Thank you for your report. As pchiruma had stated, Kabini is not a supported ASIC. Hence, the issues you are seeing are fully explicable.

                    • Re: Vulkan applications freeze the system on Ubuntu
                      nirei

                      So i installed Windows 10 in hopes of Vulkan support, but it seems the driver issue with Kabini is also present on Windows 10.

                      Using the Radeon Driver from Radeon Software Crimson Edition 16.9.2 Release Notes , Vulkan applications (like cube or triangle from the Vulkan SDK) hang immediately or after running for a while. As soon as the Vulkan application hangs, the rest of the system becomes non-responsive too (screen freezes). I would have loved to append a stacktrace or debug output for the crashed program, but Windows kills off the GPU driver seconds after the application hangs, and the screen remains black without any possibility to interact with Windows. All in all this is the same behaviour as described for Ubuntu.

                       

                      The evidence that the GPU driver gets killed by windows is a message in the Windows Event Viewer: Display driver "amdkmdap" stopped responding and has successfully recovered.

                       

                      I would be thankful for advice on how to debug this and how to collect usefull information for you guys.

                      I hope nobody tries to tell me that my hardware is not supported by the installed Vulkan drivers on Windows 10 - the Radeon Updater automatically installed the current drivers, and older driver versions had the same issue.

                       

                      Software and Hardware information from the Radeon Settings Interface:

                      Software:

                      Radeon Settings Version - 2016.0916.1515.27418

                      Driver Packaging Version - 16.40.2311-160916a-307329C

                      Provider - Advanced Micro Devices, Inc.

                      2D Driver Version - 8.1.1.1571

                      Direct3D® Version - 9.14.10.01221

                      OpenGL® Version - 6.14.10.14008

                      OpenCL™ Version - 6.14.10.14008

                      AMD Mantle Version - 9.1.10.0146

                      AMD Mantle API Version - 98310

                      AMD Audio Driver Version - 10.0.1.0

                      Vulkan™ Driver Version - 1.3.0

                      Vulkan™ API Version - 1.0.21

                       

                      Hardware:

                      Graphics Card Manufacturer - Powered by AMD

                      Graphics Chipset - AMD Radeon HD 8330

                      Device ID - 9832

                      Vendor ID - 1002

                      SubSystem ID - 510C

                      SubSystem Vendor ID - 17AA

                      Revision ID - 00

                      Bus Type - PCI

                      Current Bus Settings - PCI

                      BIOS Version - 015.033.000.001

                      BIOS Part Number - 113-C53500-103

                      BIOS Date - 2013/04/04 15:14

                      Memory Size - 512 MB

                      Memory Type - DDR3

                      Memory Clock - 667 MHz

                      Core Clock - 497 MHz

                      Total Memory Bandwidth - 10 GByte/s

                      2D Driver File Path - /REGISTRY/MACHINE/SYSTEM/ControlSet001/Control/Class/{4d36e968-e325-11ce-bfc1-08002be10318}/0000

                        • Re: Vulkan applications freeze the system on Ubuntu
                          achitty

                          Tested with the following setup, after doing a full wipe of system:

                          Lenovo ideapad - A400-5000 - HD8330 - 8GB RAM

                          Win10 64

                          16.9.2

                          Ensured that VulkanRT v1.0.26.0 was installed, then ran VulkanSDK x64/x86 Tri & Cube. No issues. Left it running for 2+ hours, no issues.

                            • Re: Vulkan applications freeze the system on Ubuntu
                              nirei

                              Thank you for your Reply. Unfortunately i still can reproduce the Vulkan Driver Crash both on a Lenovo ThinkPad Edge E145 (A4-5000 APU, Radeon HD 8330) and on a Lenovo IdeaPad S415 Touch (A6-5200 APU, AMD Radeon HD 8400 / R3 Series)

                              While the Lenovo Thinkpad Edge is not able to recover from the Graphics Driver Crash (Screen stays black), on the Lenovo IdeaPad Windows restarts the Driver, which gives room for Debugging with Visual Studio.

                               

                              Steps to reproduce on both Laptops:

                              (Wipe System)
                              Install Windows 10 Home 64bit, Version 1607, OS Build 14393.0
                              Install whql-win10-64bit-radeon-software-crimson-16.9.2-sep29.exe
                              Install VulkanSDK-1.0.30.0-Installer.exe
                              Install Visual Studio Community 2015 with "Tools for Visual C++ 2015" and "Tools (1.4.1) and Windows SDK (10.0.14393)"

                              Build the DEMOS VS Solution file in "C:\VulkanSDK\1.0.30.0\Demos" in Debug x64 mode.
                              Run "cube" in x64 debug mode.

                               

                              It does not always crash immediately, sometimes it runs fine for a few minutes. After a while (or restarting cube) the program halts and the screen turns black. When the screen is up again (i assume the graphics driver is restarted), Visual Studio catches the hang of the cube process.
                              It seems that a vkQueueSubmit() reports a "VK_ERROR_DEVICE_LOST" error, which is no wonder after the Driver crash. The crash dump of this is appended as "cube.dmp" (from Lenovo Ideapad).

                              Running the "cubepp" x64 binary (the C++ implementation of cube) in debug mode results in an immediate crash of the application, for which Visual Studio reports an invalid memory access in "amdvlk64.dll" during a vkCreateRenderPass(). This does not lead to a Crash of the GPU driver. The crash dump of this is appended as "cubepp.dmp" (from Lenovo Ideapad) and "cubepp_e145.dmp" (from Lenovo ThinkPad Edge).

                               

                              I am also appending Radeon Settings Information of both Laptops.

                              The Crash dumps are uploaded to my Dropbox since they are too big for uploading them here.