Announcement

Collapse
No announcement yet.

Vulkan 1.0 Released: What You Need To Know About This Cross-Platform, High-Performance Graphics API

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #41
    Originally posted by rabcor View Post
    Also, didn't AMD just submit a huge patch for AMDGPU to upstream? Maybe there was vulkan support in there all along, we weren't really told what it contained, but considering that intel's implementation of Vulkan in mesa is 36k lines... wouldn't be surprising that the size of that patch would have been because of vulkan.
    I'm sure, in this case they would mention it, because it is much greater feature than FreeSync. It would be nice though to grep through this code for «Vulkan» words, if anyone have it atm :З

    Comment


    • #42
      Originally posted by andreano View Post

      AMD were the pioneers here, with Mantle, which Vulkan is said to be derived from. Assuming they could reuse some of that code for Vulkan, I would expect support from AMD first. Unless they continued pushing Mantle, that is…

      Many have said that Vulkan is a very different design at this point. Not much of Mantle is left.

      Comment


      • #43
        Originally posted by haagch View Post
        Aaand I'm still looking for any vulkan example that can actually be compiled on linux.

        Code:
        [100%] Linking CXX executable /home/chris/build/bin_x64/gl_vk_chopper
        /usr/bin/ld: cannot find -lNOTFOUND
        Also running cmake a second time doesn't work.

        Can nobody use cmake properly?
        Edit: It's the ant tweak bar. Replacing -lNOTFOUND with -lAntTweakBar in CMakeFiles/gl_vk_chopper.dir/link.txt and running make again finishes it. Probably tries to link the statically built version which doesn't exist on archlinux.
        Edit: Looks like it's attempting to start, but it requires OpenGL 4.5 and segfaults with mesa version override, so apparently can't be tested with vulkan alone.
        Edit: Huh, not really, looks more like it comes from the example code:
        Code:
        Program received signal SIGSEGV, Segmentation fault.
        0x00007ffff4a55fe4 in __memcpy_sse2_unaligned () from /usr/lib/libc.so.6
        (gdb) bt
        #0 0x00007ffff4a55fe4 in __memcpy_sse2_unaligned () from /usr/lib/libc.so.6
        #1 0x00005555555aff35 in memcpy (__len=12648448, __src=<optimized out>, __dest=<optimized out>) at /usr/include/bits/string3.h:53
        #2 VkeCubeTexture::loadCubeDDS (this=0x55555629d100, inFile=inFile@entry=0x5555555fffe7 "environ.dds") at /home/chris/oldhome/build/gl_vk_chopper/VkeCubeTexture.cpp:171
        #3 0x000055555559c3f8 in vkeGameRendererDynamic::initRenderer (this=this@entry=0x5555562106b0) at /home/chris/oldhome/build/gl_vk_chopper/VkeGameRendererDynamic.cpp:348
        #4 0x000055555559c97e in vkeGameRendererDynamic::vkeGameRendererDynamic (this=0x5555562106b0) at /home/chris/oldhome/build/gl_vk_chopper/VkeGameRendererDynamic.cpp:201
        #5 0x00005555555bbf70 in VulkanAppContext::initRenderer (this=0x5555560c9900, inProgramManager=...) at /home/chris/oldhome/build/gl_vk_chopper/VulkanAppContext.cpp:248
        #6 0x00005555555b6f76 in pathclipping::Sample::initVulkan (this=0x7fffffffd090) at /home/chris/oldhome/build/gl_vk_chopper/vukansandbox.cpp:181
        #7 pathclipping::Sample::begin (this=0x7fffffffd090) at /home/chris/oldhome/build/gl_vk_chopper/vukansandbox.cpp:252
        #8 0x00005555555d8fa6 in nv_helpers_gl::WindowProfiler::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, char const**, int, int, int, int) ()
        #9 0x00005555555b7828 in sample_main (argc=1, argv=0x7fffffffd738) at /home/chris/oldhome/build/gl_vk_chopper/vukansandbox.cpp:359
        #10 0x0000555555599cc9 in main ()
        The offending code is
        Code:
         memcpy(data, (void *)mipmap, layout.size);
        I added
        Code:
        printf("Copy size %d\n", layout.size);
        printf("sizeofmipmap %d\n", sizeof(mipmap));
        right in front of it and got:
        Copy size 12648448
        sizeofmipmap 112
        So I changed it to
        Code:
        memcpy(data, (void *)mipmap, sizeof(mipmap));
        and it ran a bit further until it segfaults at another memcpy in gl_vk_chopper/VkeBuffer.h that doesn't look to be so trivial to work around.

        Is the example just broken?

        Edit: looking at the shaders, there are only glsl shaders that contain #extension GL_KHR_vulkan_glsl : require. So is it even possible to run this?
        I had a bitch of a time compiling some of the NVIDIA VK demos, but ended up getting them working. I may be able to clean up my patches and send in pull requests to them.
        Michael Larabel
        https://www.michaellarabel.com/

        Comment


        • #44
          Originally posted by Michael View Post
          I had a bitch of a time compiling some of the NVIDIA VK demos, but ended up getting them working. I may be able to clean up my patches and send in pull requests to them.
          Thanks. I wondered whether I should make an issue on github, but decided not to, because I use mesa's version override to fake OpenGL 4.5, so I suppose that is one source of trouble.

          Next one, tried the "cube" and "tri" demos from the Vulkan SDK. Both hang the Ivy Bridge GPU (archlinux stock 4.4 kernel), but it recovers after a couple of seconds with the demos crashing without rendering anything:
          Code:
          [77974.441360] [drm] stuck on render ring
          [77974.442024] [drm] GPU HANG: ecode 7:0:0x86edffff, in cube [23922], reason: Ring hung, action: reset
          [77974.442025] [drm] GPU hangs can indicate a bug anywhere in the entire gfx stack, including userspace.
          [77974.442026] [drm] Please file a _new_ bug report on bugs.freedesktop.org against DRI -> DRM/Intel
          [77974.442027] [drm] drm/i915 developers can then reassign to the right component if it's not a kernel issue.
          [77974.442027] [drm] The gpu crash dump is required to analyze gpu hangs, so please always attach it.
          [77974.442028] [drm] GPU crash dump saved to /sys/class/drm/card0/error
          [77974.442039] ------------[ cut here ]------------
          [77974.442071] WARNING: CPU: 0 PID: 4527 at drivers/gpu/drm/i915/intel_display.c:11289 intel_mmio_flip_work_func+0x385/0x3c0 [i915]()
          [77974.442075] WARN_ON(__i915_wait_request(mmio_flip->req, mmio_flip->crtc->reset_counter, false, NULL, &mmio_flip->i915->rps.mmioflips))
          [77974.442076] Modules linked in:
          [77974.442077]  sha256_ssse3 sha256_generic hmac drbg ansi_cprng ctr ccm rfcomm exfat(O) snd_hda_codec_hdmi bnep msr arc4 iTCO_wdt iTCO_vendor_support intel_rapl iosf_mbi x86_pkg_temp_thermal intel_powerclamp coretemp mousedev iwldvm uvcvideo kvm_intel snd_hda_codec_realtek snd_hda_codec_generic kvm mac80211 videobuf2_vmalloc irqbypass videobuf2_memops videobuf2_v4l2 videobuf2_core crct10dif_pclmul snd_hda_intel crc32_pclmul v4l2_common crc32c_intel aesni_intel snd_hda_codec videodev btusb iwlwifi btrtl aes_x86_64 btbcm btintel snd_hda_core lrw joydev gf128mul glue_helper snd_hwdep bluetooth media ablk_helper input_leds psmouse serio_raw pcspkr cryptd led_class i2c_i801 cfg80211 snd_pcm rtsx_pci_ms snd_timer r8169 mei_me memstick snd rfkill mii lpc_ich mei soundcore shpchp thermal battery tpm_tis evdev
          [77974.442112]  fjes mac_hid tpm processor ac sch_fq_codel nfs lockd grace sunrpc fscache clevo_wmi(O) wmi fuse ip_tables x_tables ext4 crc16 mbcache jbd2 sr_mod cdrom sd_mod hid_generic usbhid hid rtsx_pci_sdmmc mmc_core atkbd libps2 ahci libahci libata xhci_pci ehci_pci firewire_ohci scsi_mod xhci_hcd ehci_hcd firewire_core crc_itu_t rtsx_pci usbcore usb_common i8042 serio radeon ttm i915 video button intel_gtt i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm
          [77974.442139] CPU: 0 PID: 4527 Comm: kworker/0:1 Tainted: G           O    4.4.1-2-ARCH #1
          [77974.442141] Hardware name: CLEVO                             P170EM/P170EM, BIOS 4.6.5 08/22/2012
          [77974.442149] Workqueue: events intel_mmio_flip_work_func [i915]
          [77974.442150]  0000000000000000 0000000015c6eaf3 ffff8800be167d20 ffffffff812c7f39
          [77974.442152]  ffff8800be167d68 ffff8800be167d58 ffffffff810765b2 ffff880770b27400
          [77974.442154]  ffff88082f214f00 ffff88082f219900 0000000000000000 ffff880770b27400
          [77974.442155] Call Trace:
          [77974.442160]  [<ffffffff812c7f39>] dump_stack+0x4b/0x72
          [77974.442163]  [<ffffffff810765b2>] warn_slowpath_common+0x82/0xc0
          [77974.442165]  [<ffffffff8107664c>] warn_slowpath_fmt+0x5c/0x80
          [77974.442168]  [<ffffffff810156cf>] ? __switch_to+0x23f/0x480
          [77974.442174]  [<ffffffffa014dae5>] intel_mmio_flip_work_func+0x385/0x3c0 [i915]
          [77974.442178]  [<ffffffff8108e21b>] process_one_work+0x14b/0x440
          [77974.442180]  [<ffffffff8108e558>] worker_thread+0x48/0x4a0
          [77974.442182]  [<ffffffff8108e510>] ? process_one_work+0x440/0x440
          [77974.442184]  [<ffffffff81093ff8>] kthread+0xd8/0xf0
          [77974.442185]  [<ffffffff81093f20>] ? kthread_worker_fn+0x170/0x170
          [77974.442188]  [<ffffffff81591e8f>] ret_from_fork+0x3f/0x70
          [77974.442190]  [<ffffffff81093f20>] ? kthread_worker_fn+0x170/0x170
          [77974.442191] ---[ end trace c70fec2137e9503b ]---

          Comment


          • #45
            A number of code samples are available here: https://github.com/SaschaWillems/Vulkan

            Their compiled versions for Windows 64, Linux 64 and Android ARM can be downloaded from here: http://vulkan.gpuinfo.org/examples.php

            Comment


            • #46
              Sorry if anybody seen a number of my identical posts, that probably was a forum bug — the glitch was that I posted the message, but it never appear even after a page update. And ≈½hour later they all appeared all of a sudden. I removed the duplicates though.

              Comment


              • #47
                Originally posted by andreano View Post

                AMD were the pioneers here, with Mantle, which Vulkan is said to be derived from. Assuming they could reuse some of that code for Vulkan, I would expect support from AMD first. Unless they continued pushing Mantle, that is…
                It was obvious we weren't going to get launch day linux support because of the amdgpu requirements. That code is barely in the kernel, and PM is still disabled by default.

                However, I was expecting launch day support on Windows with a validated driver. I'm really surprised they haven't had it tested.

                Comment


                • #48
                  Originally posted by birdie View Post
                  A number of code samples are available here: https://github.com/SaschaWillems/Vulkan

                  Their compiled versions for Windows 64, Linux 64 and Android ARM can be downloaded from here: http://vulkan.gpuinfo.org/examples.php
                  Thanks for the links to the compiled version. I tried compiling the sources, but it seems cmake tries to link the windows .dll libraries. (???) and I didn't look too much into it.

                  Still, none of the demos run on my GPU which is:
                  Code:
                  GPU0
                  VkPhysicalDeviceProperties:
                  ===========================
                          apiVersion     = 4194306
                          driverVersion  = 1
                          vendorID       = 0x8086
                          deviceID       = 0x0166
                          deviceType     = INTEGRATED_GPU
                          deviceName     = Intel(R) Ivybridge Mobile
                  Some of the failures:

                  gears: /home/sascha/dev/vulkan/base/vulkantools.cpp:236: VkShaderModule_T* vkTools::loadShader(const char*, VkDevice, VkShaderStageFlagBits): Assertion `size > 0' failed.

                  bloom: /home/sascha/dev/vulkan/base/vulkanTextureLoader.hpp:360: void vkTools::VulkanTextureLoader::loadCubemap(const char*, VkFormat, vkTools::VulkanTexture*): Assertion `!texCube.empty()' failed.

                  mesh: /home/sascha/dev/vulkan/base/vulkanTextureLoader.hpp:66: void vkTools::VulkanTextureLoader::loadTexture(const char*, VkFormat, vkTools::VulkanTexture*, bool): Assertion `!tex2D.empty()' failed.

                  pushconstants: /home/sascha/dev/vulkan/base/vulkanexamplebase.cpp:287: void VulkanExampleBase::loadMesh(const char*, vkMeshLoader::MeshBuffer*, std::vector<vkMeshLoader::VertexLayout>, float): Assertion `mesh->m_Entries.size() > 0' failed.

                  Comment


                  • #49
                    Originally posted by Hi-Angel View Post
                    I'm sure, in this case they would mention it, because it is much greater feature than FreeSync. It would be nice though to grep through this code for «Vulkan» words, if anyone have it atm :З
                    It is display driver for unified AMDGPU kernel driver. Vulkan will sit on the top of it. Also it will come in blob format first.

                    Comment


                    • #50
                      Originally posted by haagch View Post
                      Thanks for the links to the compiled version. I tried compiling the sources, but it seems cmake tries to link the windows .dll libraries. (???) and I didn't look too much into it.

                      Still, none of the demos run on my GPU which is:
                      Intel graphics drivers for Linux don't yet support Vulkan. Exercise patience.

                      Comment

                      Working...
                      X