• Advertisement
  • Popular Tags

  • Popular Now

  • Advertisement
  • Similar Content

    • By khawk
      LunarG has released new Vulkan SDKs for Windows, Linux, and macOS based on the 1.1.73 header. The new SDK includes:
      New extensions: VK_ANDROID_external_memory_android_hardware_buffer VK_EXT_descriptor_indexing VK_AMD_shader_core_properties VK_NV_shader_subgroup_partitioned Many bug fixes, increased validation coverage and accuracy improvements, and feature additions Developers can download the SDK from LunarXchange at https://vulkan.lunarg.com/sdk/home.

      View full story
    • By khawk
      LunarG has released new Vulkan SDKs for Windows, Linux, and macOS based on the 1.1.73 header. The new SDK includes:
      New extensions: VK_ANDROID_external_memory_android_hardware_buffer VK_EXT_descriptor_indexing VK_AMD_shader_core_properties VK_NV_shader_subgroup_partitioned Many bug fixes, increased validation coverage and accuracy improvements, and feature additions Developers can download the SDK from LunarXchange at https://vulkan.lunarg.com/sdk/home.
    • By mark_braga
      I have a pretty good experience with multi gpu programming in D3D12. Now looking at Vulkan, although there are a few similarities, I cannot wrap my head around a few things due to the extremely sparse documentation (typical Khronos...)
      In D3D12 -> You create a resource on GPU0 that is visible to GPU1 by setting the VisibleNodeMask to (00000011 where last two bits set means its visible to GPU0 and GPU1)
      In Vulkan - I can see there is the VkBindImageMemoryDeviceGroupInfoKHR struct which you add to the pNext chain of VkBindImageMemoryInfoKHR and then call vkBindImageMemory2KHR. You also set the device indices which I assume is the same as the VisibleNodeMask except instead of a mask it is an array of indices. Till now it's fine.
      Let's look at a typical SFR scenario:  Render left eye using GPU0 and right eye using GPU1
      You have two textures. pTextureLeft is exclusive to GPU0 and pTextureRight is created on GPU1 but is visible to GPU0 so it can be sampled from GPU0 when we want to draw it to the swapchain. This is in the D3D12 world. How do I map this in Vulkan? Do I just set the device indices for pTextureRight as { 0, 1 }
      Now comes the command buffer submission part that is even more confusing.
      There is the struct VkDeviceGroupCommandBufferBeginInfoKHR. It accepts a device mask which I understand is similar to creating a command list with a certain NodeMask in D3D12.
      So for GPU1 -> Since I am only rendering to the pTextureRight, I need to set the device mask as 2? (00000010)
      For GPU0 -> Since I only render to pTextureLeft and finally sample pTextureLeft and pTextureRight to render to the swap chain, I need to set the device mask as 1? (00000001)
      The same applies to VkDeviceGroupSubmitInfoKHR?
      Now the fun part is it does not work  . Both command buffers render to the textures correctly. I verified this by reading back the textures and storing as png. The left texture is sampled correctly in the final composite pass. But I get a black in the area where the right texture should appear. Is there something that I am missing in this? Here is a code snippet too
      void Init() { RenderTargetInfo info = {}; info.pDeviceIndices = { 0, 0 }; CreateRenderTarget(&info, &pTextureLeft); // Need to share this on both GPUs info.pDeviceIndices = { 0, 1 }; CreateRenderTarget(&info, &pTextureRight); } void DrawEye(CommandBuffer* pCmd, uint32_t eye) { // Do the draw // Begin with device mask depending on eye pCmd->Open((1 << eye)); // If eye is 0, we need to do some extra work to composite pTextureRight and pTextureLeft if (eye == 0) { DrawTexture(0, 0, width * 0.5, height, pTextureLeft); DrawTexture(width * 0.5, 0, width * 0.5, height, pTextureRight); } // Submit to the correct GPU pQueue->Submit(pCmd, (1 << eye)); } void Draw() { DrawEye(pRightCmd, 1); DrawEye(pLeftCmd, 0); }  
    • By turanszkij
      Hi,
      I finally managed to get the DX11 emulating Vulkan device working but everything is flipped vertically now because Vulkan has a different clipping space. What are the best practices out there to keep these implementation consistent? I tried using a vertically flipped viewport, and while it works on Nvidia 1050, the Vulkan debug layer is throwing error messages that this is not supported in the spec so it might not work on others. There is also the possibility to flip the clip scpace position Y coordinate before writing out with vertex shader, but that requires changing and recompiling every shader. I could also bake it into the camera projection matrices, though I want to avoid that because then I need to track down for the whole engine where I upload matrices... Any chance of an easy extension or something? If not, I will probably go with changing the vertex shaders.
    • By Alexa Savchenko
      I publishing for manufacturing our ray tracing engines and products on graphics API (C++, Vulkan API, GLSL460, SPIR-V): https://github.com/world8th/satellite-oem
      For end users I have no more products or test products. Also, have one simple gltf viewer example (only source code).
      In 2016 year had idea for replacement of screen space reflections, but in 2018 we resolved to finally re-profile project as "basis of render engine". In Q3 of 2017 year finally merged to Vulkan API. 
       
       
  • Advertisement
  • Advertisement
Sign in to follow this  

Vulkan Vulkan: how to compile SaschaWillems demos on ubuntu 16.04.10?

This topic is 473 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Advertisement

Did you add `ppa:canonical-x/vulkan` to your apt repositories?

 

Yes. Heres it all:


user@user-Lenovo-IdeaPad-Flex-10:~$ sudo apt-add-repository ppa:canonical-x/vulkan
[sudo] password for user:
 UPDATE 2016-11-19
All packages have been purged, this PPA was meant for packaging testing only and it has served it's purpose.

UPDATE 2016-03-18 -- vulkan loader has dropped it's demos (can't ship prebuilt shaders) and vkcube is broken, but the driver is now fixed and Willems demos work (some might crash though)

