Vulkan is HARD

  Рет қаралды 62,492

lolzdev

lolzdev

Күн бұрын

Since I really like graphics programming and I always used OpenGL so far, I wanted to learn Vulkan, in this video I'm documenting the process of learning it and the steps I took.
Resources:
- Vulkan specification: registry.khronos.org/vulkan/s...
- Vulkan tutorial: vulkan-tutorial.com

Пікірлер: 145
@lolzdev
@lolzdev Жыл бұрын
Hey guys, if you liked the video and you want to suggest me the topic of the next video feel free to write it here!
@deassisbarroso2515
@deassisbarroso2515 Жыл бұрын
I suggest a content about console emulation with vulkan or making a game with vulkan and comparing the performance with opengl
@daniking7524
@daniking7524 Жыл бұрын
I would like to see WGPU related videos
@Alexciaooo
@Alexciaooo Жыл бұрын
Bel video, ti meriti più iscritti. Io di solito non ci capisco niente anche perchè faccio solo gamedev con Unity, però in questo caso hai spiegato benissimo e ho capito tutto. (I assumed you were Italian, if you don't understand tell me and I'll write the comment in English)
@lolzdev
@lolzdev Жыл бұрын
@@Alexciaooo grazie, sinceramente sono molto contento del risultato inaspettato e fa sempre piacere vedere che ci sono anche italiani che vedono i miei video.
@TheSensationalMr.Science
@TheSensationalMr.Science Жыл бұрын
2:50 um, I don't think you need the code within initVulkan()... it's already within createInstance(). why not just call createInstance(), initVulkan() instead? do you really need that extra layer of boilerplate within the code? it's still getting initialized in the main app run function. EDIT: 6:31 ohhhhh other things get initialized in there... got it, now that makes sense. Hope you have a great day & Safe Travels!
@richardsinclair7661
@richardsinclair7661 Жыл бұрын
I actually didn't realize how new Vulkan was. At least in comparison to OpenGL and DirectX. Now I understand why Vulkan support has been such a big deal for games, emulators and so on.
@kazeroth1234
@kazeroth1234 Жыл бұрын
I love to see DevLog videos on Graphics Programming, Vulkan, OpenGL, etc... Please continue to make more, I look forward to it!
@pwf2k
@pwf2k Жыл бұрын
There's actually the OpenGL Debug Output extension, where you can register a debug callback function and listen for errors, performance warnings or notifications. Also the quick switching between the api docs and Vim deserves an epilepsy warning, it's a very harsh difference in brightness in short periods of time and sometimes basically flashing back and forth.
@mr.mirror1213
@mr.mirror1213 Ай бұрын
Womp womp
@pwf2k
@pwf2k Ай бұрын
​@@mr.mirror1213 it's too late for a womp womp, when I watched this a year ago, the epileptic seizure I got fractured my ocular synapses 4-dimensionally and caused me to disintegrate into a pile of mushrooms. As a sentient pile of mushrooms, I simply don't understand what this "womp womp" is.
@levmurflatazara9853
@levmurflatazara9853 5 күн бұрын
@@pwf2k same, mush-bro
@HadesMrDark
@HadesMrDark Жыл бұрын
Great video, i don't have a specific topic to suggest, but just seeing more c++ vulkan stuff is interesting, goood luck.
@hiwhatname4127
@hiwhatname4127 Жыл бұрын
Helped me understand some diffrences between OpenGL and Vulkan, thx!
@deassisbarroso2515
@deassisbarroso2515 Жыл бұрын
Glad your video was recommended to me, I hope to follow your next content. Good first video.
@lolzdev
@lolzdev Жыл бұрын
Thanks! I'm going to create more content for sure, I have to think about the topic of the next video tho
@LetrixAR
@LetrixAR Жыл бұрын
Please, use Dark Reader if you are going to switch windows constantly
@dnull
@dnull Жыл бұрын
see using dark theme all the time made your eyes weak
@JefersonLimaAlmeida
@JefersonLimaAlmeida Жыл бұрын
Great video :) But take care when switching very fast between white documentation and black terminal :/
@lolzdev
@lolzdev Жыл бұрын
Thanks! I know that's kinda fleshy but I realised that too late, the video is speeded so I haven't noticed that until I finished editing. Will check this for sure next time!
@JefersonLimaAlmeida
@JefersonLimaAlmeida Жыл бұрын
No problem! You are doing a really great job, and your video really make me interested in try to program using Vulkan in the future, I was only a little worried with photosensitive persons watching your video without a warning :/ but anyway thanks for the video
@seccentral
@seccentral Жыл бұрын
:( this. it was very interesting information wise but very painful on the eyes
@Jacktherookie_
@Jacktherookie_ Жыл бұрын
@@lolzdev At it can cause seizure who is experiencing specific disease.
@TFSned
@TFSned Жыл бұрын
Thanks for making this video. It's good to document some of the common issues you can have writing a Vulkan application from scratch. A problem I had was that my application was selecting the wrong GPU which didn't support the feature I was using. That's because the laptop had an integrated and discrete GPU, but the integrated GPU was given the index 0 and was being selected by default. Filtering the devices by supported features is a great solution.
@godnyx117
@godnyx117 7 ай бұрын
This may save me ass in the future! Thank you so much for sharing!
@wetfloo
@wetfloo 6 ай бұрын
doom eternal of all games had the same problem for my friend, I don't know why
@baileyharrison1030
@baileyharrison1030 2 ай бұрын
It's probably fine to allow the user to select which GPU to use and check for compatibility with just that. If initialisation fails just ask the user to select another GPU from the list of physical devices. Otherwise it can get extremely complicated when you've got required extensions, optional extensions, required features, optional features, and the same for required and optional texture formats. Your program may succeed using the inferior GPU as it satisfies the required features but not the optional ones.
@BrunoidGames
@BrunoidGames 9 күн бұрын
Amazing intro to Vulkan. Subscribed!
@rem_0
@rem_0 Жыл бұрын
With this switching frequency you need to paste some epilepsy warning at the beginning :D
@lennonmclean
@lennonmclean Жыл бұрын
"OpenGL is simple" Yes... Simple...
@mdev790
@mdev790 Жыл бұрын
underrated channel, right here
@la694
@la694 Жыл бұрын
omg its jdhs long lost brother
@emirbrkic6649
@emirbrkic6649 Жыл бұрын
Daje fra, fai sentire la presenza italiana in questa community
@loldoblender625
@loldoblender625 Жыл бұрын
Great video!
@lolzdev
@lolzdev Жыл бұрын
thanks!
@nitricswight
@nitricswight Жыл бұрын
Awesome video, but after learning openGL for the best part of a year, I lost part of my soul when you called it high-level 😞
@lolzdev
@lolzdev Жыл бұрын
graphics programming is always a low level topic considering that you're interfacing with hardware but in comparison to vulkan opengl adds a lot of abstractions over the hardware and pipeline. That being said I still use opengl ;)
@dreastonbikrain1896
@dreastonbikrain1896 Жыл бұрын
I am too learning OpenGL some months now, and I don't think that you should feel bad at all, if you can accomplish what you are trying to do, then that is the perfect tool for you, I tried Vulkan before OpenGL, and it was just too much for me, with knowledge gained with OpenGL, I think both of us will be able to get into Vulkan if we will have a need for it :)
@willtheoct
@willtheoct 6 ай бұрын
Don't lose your soul to a video uploader. After skimming his video, he obviously doesn't know what he's doing
@random_guy_on_the_internet69
@random_guy_on_the_internet69 Жыл бұрын
Very "flashy" video! How do you do that? How do you handle this constant switching between dark and light themes????
@SamuTheFrog
@SamuTheFrog 4 ай бұрын
My phone is buggin and can't tell if previous comment posted, but it is GNU/Linux with a Window Manager. I'd recommend starting on Ubuntu & installing a window manager, if you are interested. DistroTube on youtube has plenty of vids on window managers. Not possible on Windows.
@RealHubertCZGameplayLetsPlay
@RealHubertCZGameplayLetsPlay Жыл бұрын
Google algorithm has chosen you. It recommended me your video 3 times until i clicked.
@daniking7524
@daniking7524 Жыл бұрын
Awesomeee
@sustachio2246
@sustachio2246 Жыл бұрын
Great video! What vim theme are you using? I am looking for a good one right now
@lolzdev
@lolzdev Жыл бұрын
it's called gruvbox
@albatroshd7945
@albatroshd7945 Жыл бұрын
Maniac, Programming in Vim, not bad 👍🏽
@SanoKei
@SanoKei Жыл бұрын
what program is the drawing thing with the grid?
@lolzdev
@lolzdev Жыл бұрын
it's xournal++
@noxagonal
@noxagonal Жыл бұрын
I've been doodling with Vulkan for a while now. I'd say it's difficult but still very logical. The most difficult thing so far has been the memory management. You must create your own memory pool as there's a hard limit of how many memory allocations you're allowed from the GPU driver and it's usually capped at 4000 allocations. All data sent to the GPU requires memory so you must allocate a chunk at a time. Further, there are different types of memory you can allocate, Eg. VRAM, RAM, RAM which is shared with the GPU, VRAM which is accessible to the CPU... Not all systems have all types of memory so you need to check this at runtime. Different memory types can all have widely different alignment requirements, which also varies from system to system. There's also different memory usage cases, generally linear and optimized, where optimized is used for your usual textures with mip mapping and linear with everything else, including non-optimized texture types and buffers. There are also restrictions for what resources can be created on which memory type and which memory types perform best for each usage case, eg. Optimal textures can only be on the VRAM, vertex buffer may be uploaded to VRAM each frame or if the CPU can access the VRAM it may be faster to write it directly. Lot of options here... Good thing is that it's still very logical, it just requires some learning, and there are multiple Vulkan memory pools/managers on github that will work just fine.
@noxabellus
@noxabellus Жыл бұрын
jesus christ that sounds like a nightmare
@noxagonal
@noxagonal Жыл бұрын
@@noxabellus Hehe. It's not a nightmare if you like solving problems. XD It's low level and pretty much exactly what the developers wanted, if you don't want to deal with its nuances, there are other libraries that build on top of Vulkan. But yeah, it'll take at least a couple of days to create your own memory pool that works properly with Vulkan.
@abdullahmertozdemir9437
@abdullahmertozdemir9437 Жыл бұрын
@@noxagonal like vulkan abstractions?
@noxagonal
@noxagonal Жыл бұрын
@@abdullahmertozdemir9437 Not sure where my comment disappeared... But yeah, there's plenty from simple helpers to complete game engines.
@melficexd
@melficexd Жыл бұрын
Three words: Vulkan Memory Allocator. If you don't want to mess with the memory, use the VMA. And that will be it. It will handle memory for you just right.
@zonn8954
@zonn8954 9 ай бұрын
Hey ! Good video thanks What's your configuration ? I mean what distro, desktop environment and overall : what window manager ?
@Nodal488
@Nodal488 6 ай бұрын
His window manager is DWM, for the rest I couldn’t tell 🙂
@_erayerdin
@_erayerdin Жыл бұрын
Good video. I wonder, what program are you using to animate in the beginning?
@lolzdev
@lolzdev Жыл бұрын
I'm using Xournal++, drawing with the graphics tablet and recording me drawing
@_erayerdin
@_erayerdin Жыл бұрын
@@lolzdev Thank you so much.
@Lukas-qy2on
@Lukas-qy2on Жыл бұрын
feels like an intimidating amount of "boilerplate" but it feels like there is logic underlying it.
@willtheoct
@willtheoct 6 ай бұрын
"feels like" isn't "has". You can code in vulkan without the bloat and error logging, and if you need a triangle rendered, use regl to do it in a couple of lines.
@joshuaheathcote2116
@joshuaheathcote2116 Жыл бұрын
How the hell do you use vim like that! You're like the VIM professional!
@LavaHoleD
@LavaHoleD Жыл бұрын
Based
@d.g.m.04
@d.g.m.04 15 күн бұрын
When I watch a video where the guy tells me that OpenGL is high level, I know I'm in the right place.
@jizosgoescrazy
@jizosgoescrazy Жыл бұрын
hey! what IDE is this?
@lolzdev
@lolzdev Жыл бұрын
it's not an ide, I'm using a text editor and it's just vim
@kvbc5425
@kvbc5425 Жыл бұрын
my brother, i ain't writing 10k lines for a triangle 💀
@gabrielmessier
@gabrielmessier Жыл бұрын
you gotta admit, it's a cool looking triangle, though.
@sklonowanykiedymamuta3305
@sklonowanykiedymamuta3305 8 ай бұрын
I was able to do this with 500 lines of code
@willtheoct
@willtheoct 6 ай бұрын
@@gabrielmessier I've seen better triangles from first time GL programmers. He only needs 10k lines of code for psychological satisfaction
@921Ether
@921Ether 4 ай бұрын
nah dont worry you just need a thousand lines of boilerplate for that 💀
@nrdybhu1560
@nrdybhu1560 Жыл бұрын
I likey the video
@ilprogrammator
@ilprogrammator Жыл бұрын
Per caso segui jdh? lo stile mi sembra molto simile, e mi piace molto. Complimenti per il video!
@lolzdev
@lolzdev Жыл бұрын
sì lo seguo, come avrai notato nei commenti molte persone si sono accanite avendo notato questa somiglianza anche se come ho già spiegato semplicemente usiamo gli stessi tool e ciò fa sembrare il video simile ma l'esposizione è diversa. Comunque grazie :)
@mrdiabeatis9943
@mrdiabeatis9943 8 ай бұрын
Jdh?
@__username1
@__username1 3 ай бұрын
The hardest part of vulkan for me is that I never know what to do next because there isn't a single comprehensive and rigorous explanation of vulkan's structure that I've ever seen. Every tutorial either expects you to know stuff already or to follow alonv and ask less questions
@rokoblox
@rokoblox Жыл бұрын
Man the worst thing i hate about coding something is getting graphics running especially if i want something simple such as some physics test or whatever Neither of these 2 APIs is easy 💀
@Caellyan
@Caellyan 7 ай бұрын
You can just use an existing engine then. Godot is pretty good (in C++ land) and you can learn to use VK/GL through modifying it if you need to do it.
@rokoblox
@rokoblox 7 ай бұрын
@@Caellyan I usually want to run those experiments on bare bones for maximum optimization by only having what I need.
@talhagenc9401
@talhagenc9401 Жыл бұрын
I sense 50% Indianness from this dude.
@MrBlackspoon
@MrBlackspoon Жыл бұрын
elon musk incoming
@debdutchakraborty8987
@debdutchakraborty8987 Жыл бұрын
🤣
@dorktales254
@dorktales254 Жыл бұрын
I guess he is big indian...
@CatChrist
@CatChrist Жыл бұрын
That means he knows what he's talking about. I'm sold.
@giacomol02
@giacomol02 Жыл бұрын
He sounds Italian
@lLenn2
@lLenn2 Жыл бұрын
"OpenGL is high-level" lmao 🤣😂🤣😂🤣😂🤣😂🤣😂
@nellfs
@nellfs Жыл бұрын
Very cool! What wm are you using?
@lolzdev
@lolzdev Жыл бұрын
thanks! It's dwm btw
@TheoParis
@TheoParis Жыл бұрын
@@lolzdev nice, just switched to dwm myself
@melficexd
@melficexd Жыл бұрын
Vulkan isn't complex, is elemental, thus people can't get it that easy. The advantage is that it allows for many explicit things that otherwise get overlooked, such as the parallelism GPU-CPU, in fact, if you can get that right, you have half of the victory with Vulkan. Amortize the rendering time with further processing. The other half is taking advantage of GPU parallelism, which Vulkan eases quite a bit too
@enriquedelacal2814
@enriquedelacal2814 6 ай бұрын
Why do you mischaracterize opengl like that
@lija-everything
@lija-everything Жыл бұрын
jdh sounds kinda strange in this one did he catch a cold or smth
@Chu4hun
@Chu4hun Жыл бұрын
coding time lapse is wery flashy
@Caellyan
@Caellyan 7 ай бұрын
I love how CMake is 1/8 of the video. Very realistic 🤣🤣🤣
@willtheoct
@willtheoct 6 ай бұрын
well he didn't do very much so...
@chakibchemso
@chakibchemso Жыл бұрын
noice vid
@XkelloggmanX
@XkelloggmanX Жыл бұрын
Holy seizures Batman!
@dreastonbikrain1896
@dreastonbikrain1896 Жыл бұрын
Is graphics programming your job? Or is it more a hobby?
@lolzdev
@lolzdev Жыл бұрын
definitely an hobby, I'm in high school
@The6DAZ6
@The6DAZ6 Жыл бұрын
Just discovered this channel... Is this an italian accent?
@lolzdev
@lolzdev Жыл бұрын
yes lol
@The6DAZ6
@The6DAZ6 Жыл бұрын
@@lolzdev Gotcha! I'm italian too. Nice video man, keep up with the good work. I'm also a (junior) developer too, is there any resource you can suggest me to learn this topic (I was considering for example making a tetris clone using the canvas API by OpenGL just to start)
@lolzdev
@lolzdev Жыл бұрын
I learnt basics of graphics programming from learnopengl.com it's a good resource imo
@daniking7524
@daniking7524 Жыл бұрын
Now a wgpu tutorial pls
@tanveerasif5978
@tanveerasif5978 Ай бұрын
Bro, you're the running with speed of flash, I am not able to catch even with the speed 0.25X. 😅 May be sharing your code can help me if possible.
@mr2meows
@mr2meows Жыл бұрын
the title and thumbnail are opposites
@birdbeakbeardneck3617
@birdbeakbeardneck3617 Жыл бұрын
are u jdh?
@joelm2858
@joelm2858 Жыл бұрын
0:26 - How are you writing your letters? jesus 😂
@alopmemes1964
@alopmemes1964 Жыл бұрын
is my guy polish?
@lolzdev
@lolzdev Жыл бұрын
nah, italian
@solindek
@solindek Жыл бұрын
fajnie jak by był polakiem :)
@kvbc5425
@kvbc5425 Жыл бұрын
też tak myślałem
@ari_archer
@ari_archer Жыл бұрын
I hate how you use easy and simple interchangeably, it's my biggest pet peeve lol
@lolzdev
@lolzdev Жыл бұрын
I didn't really know the difference lol, thank you for letting me know, I have to improve my speaking
@ari_archer
@ari_archer Жыл бұрын
​@@lolzdev nah dw lol, good video, it's just my nitpick, I have a huge pet peeve of easy = syntax and simple = logic E.g. asm = simple, python = easy :)
@Volian0
@Volian0 6 ай бұрын
I would use vulkan, but sadly... not every old GPU supports it, older android phones don't support it, and that's why I'm using OpenGL ES, it's simple and has everything I need. Maybe I lose performance, but so what? I'm making a simple game, not a cyberpunk sequel
@cheeky6114
@cheeky6114 Жыл бұрын
this youtube account seems familiarly?
@greanplayer
@greanplayer Жыл бұрын
jdh
@cheeky6114
@cheeky6114 Жыл бұрын
@@greanplayer i know
@deleted_handle
@deleted_handle 3 ай бұрын
3:35 wtf my eyes
@athrixxs
@athrixxs 7 ай бұрын
jdh ahh
@Siissioe123
@Siissioe123 6 ай бұрын
I hear an italian accent?
@stfoggy124
@stfoggy124 Жыл бұрын
In my Personal opinion vulkan isnt hard, just tedious
@naninoni7086
@naninoni7086 Жыл бұрын
Literally a JDH video…
@discretemathematicso
@discretemathematicso Жыл бұрын
Vulkan is overkill unless your a big game company and making games with lost of eye candy, i dont know what you were trying to show with all that code, too quick to follow and furthermore nothing learned
@Soullessrun
@Soullessrun Жыл бұрын
SO FUCKING LOUD AUDIO
@sannfdev
@sannfdev Жыл бұрын
Walmart jdh
@AlFredo-sx2yy
@AlFredo-sx2yy Жыл бұрын
mfw stolen content
@remuswt1035
@remuswt1035 Жыл бұрын
jdh wanna be
@EesaSharma
@EesaSharma Ай бұрын
Bro is copying JDH BIG TIME. NeoVim, even the same music playing
@VmsCentral
@VmsCentral Жыл бұрын
If the author does not mind - source that was shown in the video can be took from GitHub gist 0ae55199763301db7d8e5b8a1716d91b
@lolzdev
@lolzdev Жыл бұрын
wow, this is impressive! ofc I don't mind, this is a nice thing since I don't even have the code base anymore
@x1expert1x
@x1expert1x Жыл бұрын
what the hell is wrong with youtubes user interface, its flickering and sh*t
What is WebGPU?
14:09
Suboptimal Engineer
Рет қаралды 60 М.
Mom's Unique Approach to Teaching Kids Hygiene #shorts
00:16
Fabiosa Stories
Рет қаралды 28 МЛН
How Many Balloons Does It Take To Fly?
00:18
MrBeast
Рет қаралды 172 МЛН
I made a better Ray-Tracing engine
17:38
NamePointer
Рет қаралды 248 М.
GDC 2018   Getting explicit How Hard is Vulkan really
1:01:03
ALL IT TAKES... A Vulkan Story
29:10
The Cherno
Рет қаралды 128 М.
In Video Games, The Player Never Moves
19:21
Josh's Channel
Рет қаралды 461 М.
What does a Game Engine actually do?
16:45
Ellie Rasmussen
Рет қаралды 143 М.
Should you learn Vulkan(C++)? Can beginners  learn it?
8:49
codergopher
Рет қаралды 62 М.
Why Doesn’t Everyone Use This Animation???
23:59
Theo - t3․gg
Рет қаралды 98 М.
10 weird algorithms
9:06
Fireship
Рет қаралды 1,2 МЛН
Learning VULKAN by Rendering a GALAXY
6:10
frozein
Рет қаралды 29 М.
The Strange Graphics Of LETHAL COMPANY
15:59
Acerola
Рет қаралды 775 М.
Cheapest gaming phone? 🤭 #miniphone #smartphone #iphone #fy
0:19
Pockify™
Рет қаралды 4,3 МЛН
Xiaomi SU-7 Max 2024 - Самый быстрый мобильник
32:11
Клубный сервис
Рет қаралды 410 М.
Красиво, но телефон жаль
0:32
Бесполезные Новости
Рет қаралды 1,5 МЛН
iPhone socket cleaning #Fixit
0:30
Tamar DB (mt)
Рет қаралды 15 МЛН
Как бесплатно замутить iphone 15 pro max
0:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 4,5 МЛН