Skip to main content
GameDev.net gamedev.net
📌 Pinned 🔒 Locked

Vulkan Resources

Started by L. Spiro Feb 18, 2016 at 12:19 AM 30 replies 84.5k views
Original Post
L. Spiro
L. Spiro

Home: https://www.khronos.org/vulkan/
SDK: http://lunarg.com/vulkan-sdk/

AMD drivers: http://gpuopen.com/gaming-product/vulkan/ (Note that Vulkan support is now part of AMD’s official drivers, so simply getting the latest drivers for your card should give you Vulkan support.)
NVIDIA drivers: https://developer.nvidia.com/vulkan-driver (Note that Vulkan support is now part of NVIDIA’s official drivers, so simply getting the latest drivers for your card should give you Vulkan support.)
Intel drivers: http://blogs.intel.com/evangelists/2016/02/16/intel-open-source-graphics-drivers-now-support-vulkan/

Quick reference: https://www.khronos.org/registry/vulkan/specs/1.0/refguide/Vulkan-1.0-web.pdf
References: https://www.khronos.org/registry/vulkan/specs/1.0/apispec.html
https://matthewwellings.com/blog/the-new-vulkan-coordinate-system/


GLSL-to-SPIR-V: https://github.com/KhronosGroup/glslang

Sample code: https://github.com/LunarG/VulkanSamples
https://github.com/SaschaWillems/Vulkan
https://github.com/nvpro-samples
https://github.com/nvpro-samples/gl_vk_chopper
https://github.com/nvpro-samples/gl_vk_threaded_cadscene
https://github.com/nvpro-samples/gl_vk_bk3dthreaded
https://github.com/nvpro-samples/gl_vk_supersampled
https://github.com/McNopper/Vulkan
https://github.com/GPUOpen-LibrariesAndSDKs/HelloVulkan

C++: https://github.com/nvpro-pipeline/vkcpp
https://developer.nvidia.com/open-source-vulkan-c-api

Getting started: https://vulkan-tutorial.com/
https://renderdoc.org/vulkan-in-30-minutes.html
https://www.khronos.org/news/events/vulkan-webinar
https://developer.nvidia.com/engaging-voyage-vulkan
https://developer.nvidia.com/vulkan-shader-resource-binding
https://developer.nvidia.com/vulkan-memory-management
https://developer.nvidia.com/opengl-vulkan
https://github.com/vinjn/awesome-vulkan

Videos: https://www.youtube.com/playlist?list=PLYO7XTAX41FPg08uM_bgPE9HLgDAyzDaZ

Utilities: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator (AMD Memory allocator.)
https://github.com/GPUOpen-LibrariesAndSDKs/Anvil (AMD Miniature Vulkan engine/framework.)


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid
the_Predator
the_Predator

Awesome, many thanks for the roundup!

Ryan_001
Ryan_001

One thing to mention, you need those specific older Nvidia drivers, their newer ones on their site do not support Vulkan (yet?); or at least they didn't for me.

L. Spiro
L. Spiro

I liked Vulkan in 30 Minutes as a short overview of Vulkan concepts.

Added to the top.


L. Spiro
I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid
InvalidPointer
InvalidPointer

FYI the AMD drivers are partially broken, at least on my 290X. There's something wrong with their ICD implementation, there are posts on the internal AMD developer forum about the issue.

EDIT: Never mind. I went to go check on the status of this and it looks like AMD has issued a hotfix.

clb: At the end of 2012, the positions of jupiter, saturn, mercury, and deimos are aligned so as to cause a denormalized flush-to-zero bug when computing earth's gravitational force, slinging it to the sun.
Dingleberry
Dingleberry



https://github.com/SaschaWillems/Vulkan

Is it just me or are most of the samples doing a ton of unnecessary waiting?

With the exception maybe doing something quick and dirty, special blocking loads, or maybe something fancy I can't think of at the moment, I kind of assume one wouldn't want to call vkDeviceWaitIdle or vkQueueWaitIdle very frequently. Right? But they seem littered everywhere.

L. Spiro
L. Spiro
Added.


L. Spiro
I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid
Klutzershy
Klutzershy

Is it just me or are most of the samples doing a ton of unnecessary waiting?

With the exception maybe doing something quick and dirty, special blocking loads, or maybe something fancy I can't think of at the moment, I kind of assume one wouldn't want to call vkDeviceWaitIdle or vkQueueWaitIdle very frequently. Right? But they seem littered everywhere.

It's a hell of a lot easier than setting up the infrastructure for double (or more) buffering, where you need to ensure that you don't change/delete things that are being used for the previous frame. You still need to issue a wait every 2 frames for double buffering (3 for triple buffering, and so on), but in practice, it's just there as a safeguard for pathological scenarios and should typically be a no-op.

"So there you have it, ladies and gentlemen: the only API I’ve ever used that requires both elevated privileges and a dedicated user thread just to copy a block of structures from the kernel to the user." - Casey Muratori   boreal.aggydaggy.com
Madolite
Madolite

I'm kinda excited for it, but with my limited openGL experience I'll be sticking with openGL for now. Definitely coming back to this in the future though, to learn more about those extra control goodies.

Dingleberry
Dingleberry

I'm kinda excited for it, but with my limited openGL experience I'll be sticking with openGL for now. Definitely coming back to this in the future though, to learn more about those extra control goodies.

There's very little that looks anything like GL. It looks a whole lot like DX12 however.

L. Spiro
L. Spiro

Added to the top.


L. Spiro
I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid
L. Spiro
L. Spiro
Added.


L. Spiro
I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.