Jump to content
  • Advertisement
  • 02/16/16 08:00 AM
    Sign in to follow this  

    Vulkan Tutorial 1: Introduction to Vulkan on Qualcomm® Snapdragon™ Processors

    Graphics and GPU Programming

    khawk
    • Posted By khawk

     

    Vulkan is the latest graphics API from Khronos and it’s designed to make it easier for developers to use the GPU for greater realism in 3D graphics and greater efficiency in compute applications. Qualcomm Developer Network is introducing you to what Vulkan is, what Vulkan is not, and other things you should know about the new Vulkan API and your graphics development.



      Report Article
    Sign in to follow this  


    User Feedback


    There are no comments to display.



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

  • Advertisement
  • Advertisement
  • GameDev.net and Intel Contest

    GameDev.net and Intel® have partnered up to bring GameDev.net members a gamedev contest running until December 21, 2018 - Submit your game for Intel® Certification and you could win big!

    Click here to learn more and submit your game.

  • Latest Featured Articles

  • Featured Blogs

  • Advertisement
  • Popular Now

  • Similar Content

    • By Orella
      I'm creating a 2D game engine using Vulkan.
      I've been looking at how to draw different textures (each GameObject can contain its own texture and can be different from others). In OpenGL you call glBindTexture and in vulkan I have seen that there are people who say that you can create a descriptor for each texture and call vkCmdBindDescriptorSets for each. But I have read that doing this has a high cost.
      The way I'm doing it is to use only 1 descriptor for the Sampler2D and use a VkDescriptorImageInfo vector where I add each VkDescriptorImageInfo for each texture and assign the vector in pImageInfo.
      VkWriteDescriptorSet samplerDescriptorSet; samplerDescriptorSet.pNext = NULL; samplerDescriptorSet.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; samplerDescriptorSet.dstSet = descriptorSets[i]; samplerDescriptorSet.dstBinding = 1; samplerDescriptorSet.dstArrayElement = 0; samplerDescriptorSet.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; samplerDescriptorSet.descriptorCount = static_cast<uint32_t>(samplerDescriptors.size()); samplerDescriptorSet.pImageInfo = samplerDescriptors.data(); //samplerDescriptors is the vector Using this, I can skip creating and binding a descriptor for each texture but now I need an array of Samplers in fragment shader. I can't use sampler2DArray because each texture have different sizes so I decided to use an array of Samplers2D (Sampler2D textures[n]). The problem with this is that I don't want to set a max number of textures to use.
      I found a way to do it dynamically using:
      #extension GL_EXT_nonuniform_qualifier : enable layout(binding = 1) uniform sampler2D texSampler[]; I never used this before and don't know if is efficient or not. Anyways there is still a problem with this. Now I need to set the number of descriptor count when I create the descriptor layout and again, I don't want to set a max number you can use:
      VkDescriptorSetLayoutBinding samplerLayoutBinding = {}; samplerLayoutBinding.binding = 1; samplerLayoutBinding.descriptorCount = 999999; <<<< HERE samplerLayoutBinding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; samplerLayoutBinding.pImmutableSamplers = nullptr; samplerLayoutBinding.stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; Having said that. How can I solve this? Or which is the correct way to do this efficiently?
      If you need more information, just ask.
      Thanks in advance!
    • By mefesto
      I was looking at some of Sascha Willems' examples, specifically `multithreading.cpp`, and was surprised to see that he is creating a secondary command buffer per object. I'm curious to know if this is a fairly standard approach?
      Also, it made we wonder how expensive it is to bind the same pipeline (phong), once per secondary command buffer, but once these buffers have been executed (concatenated into a primary cbuffer) you effectively have a pipeline bind per object. Being that pipelines are immutable, is it fairly cheap after the first phong pipeline is bound and therefore any subsequent phong binds don't really impact things much?
      https://github.com/SaschaWillems/Vulkan/blob/master/examples/multithreading/multithreading.cpp
      Thanks
       
    • By mark_braga
      I am wondering if it would be viable to transfer the SH coefficients calculation to a compute shader instead of doing it on CPU which for our engine requires a readback of the cube map texture. I am not entirely sure how to go about this since it will be hard to parallelize as each thread will be writing to all the coefficients. A lame implementation would be to have one thread running the entire shader but I think that's going into TDR territory.
      Currently, I am generating an irradiance map but I am planning on switching to storing it inside a spherical harmonics because of the smaller footprint.
      Does anyone have any ideas on how we can move this to the GPU or its just not a viable option?
    • By komires
      We are pleased to announce the release of Matali Physics 4.3. The latest version introduces significant changes in support for DirectX 12 and Vulkan. Introduced changes equate the use of DirectX 12 and Vulkan with DirectX 11 and OpenGL respectively, significantly reducing the costs associated with application of low-level graphics APIs. From version 4.3, we recommend using DirectX 12 and Vulkan in projects that are developed in the Matali Physics environment.
       
      What is Matali Physics?
      Matali Physics is an advanced, multi-platform, high-performance 3d physics engine intended for games, virtual reality and physics-based simulations. Matali Physics and add-ons form physics environment which provides complex physical simulation and physics-based modeling of objects both real and imagined.
       
      Main benefits of using Matali Physics:
          Stable, high-performance solution supplied together with the rich set of add-ons for all major mobile and desktop platforms (both 32 and 64 bit)     Advanced samples ready to use in your own games     New features on request     Dedicated technical support     Regular updates and fixes  

       
      You can find out more information on www.mataliphysics.com

      View full story
    • By komires
      We are pleased to announce the release of Matali Physics 4.3. The latest version introduces significant changes in support for DirectX 12 and Vulkan. Introduced changes equate the use of DirectX 12 and Vulkan with DirectX 11 and OpenGL respectively, significantly reducing the costs associated with application of low-level graphics APIs. From version 4.3, we recommend using DirectX 12 and Vulkan in projects that are developed in the Matali Physics environment.
       
      What is Matali Physics?
      Matali Physics is an advanced, multi-platform, high-performance 3d physics engine intended for games, virtual reality and physics-based simulations. Matali Physics and add-ons form physics environment which provides complex physical simulation and physics-based modeling of objects both real and imagined.
       
      Main benefits of using Matali Physics:
          Stable, high-performance solution supplied together with the rich set of add-ons for all major mobile and desktop platforms (both 32 and 64 bit)     Advanced samples ready to use in your own games     New features on request     Dedicated technical support     Regular updates and fixes  

       
      You can find out more information on www.mataliphysics.com
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!