-----

This ppa contains bits and pieces needed to test Vulkan BUT ONLY FOR XENIAL (and maybe 14.04 in the future).

:: sudo apt-add-repository ppa:canonical-x/vulkan
:: sudo apt update
:: sudo apt install vulkan-utils mesa-vulkan-drivers

now run 'vulkaninfo'

Shinier demos: https://github.com/SaschaWillems/Vulkan
Clone the repository, then download the binary tarball and extract it in the bin/ directory of the repository, and run binaries from there (chmod first). Some are buggy with the current intel driver on this PPA.

NOTE:
The intel driver needs DRI3, so either enable it via xorg.conf, or remove intel_drv.so and use the modesetting driver instead (will still be hw accelerated).

Have questions? #ubuntu-x on freenode
 More info: https://launchpad.net/~canonical-x/+archive/ubuntu/vulkan
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keyring `/tmp/tmp8adk234w/secring.gpg' created
gpg: keyring `/tmp/tmp8adk234w/pubring.gpg' created
gpg: requesting key 12CB614C from hkp server keyserver.ubuntu.com
gpg: /tmp/tmp8adk234w/trustdb.gpg: trustdb created
gpg: key 12CB614C: public key "Launchpad PPA for Canonical X.org" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK
user@user-Lenovo-IdeaPad-Flex-10:~$ sudo apt update
Hit:1 http://security.ubuntu.com/ubuntu xenial-security InRelease
Hit:2 http://ppa.launchpad.net/canonical-x/vulkan/ubuntu xenial InRelease
Hit:3 http://gb.archive.ubuntu.com/ubuntu xenial InRelease              
Hit:4 http://gb.archive.ubuntu.com/ubuntu xenial-updates InRelease      
Hit:5 http://ppa.launchpad.net/damien-moore/codeblocks-stable/ubuntu xenial InRelease
Hit:6 http://gb.archive.ubuntu.com/ubuntu xenial-backports InRelease    
Reading package lists... Done                      
Building dependency tree       
Reading state information... Done
All packages are up-to-date.
user@user-Lenovo-IdeaPad-Flex-10:~$ sudo apt install vulkan-utils mesa-vulkan-drivers
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package mesa-vulkan-drivers
user@user-Lenovo-IdeaPad-Flex-10:~$

