Concurrent Programming: Compute Shaders
13:08
Concurrent Programming: Taskflow
19:07
4 сағат бұрын
Concurrent Programming: SIMD
22:56
4 сағат бұрын
10k Subscriber Special
10:53
12 сағат бұрын
Vulkan with C++, Stage 12: Synchronization
23:04
WGPU for beginners 3: Shaders
27:44
28 күн бұрын
Пікірлер
@astra-dev
@astra-dev 2 сағат бұрын
very good tutorials 💙💙💙
@mikelevels1
@mikelevels1 6 сағат бұрын
Loving this content! Will compute shaders be added to the C++ Vulkan tutorial? Additionally, is it possible to pass the result from a compute pass straight into a vertex shader? I mean without transferring the memory back to the host?
@GetIntoGameDev
@GetIntoGameDev 4 сағат бұрын
1: Yes! I'll probably use them for visibility tests. 2: Yes! In OpenGL this is actually the default behaviour. In this code I bind the storage buffer once at creation, the compute shader writes to it and the geometry shader (but could be any shader module at all) reads from it, no host involvement beyond synchronisation of shaders.
@okanguclu4567
@okanguclu4567 19 сағат бұрын
Why are you uploading the colours buffer to the gpu. Couldn't you just define constants in the shader for it? Would be faster, since you don't need to transfer it from CPU to GPU anymore.
@GetIntoGameDev
@GetIntoGameDev 7 сағат бұрын
Fair point! Defining as a shader constant may speed things up further, not on the memory bus since I’m only transferring once at program creation, but by reducing the number of memory reads.
@SkyFly19853
@SkyFly19853 Күн бұрын
Looks like a list for a tile map...
@mouradouchane
@mouradouchane Күн бұрын
<3
@UhGoomba
@UhGoomba Күн бұрын
Good timing for reviving the series, especially with the simd stuff. Hope this continues
@Babakinha
@Babakinha Күн бұрын
Thank youu, i am doing some stuff with wgpu and never understood what was going on, but now i do :3
@chatterjeeabhishek
@chatterjeeabhishek 2 күн бұрын
I am a mac user but I skipped the mac portion because i already saw the windows version (since it was earlier in the video) and hence skipped the mac version, and not because of preference.
@loject
@loject 2 күн бұрын
More correct to use _mm256_store_epi32 instead of c like assignment
@AE4i1
@AE4i1 2 күн бұрын
What about clearing the screen with memset?
@GetIntoGameDev
@GetIntoGameDev 2 күн бұрын
It works but it’s a little slower than simd (1800 fps vs 2300 in debug mode, 2300 vs 3000 fps in release), and because memset converts the int to a byte it only works for grayscale colors.
@mikelevels1
@mikelevels1 3 күн бұрын
Really appreciate the series! Thank you all so much!
@colonthree
@colonthree 3 күн бұрын
...tautology multithreaded?
@franklynotyourbussiness9401
@franklynotyourbussiness9401 3 күн бұрын
I'm gonna wait for the taskflow, I remember that being outlines as hugely effective and very simple to use way for multithreading in game engine architecture book
@MarcAntoine29_YT
@MarcAntoine29_YT 4 күн бұрын
i am getting the error "numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject" an i dont know how to fix it can you help ?
@GetIntoGameDev
@GetIntoGameDev 4 күн бұрын
Not sure on your specifics but I used to see this a lot with people using anaconda/pycharm. Those ides tend to use a different version of numpy.
@0xVBMatrix
@0xVBMatrix 4 күн бұрын
Great video!
@tinkerboi
@tinkerboi 5 күн бұрын
Congratulations!
@azaias
@azaias 5 күн бұрын
Congrats! I'm currently in a similar life situation lol. Your channel is a great resource, thanks again!
@kubiz198
@kubiz198 5 күн бұрын
Congrats!
@Julian-mj7hy
@Julian-mj7hy 5 күн бұрын
Dude you are so cool!! Your C++ and OpenGL videos are helping me a lot, please keep doing what you do :)
@SkyFly19853
@SkyFly19853 5 күн бұрын
Congratulations ! still in Thailand ?
@GetIntoGameDev
@GetIntoGameDev 5 күн бұрын
Back in Australia now!
@SkyFly19853
@SkyFly19853 5 күн бұрын
@@GetIntoGameDev wow... if I were you, I would have stayed in Thailand... I really wish I could immigrate to Thailand or Canada...
@spamchamp628
@spamchamp628 4 күн бұрын
@@SkyFly19853 canada and thailand are like night and day
@CoolestPossibleName
@CoolestPossibleName 5 күн бұрын
Congratulations on 10k subscribers 🎉
@natchadanisaisue1594
@natchadanisaisue1594 5 күн бұрын
Always be an encouragement and support ,I love you💓
@GetIntoGameDev
@GetIntoGameDev 5 күн бұрын
Thankyou, love you too! 💓
@moistness482
@moistness482 5 күн бұрын
An entire part of my college course basically summed up in 10 minutes. Good job sir.
@DaminGamerMC
@DaminGamerMC 5 күн бұрын
what i dont get is why this is needed to be done by us. Its not like we are ever going to no use syncronization. I think it is good that vulkan gives us more control but some things are just not needed imo.
@GetIntoGameDev
@GetIntoGameDev 5 күн бұрын
You and me both, didn’t realize when I started down this path that I’d need to reverse engineer my graphics card 😬
@SkyFly19853
@SkyFly19853 6 күн бұрын
making progress, are we?
@GetIntoGameDev
@GetIntoGameDev 5 күн бұрын
It’s getting there!
@SkyFly19853
@SkyFly19853 5 күн бұрын
@@GetIntoGameDev indeed !
@mattstroker3742
@mattstroker3742 6 күн бұрын
You are a God. Thank you for teaching us. I've been wanting to create things like I saw in demos like future crew's second reality and panic ever since I was a kid. Now I have the time and soon the knowledge. In part thanks to you. So thank you very much! 👍😁😅
@adreto2978
@adreto2978 6 күн бұрын
Nice mate. Like you I was stuck on this for a couple days as im just learning OpenGL. knew how to use VAO and VBO but didnt 100% grasp the why until I watched this
@user-ry2nq7ng5e
@user-ry2nq7ng5e 6 күн бұрын
Great explanations! But aren't semaphores purely for GPU and fences GPU/CPU synchronizations? At 14:45.
@GetIntoGameDev
@GetIntoGameDev 6 күн бұрын
Correct!
@gedtoon6451
@gedtoon6451 6 күн бұрын
would numba just silently ignore the block if it could not compile it?
@GetIntoGameDev
@GetIntoGameDev 6 күн бұрын
It will print out a message along the lines of “nopython failed”
@rozt107
@rozt107 7 күн бұрын
Looks like they've changed winit significantly. There's no WindowBuilder now
@GetIntoGameDev
@GetIntoGameDev 6 күн бұрын
Yep, winit is a nightmare. Check out my glfw wgpu videos!
@user-qj7gw1kj3u
@user-qj7gw1kj3u 7 күн бұрын
Your videos here are really a great resource for learning WebGPU. I really appreciate your effort. This part contains a lot of steps from making the shader to actually drawing it to the canvas, and I don't understand why many of the steps are necessary. I would struggle to recreate it on my own. I'll continue to the next videos, but I'd like to ask you if this is just something where I should continue and hang on, and at some point, it will make sense? Or if you think it would be more beneficial to read some theory to really grasp what encoders, pipelines, buffers etc. are? I know what these things are, but I struggle to remember and understand why all these data have to go through so many steps in the API.
@TheDev-ht9zv
@TheDev-ht9zv 7 күн бұрын
you could consider creating courses for udemy, I would buy them.
@TheDev-ht9zv
@TheDev-ht9zv 7 күн бұрын
hello, thanks for this content!
@davidmartin5351
@davidmartin5351 7 күн бұрын
If you get into the habit of using your batch file to execute the program (analogous to "make run"), you can have your batch file check if the GLSL source file is newer than the SPIR-V file, and then recompile as necessary. This covers the similar error of updating your C++ source code and forgetting to recompile with a single common mechanism.
@user-qj7gw1kj3u
@user-qj7gw1kj3u 7 күн бұрын
When I add "@webgpu/types" to types in tsconfig, I get an error on the file: "Cannot find type definition file for '@webgpu/types'. The file is in the program because: Entry point of type library '@webgpu/types' specified in compilerOptionsts". I do have @webgpu/types v 0.1.43 installed though.
@user-qj7gw1kj3u
@user-qj7gw1kj3u 7 күн бұрын
I figured out a solution by reading the readme of @webgpu/types a bit more closely. Today, it says to use _either_ types _or_ typeRoots in tsconfig, not both of them.
@SIRIUSNJ
@SIRIUSNJ 7 күн бұрын
Oh my, I thought your intro was realtime render by you
@CoolestPossibleName
@CoolestPossibleName 7 күн бұрын
sick intro 🤙
@Jovenel-v7s
@Jovenel-v7s 8 күн бұрын
I have an issue with building the wheel for PyOpengl_accelerate
@Jovenel-v7s
@Jovenel-v7s 8 күн бұрын
I have an error , when I tried to install opengl_accelerate. It said that failed building wheel for pyopengl_accelerate
@rushikeshbhavsar1564
@rushikeshbhavsar1564 8 күн бұрын
cant we just use alloc rather than doing char[1024]
@Mustlight
@Mustlight 8 күн бұрын
I like the way you present and explain the stuff, keep up the good work man. It's great to see someone is explaining stuff entertaining and clear at the same time.
@meanmole3212
@meanmole3212 9 күн бұрын
Do you have a video on Rust + SDL2 when it comes to compiling executables for both Windows and Linux that the user can just run without any hassle? Is it possible to produce such binaries for both platforms directly from Linux only with cross-compiling?
@momodem2072
@momodem2072 12 күн бұрын
The menu font is quite difficult to read. For Thai people, it just appears as random characters.
@GetIntoGameDev
@GetIntoGameDev 12 күн бұрын
Thanks for the feedback! ☺️
@Hector-bj3ls
@Hector-bj3ls 13 күн бұрын
The matrix library could be used like this: const projection = mat4.perspective(mat4.create(), ...); The reason to accept an "out" as the first parameter is for performance reasons. It allows you to avoid creating temp objects. You can just pre allocate a bunch of matrices and then reuse them over and over. Helps avoid GC pauses.
@cappuch__
@cappuch__ 14 күн бұрын
Can't believe that this doesn't have any more views! Such a good series.
@luthecoder
@luthecoder 14 күн бұрын
Any more Metal renderer videos coming?
@GetIntoGameDev
@GetIntoGameDev 14 күн бұрын
Within the next few weeks
@oyalesalami
@oyalesalami 14 күн бұрын
That menu intro looks really good
@LoveAustinVideos
@LoveAustinVideos 15 күн бұрын
Thanks for the videos! Question for you on c++ and Metal, how can we handle keyboard and trackpad/mouse input on macOS? I’ve tried sfml and sdl2 with no luck on my Mac M3. Interested in making a game engine but need the controller input aspect.
@GetIntoGameDev
@GetIntoGameDev 14 күн бұрын
I’m surprised SDL2 isn’t working, its event system should be cross platform. I’ll take a look at it when I get around to making a video on input.
@LoveAustinVideos
@LoveAustinVideos 14 күн бұрын
@@GetIntoGameDev thanks a lot! Both libraries let me include the .framework in binary libraries but it gives me an “abort with payload” error when running, I thought it must have been my version of Xcode. I will try sdl2 again. I also considered adding keyboard input into the Appkit.h framework for c++, but it didn’t work when I tried adding it, because it seems the original AppKit had input/output features. I looked through coregraphics as well as quartzcore but they all seem to be missing the c++ for keyboards when the original obj c could have had a method. Whoever finds out a good way to do it will be helping macOS c++ majorly can’t imagine it’s Apple hardware and they just disregard an entire language keyboard access!
@GetIntoGameDev
@GetIntoGameDev 14 күн бұрын
I hear you, macOS' lack of support for keyboard and mouse input has been criminal.
@LoveAustinVideos
@LoveAustinVideos 14 күн бұрын
@@GetIntoGameDev another option is objective c++, where the keyboard is controlled with a .mm but it’s a little bit confusing combining languages, but I know it’s relatively simple in obj c