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?
@GetIntoGameDev4 сағат бұрын
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.
@okanguclu456719 сағат бұрын
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.
@GetIntoGameDev7 сағат бұрын
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Күн бұрын
Looks like a list for a tile map...
@mouradouchaneКүн бұрын
<3
@UhGoombaКүн бұрын
Good timing for reviving the series, especially with the simd stuff. Hope this continues
@BabakinhaКүн бұрын
Thank youu, i am doing some stuff with wgpu and never understood what was going on, but now i do :3
@chatterjeeabhishek2 күн бұрын
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.
@loject2 күн бұрын
More correct to use _mm256_store_epi32 instead of c like assignment
@AE4i12 күн бұрын
What about clearing the screen with memset?
@GetIntoGameDev2 күн бұрын
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.
@mikelevels13 күн бұрын
Really appreciate the series! Thank you all so much!
@colonthree3 күн бұрын
...tautology multithreaded?
@franklynotyourbussiness94013 күн бұрын
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_YT4 күн бұрын
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 ?
@GetIntoGameDev4 күн бұрын
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.
@0xVBMatrix4 күн бұрын
Great video!
@tinkerboi5 күн бұрын
Congratulations!
@azaias5 күн бұрын
Congrats! I'm currently in a similar life situation lol. Your channel is a great resource, thanks again!
@kubiz1985 күн бұрын
Congrats!
@Julian-mj7hy5 күн бұрын
Dude you are so cool!! Your C++ and OpenGL videos are helping me a lot, please keep doing what you do :)
@SkyFly198535 күн бұрын
Congratulations ! still in Thailand ?
@GetIntoGameDev5 күн бұрын
Back in Australia now!
@SkyFly198535 күн бұрын
@@GetIntoGameDev wow... if I were you, I would have stayed in Thailand... I really wish I could immigrate to Thailand or Canada...
@spamchamp6284 күн бұрын
@@SkyFly19853 canada and thailand are like night and day
@CoolestPossibleName5 күн бұрын
Congratulations on 10k subscribers 🎉
@natchadanisaisue15945 күн бұрын
Always be an encouragement and support ,I love you💓
@GetIntoGameDev5 күн бұрын
Thankyou, love you too! 💓
@moistness4825 күн бұрын
An entire part of my college course basically summed up in 10 minutes. Good job sir.
@DaminGamerMC5 күн бұрын
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.
@GetIntoGameDev5 күн бұрын
You and me both, didn’t realize when I started down this path that I’d need to reverse engineer my graphics card 😬
@SkyFly198536 күн бұрын
making progress, are we?
@GetIntoGameDev5 күн бұрын
It’s getting there!
@SkyFly198535 күн бұрын
@@GetIntoGameDev indeed !
@mattstroker37426 күн бұрын
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! 👍😁😅
@adreto29786 күн бұрын
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-ry2nq7ng5e6 күн бұрын
Great explanations! But aren't semaphores purely for GPU and fences GPU/CPU synchronizations? At 14:45.
@GetIntoGameDev6 күн бұрын
Correct!
@gedtoon64516 күн бұрын
would numba just silently ignore the block if it could not compile it?
@GetIntoGameDev6 күн бұрын
It will print out a message along the lines of “nopython failed”
@rozt1077 күн бұрын
Looks like they've changed winit significantly. There's no WindowBuilder now
@GetIntoGameDev6 күн бұрын
Yep, winit is a nightmare. Check out my glfw wgpu videos!
@user-qj7gw1kj3u7 күн бұрын
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-ht9zv7 күн бұрын
you could consider creating courses for udemy, I would buy them.
@TheDev-ht9zv7 күн бұрын
hello, thanks for this content!
@davidmartin53517 күн бұрын
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-qj7gw1kj3u7 күн бұрын
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-qj7gw1kj3u7 күн бұрын
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.
@SIRIUSNJ7 күн бұрын
Oh my, I thought your intro was realtime render by you
@CoolestPossibleName7 күн бұрын
sick intro 🤙
@Jovenel-v7s8 күн бұрын
I have an issue with building the wheel for PyOpengl_accelerate
@Jovenel-v7s8 күн бұрын
I have an error , when I tried to install opengl_accelerate. It said that failed building wheel for pyopengl_accelerate
@rushikeshbhavsar15648 күн бұрын
cant we just use alloc rather than doing char[1024]
@Mustlight8 күн бұрын
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.
@meanmole32129 күн бұрын
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?
@momodem207212 күн бұрын
The menu font is quite difficult to read. For Thai people, it just appears as random characters.
@GetIntoGameDev12 күн бұрын
Thanks for the feedback! ☺️
@Hector-bj3ls13 күн бұрын
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__14 күн бұрын
Can't believe that this doesn't have any more views! Such a good series.
@luthecoder14 күн бұрын
Any more Metal renderer videos coming?
@GetIntoGameDev14 күн бұрын
Within the next few weeks
@oyalesalami14 күн бұрын
That menu intro looks really good
@LoveAustinVideos15 күн бұрын
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.
@GetIntoGameDev14 күн бұрын
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.
@LoveAustinVideos14 күн бұрын
@@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!
@GetIntoGameDev14 күн бұрын
I hear you, macOS' lack of support for keyboard and mouse input has been criminal.
@LoveAustinVideos14 күн бұрын
@@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