It may not be available at the moment? Or they forgot it :)

 

I'm not even sure if vulkan will run on my laptop, it doesn't under windows, hence why I'm on Ubuntu(pretty cool).

Edited by paulgriffiths

Share this post


Link to post
Share on other sites


> UPDATE 2016-11-19 All packages have been purged, this PPA was meant for packaging testing only and it has served it's purpose.


I think your answer is right there. :^)

It seems you may need to find some other route. Have you tried any of the official pacakages? Ubuntu’s libvulkan-dev, perhaps?

Share this post


Link to post
Share on other sites

 


> UPDATE 2016-11-19 All packages have been purged, this PPA was meant for packaging testing only and it has served it's purpose.


I think your answer is right there. :^)

It seems you may need to find some other route. Have you tried any of the official pacakages? Ubuntu’s libvulkan-dev, perhaps?

 

 

Ill try that. Thanks did not know these officials existed.

How do you install them? Am pretty new to Ubuntu.

Edited by paulgriffiths

Share this post


Link to post
Share on other sites
You can use `apt-get install` or `apt install` as sudo to install packages. Enter `man apt` to read more about your system’s package manager. If you aren’t already, I highly recommend you familiarize yourself with text-based terminals for both Linux and Windows.

Share this post


Link to post
Share on other sites

The same;

 

 sudo  apt-get install  mesa-vulkan-drivers
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package mesa-vulkan-drivers

Edited by paulgriffiths

Share this post


Link to post
Share on other sites
In reply to your first edit, you can check whether or not you’re root with `whoami`— also your prompt will end with `#` if you’re root, or `$` as a regular user.

And you seem to be using the old package name again:

$ sudo apt-get install libvulkan-dev

Share this post


Link to post
Share on other sites

In reply to your first edit, you can check whether or not you’re root with `whoami`— also your prompt will end with `#` if you’re root, or `$` as a regular user.

And you seem to be using the old package name again:

$ sudo apt-get install libvulkan-dev

Still the same even with synaptic manager.

 

Thanks for your help. : I'm guessing mesa-vulkan-drivers are not currently available.

Edited by paulgriffiths

Share this post


Link to post
Share on other sites

Drop installing packages. There's no such need and it's pretty much obsolete. Vulkan doesn't install anymore system-wide. Go to LunarG website and download the SDK: https://lunarg.com/vulkan-sdk/ It contains all you need and even more and everything is up-to-date. I usually unpack Vulkan SDK into /opt keeping all updated versions and symlinking the latest one as the "current". Since it's not a system-wide package anymore you will need to tell where the Vulkan headers and libraries are however, the lazy way is just creating symlinks in /usr/include and /usr/lib into the proper directories from the SDK. Also, it's necessary to tell where the layers are by defining VK_LAYER_PATH env variable ( for example in .bashrc ) that points into PATH_TO_SDK/x86_64/etc/explicit_layer.d directory/. I have updated LD_LIBRARY_PATH in order to pick up the right runtime library ( points at PATH_TO_SDK/x86_64/lib ). Basically, everything you need is in the x86_64 directory ( which before used to be installed system-wide ). It may sound complicated but you do it only once and then, with each update of the SDK you just link to the new directory. It keeps environment clean, easy to update and doesn't mess up drivers ( which was the case if one used one of those nvidia-prime drivers in the past ). All instructions are in the SDK/config directory. If you follow them, you won't have a problem with setting Vulkan environment up. Then you may run build scripts to build examples, samples and tools.

Edited by j_uk_dev

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement