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 bug77 View Post
    seriously, was anyone expecting same-day support from AMD? Anyone?
    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…

    Comment


    • #42
      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


      • #43
        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


        • #44
          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, [email protected]=0x5555555fffe7 "environ.dds") at /home/chris/oldhome/build/gl_vk_chopper/VkeCubeTexture.cpp:171
          #3 0x000055555559c3f8 in vkeGameRendererDynamic::initRenderer ([email protected]=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
          http://www.michaellarabel.com/

          Comment


          • #45
            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


            • #46
              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


              • #47
                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


                • #48
                  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


                  • #49
                    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


                    • #50
                      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

                      Working...
                      X