Questions tagged [vulkan]

Vulkan, previously known as Next Generation OpenGL or just GLnext, is a low-level, cross-platform graphics API from the Khronos Group.

Vulkan, once known as Next Generation OpenGL or just GLnext, is designed to be a low-overhead API that facilitates multithreaded 3D development, enabling different CPU threads to simultaneously prepare batches of commands to send to the GPU. It gives developers greater control of generating commands, putting tasks such as memory and thread management in their hands rather than relying on video drivers to handle these responsibilities. In so doing, it greatly reduces the amount of work that the driver must perform, though it increases the work of the application.

Correct API usage verification is performed by an optional validation layer, simplifying the driver.

Vulkan use SPIR-V as its standard language for graphics and compute shaders. The Khronos reference GLSL compiler compiles a form of GLSL (which implements a special extension to support Vulkan features) into SPIR-V, but users can use whatever compilers they wish which have a SPIR-V backend.

Vulkan is derived from AMD's Mantle API and shares some similarities with it.

76 questions
8
votes
2 answers

Vulkan vkEnumeratePhysicalDevices Returning Unexpected Device Count

In the machine I'm running I have two GTX 980 Tis. When I query the physical device count with vkEnumeratePhysicalDevices it always returns 1 despite having 2 physical discrete graphics cards. When I use vulkaninfo the only device listed is GPU0…
user5665
4
votes
0 answers

Vulkan Drawing lines

I want to be able to draw single lines inside Vulkan but the only way I have managed to achieve this so far is by drawing a triangle with two of its points that ocupuy the same point in space. Is there a way to draw lines inside Vulkan and also…
0xen
  • 453
  • 2
  • 8
  • 24
3
votes
1 answer

Frame graph in Vulkan: from theory to implementation

I've watched the excellent talk from Yuriy[1] and read a blog post[2] multiple times already, but I still cannot find the answers to the questions I have. I really like the idea of defining a graph of "virtual resources", it gives a lot of…
csisy
  • 365
  • 4
  • 14
3
votes
1 answer

Why does a call to vkCreateInstance() take noticeable time to complete?

I decided to learn Vulkan and started writing a simple program. I then ran the program (which only called vkCreateInstance()) to see if the Vulkan instance was created successfully and was shocked to see that my computer's fan started spinning…
Cpp plus 1
  • 289
  • 1
  • 10
2
votes
1 answer

Which array does dstArrayElement refer to in the VkWriteDescriptorSet structure?

Here is the link of VkWriteDescriptorSet structure from vulkan specification: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkWriteDescriptorSet.html Text pertaining dstArrayElement dstArrayElement is the starting element in…
Mark Peter
  • 89
  • 6
2
votes
2 answers

Vulkan best practice when submitting draw commands

As with most projects working in a graphics library, I need to dynamically send draw calls to the command buffers, but what is the best way to do this? Currently, for every frame, I rebuild my command buffers, specify the objects I wish to render,…
0xen
  • 453
  • 2
  • 8
  • 24
2
votes
3 answers

Vulkan Error: cmd buffer submit cant use image because of layout

I've been coding a Vulkan rendering engine for the past few weeks. My code still continues to execute and I get the desired output, but I am getting an error. I'm fairly certain that my error is a mistake in my code somewhere. My code is 1000+…
user2129189
  • 387
  • 3
  • 8
1
vote
1 answer

vkCmdCopyBuffer has no effect for transfer of staging buffer

for a vulkan renderer using vulkan-hpp and Vulkan Memory Allocator I am trying to transfer vertex data to the gpu using a staging buffer. Without using an intermediary staging buffer the transfer works and the meshes can be rendered with no problems…
Teris
  • 121
  • 5
1
vote
1 answer

Vulkan rendering lots of objects

I'm wanting to render multiple objects on a screen and in some cases several of each object. I'm not sure what the best method of doing this is and was wanting some advice. The only way I can think of doing this is having X Command Buffers for each…
0xen
  • 453
  • 2
  • 8
  • 24
0
votes
0 answers

Unexpected performance different between D3D12 and Vulkan

I'm experimenting with some usage cases of structured buffers in a side project, where I'm building parallel implementations with Vulkan and DirectX 12. My performance stress-test is brute-force lighting, just iterating over 256 point lights in the…
Varrak
  • 101
  • 1
0
votes
1 answer

How does a subpass dependency guarantee the layout transition of a swapchain image happens after presentation engine finish reading the very image?

I'm going through vulkan-tutorial: https://vulkan-tutorial.com/Drawing_a_triangle/Drawing/Rendering_and_presentation And I found something weired: How does this subpass dependency guarantee the layout transition(from UNDEFINED to…
Mark Peter
  • 89
  • 6
0
votes
1 answer

Passing a unique Uniform buffer with each model

I have been following "Vulkan Tuturial" on GitHub as a reference on how to get basic objects rendering. In their tutorial, they create the command buffers at the start of the application after they have created a objects vertex and index buffers,…
0xen
  • 453
  • 2
  • 8
  • 24
0
votes
1 answer

Setting font color, Vulkan

I am new using Vulkan, and i am trying to learn it looking tutorials and looking the vulkan examples that they provided(vulkan-master: https://github.com/SaschaWillems/Vulkan). One of them is the Overlaytext project. In this project they teach you…
Haruko
  • 368
  • 1
  • 12