Skip to content

A tour of a Vulkan compute-and-shading program by way of a Boids Flocking simulation

License

Notifications You must be signed in to change notification settings

aksris/Project6-Vulkan-Flocking

 
 

Repository files navigation

Vulkan Flocking: compute and shading in one pipeline!

CLICK ME FOR INSTRUCTION OF THIS PROJECT

University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 6

  • Akshay Shah
  • Tested on: Windows 10, i7-5700HQ @ 2.70GHz 16GB, GTX 970M 6GB (Personal Computer)

Vulkan Boids flocking simulation

Screenshots

Analysis

  • Why do you think Vulkan expects explicit descriptors for things like generating pipelines and commands?

    Since Vulkan gets the memory to store command buffers from a preallocated command pool on the GPU, explicit descriptors for pipelines and commands can be used because it cannot be updated once created. Having preallocation, would mean the input and the output of the pipelines would have been already allocated during runtime and has no other overhead. (i.e., One command buffer can be used for multiple data.)

  • Describe a situation besides flip-flop buffers in which you may need multiple descriptor sets to fit one descriptor layout.

    When you want to render different textures on the same mesh or have different vertices set for a mesh. For example, you could render a cube or a sphere with the same descriptionLayout just with different sets.

  • What are some problems to keep in mind when using multiple Vulkan queues?

    • take into consideration that different queues may be backed by different hardware
    • take into consideration that the same buffer may be used across multiple queues

    Queues are good when there is a lot of operation that is independent of each other. This would mean that these queues could be highly parallelized. Since they are parallelized, any synchronous operation might fail as there is no known order of execution. If the operations involve a lot of transfers between buffers, then a single queue would have better performance.

  • What is one advantage of using compute commands that can share data with a rendering pipeline?

    Avoids copying data from input and output.

Bloopers

Credits

About

A tour of a Vulkan compute-and-shading program by way of a Boids Flocking simulation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.7%
  • CMake 1.2%
  • Other 0.1%