A masterful shift from global to shared memory atomics that elegantly solves the synchronization bottleneck in vector rendering. It’s a textbook example of how deep architectural understanding translates into significant performance gains.
Inmersión profunda
Prerrequisito
- No hay datos disponibles.
Próximos pasos
- No hay datos disponibles.
Inmersión profunda
Working on my Vulkan Compute vector rendering engineAñadido:
Welcome to the stream, guys.
Um, is the stream already started? I don't know. Yes, it is. Okay.
So I thought um I first I have a thing um which is I will need to quickly do that. So um okay.
So basically basically this.
Let's get a new wallpaper.
What's up? Welcome. What's go? What?
What? Kaza, welcome, bro.
Um, yeah, this is a pretty cool wallpaper site.
Um, this I mean this looks [ __ ] based, right? Or this. Um, welcome PFVM, bro. Welcome.
Um, pixel art renders vector graphics, bro. Photography. Okay. Okay. It's a lot. It's a lot. Wait, what? Painting only had I mean, painting is kind of nice. I mean, I currently have a painting, I think.
Yeah.
Let's save that water.
Um, okay. So, how do I how do I set a wallpaper even? I think config.fish has that.
Um, here.
No, here.
Uh, why you don't use a bar? Um, because I don't really need to. And I am using DWL just as a um replacement like a temporary replacement for um or like a temporary use case to do anything because what I eventually want to do is use my own compositor. So I don't really want to set up stuff and also I don't really need a bar. I never needed a bar.
Um, I would only use bars for aesthetic reason, but um I'm not trying to make it uh make this setup um aesthetic as I bro I'm saying this while I while I set new wallpapers. Yeah. Okay. But I think this is this is cool. I think this is cool for the session. Um yeah.
Um, let me pop out the chat.
Um, I don't use a bar as well. I find it a bit pointless. I think the only reason for a bar might be um, showing the time because I always have to do stuff like date. Is the music to load?
Uh, okay. So, yeah, like basically I I always do date um every once in a while, but I think that's okay.
Um, oh, okay. So, let's put that somewhere here. Okay. So um for the project um yesterday we accomplished um this which is basically path um paths being bent into um into macro tiles which is this kernel. I added a lot of comments here to like basically for myself explain it and also um to I I don't even know how tiling in DWL really works. So I don't know how to tile those windows. Let's just I just make them like that. I basically added the comments to just um basically for myself, right? I mean people reading this could also um have some kind of advantage from those but it's mostly for learning reasons and um now like the next step would be in in such a pipeline after you um bend um paths is um kind of finding out okay we um we have this we have this uh macro tiles so this um like uh like what's the color like this light blue color here um which are the big tiles but you have the white tiles which are the small tiles and we eventually want to tile in those small tiles. So we kind of need to know okay this is in the like this is the approximate area of the shape and by the way here like where my cursor is is the shape you can't see it because um it's fully covering like this thing is fully fully covering it but this approximate region where the shape is but what we need is for each tile we need to know is this tile inside the shape or is it not inside the shape or is there any like um segments uh in this tile.
And uh this is like the next um next kernel we want to work on. And um wait, is this this is the kernel? Yeah, I already set up a little bit, but what we want is basically so um I mean we looked at for the last shader.
So let's line.
So this is uh this is this is um a very good engine.
So um you can see they have a this path or this like I don't know pass and what they what they do is they um iterate per segment or they basically they're dispatching per segment. So stage to uh compute counts of number of segments in each tile. Right? So this is what they are doing and um they load the line basically atomic load the line um and yeah this basically this shader is dispatched with one thread for each line right but uh why are you creating your way and when are you creating your way compositor um yeah I'm like I want to work on it um like I want to keep working on it but um I kind of need to write this rendering engine so that I can render the compositor so I'll do that first and yeah bro can you give me a random project to do and see not crazy complicated um instant messenger my lord coco cry been a long time welcome ro Sunday okay and basically what What I thought is okay they do it per segment but um obviously because of that they are using a lot of atomics. So um atomic they have one atomic um load which is a global atomic. They have this global atomic for adding um into the tiles backdrop and then for the seconds they have another global atomic and then they have another global atomic and another global atomic. So obviously they need to use global atomics because um many uh segments uh can hit the same uh tile uh which is why um they need to like have atomic counters so that um many like simultaneously running threads don't increment um the counter at the same time. But this is like not the ideal approach I think because um especially for like UI elements, you have a lot of elements in the same tile and um and especially for me I have 32 32 pixel tiles.
Um and also we already did the bin into macro tiles. So what we what I basically want to do is um a shader that counts per big tile. So basically each um each macro tile or like each um blue tile um is dispatched in a um separate work group and it's basically processing all of the micro tiles that it has. and it's basically processing all of the bin paths and all of the bin segments inside of its region. And thus we can basically um avoid global atomics because we're only processing like the ownership is basically that we have per work group we own all of the 64 tiles. So we can avoid global atomics because we have already um binned the paths into macro tiles. So we basically dispatch per macro and that's what we're going to be trying.
Yeah. Um I think it's possible to create two images and specially compute it in lock to end this problem.
How do you mean that? I don't I don't understand what you mean, bro. You have to elaborate on that. I'm now working on a school hackathon project in OpenGL. If it was not for you months ago, I would not gained this lifelong skill. This is amazing to hear, man. For real.
Um, yeah. I don't know. I don't even know what to say to that, but like actually that impact is just amazing.
Um, yeah.
So, I'm looking at um how how we actually want to do that. But the thing is um this is already set up. Yeah. Um so so what we basically want is um is basically counts um for tiles locally in shared memory so that we only have to use shared memory atomics.
So um let's have something like shared u and um um local tile counts and this will be n tiles or how how is it called n micros okay so let let's name uh oh why is it micros bro let's name it tile and this is basically how many micro tile and one micro tile, right? So, um we want um 8 * 8 um micro tiles inside the local current micro tile, right?
And uh because we are dispatching we are basically uh dispatching in 2D.
Um and for each dispatch the um local invocation ID will be um the ID of the micro tile right.
Um yeah okay. Um so let's have that. So let's have something like micro ID is equal to GL local invocation ID.
Roy basic programming but I have left coding for more than a year. I was thinking to start again from low level. Any suggestions?
Um like what do you mean with low level?
Do you mean like um basically anything in C or do you mean graphics programming? Do you mean embedded systems?
Basically, you can create a XB and a two XB two texture and merge 2x2 segments into one X1 segment. And do until you have one segment if you got the problem right.
If I got the problem right.
AXB.
Yeah.
Like it's it seems like you mean um flattening um of curve segments.
Um it is a resolution in pixels.
But what like the problem currently is to bin segments into uh into tiles.
Yeah.
Um hello Ragna might be dropped from Nick's package because it is still broken. Oh uh like the next package or what do you mean?
Um welcome Mosa.
Welcome welcome.
Okay. Um so let's clear the um let's have a barrier and then like have a clear the shirtman me uh for each invocation.
So um let's have basically um local counts local tile counts at micro id that's equal to zero you and we only want to do that but I mean theoretically let's have something like hash define um uh t n tiles in general and this is just n tiles x time n tiles y and then we can have n tiles So we always because what I wanted to do is have something like if micro ID is less than n tiles but we can avoid that by um having it like this. So it's like it's like obvious that we always this will always be true basically. So we don't need it. Um and then we can do entiles here.
AO epic programmer B. Uh yeah, I think B and this sign is like a it's like an emoji or something. Uh yes, the Nyx package repository. Do you recommend me learning OpenGL?
Okay, so for the Nyx package repository, I I really don't I I I not really maintaining this. Um like if if you want to fix it, you can create an pull request or issue or something, but I don't really maintain this. So yeah, do you recommend me learning OpenGL or should I start with Vulcan? You should start with OpenGL probably cuz starting with Vulcan is like I don't know. I think I like I personally I really like low-level [ __ ] but I think if I started with Vulcan I would have just like ended it like ended the learning process.
Okay.
Um so um yeah I mean what we can do after this is um probably um uh probably just get the macro coordinates. I don't know should we should we have it like um uh IVC 2 uh macro is equal to um is equal to GL work um group IDXY and um then we want to say something like because we are probably um over uh dispatching so we need to check if macro.x X is um greater than or equal to PC. N microise X or macroy is greater than or equal to PC micro uh Y. Then we want to just return right because it's invalid.
Well, the issue is that Ragna has some issues. I couldn't debug like it when you try to start it. Also, website is done and icon is broken on the upstream repo.
Um icon is broken on the upstream repo. Oh why?
Okay. What why is it broken? Like does what the [ __ ] I mean, does um does GitHub um just invalidate images because I didn't upload a broken icon?
Um it crashes when I try to start it.
Why? It shouldn't crash when you try to start it. Like you corrupted the PNG.
What?
Okay, that's bad. I should probably fix it. I should probably fix that now because like the icon is kind of based and stuff.
Uh let's see. Do I have a commit from like where where is the commit where it worked?
I think it wasn't broken for that long.
What? What? Why?
Wait, isn't there this is like the not found? No, no, no.
Yeah.
Okay. So, um, you can contact me via email because like I don't really use Discord and I think the easiest way is just to contact me via email actually. Yeah.
Ah, you're the maintainer on the next.
Okay. Um, yeah. Can you send me the um like the like the the dogs omg email? Yeah. Yeah, man. Like I I think that's really the best way cuz like I really don't like to use this code, man.
Um I'm see logo. We want to move that to branding.
Um, my email is this my email.
Okay.
Matrix. Um, also don't have an account on there, but I can make one.
Paste this hat, bro. Yeah.
Fixed logo.
Guess at least the logo is fixed now, right?
Use them, bro. Bro.
Yeah, Ro just should I like I will maybe do a matrix account. But um like the best way just contact me via email and if you contact me via email um like I can make a matrix account probably because um I don't know how it works there. I should probably need to send you the data and stuff so I can send you it via email. Um, come Okay, let's see the logo now. Bro, are you serious, man?
Is Is it Is it even like What's the issue?
It's still not rendering.
Why is it still not rendering, bro?
What? Why?
like um like what should I should I move the file think you're breaking the line ending h but I mean the file is normally it works I think it's a normal file right oh that's That's a little bit weird.
Okay, so um check PNG for um corruption.
Um, should I just do that?
My god.
Yeah, I think I I'll worry about that after the stream because um bro, okay, I uploaded the image to to this website and it just says unfortunately the cannot be restored.
Okay, I think I think we we should get back to business. I think. Yeah. This is like I don't even know what what is happening.
>> Yeah.
Well, um Okay. So, um let's let's check um what window manager are you using? DWL.
So, so what we want to do in the end is basically um we want to iterate um the uh all of the partitions um that we have um for and all of the uh meta data um of those partitions like the macroile meta data of those partitions and then um check for um overlap of that macro tile and overlap for um the uh microar or for the micro why uh not to use your um custom made one.
Um yeah, because I installed void on this machine and I want to move as fast as possible um to like my Wayland based compositor, but the way based compos sorry the way based compositor I currently have is not like really usable. So, I just figured I want to stay on Whand and like the least invasive option is just CWL and then uh working very fast towards getting my own stuff working. By the way, one last off topic off topic thing. Um let's try and clone move to Nexo as well.
Maybe after um after after this project or after vortex is finished.
Uh okay. So how how do I build this choice even like this?
Okay. So um um I think where is where's the dash ice here?
Install sub include include directories here and glad ink. What is glad ink?
It's never defined.
It's probably somewhere else, right?
I mean the what we could do is cuz I I just want to just test this quickly. So what we could do is um pseudo copy dash pseudo copy user li user include slashf free type 2 slash everything into user include.
Yeah, I don't care. I know this is like very illegal territory, but yeah, I don't want to mess with Mason build files.
Okay, a build target vortex. Um, I hope my DWL won't crash cuz this might actually be the case.
Um, okay. I think we need to somehow pseudo ninja- C build install.
Yo. Okay. But what the what is this? Why is it why is it like that?
Um can I land display to one?
Um like what why is it so way?
Yeah, make file is the best. I don't know.
Uh, okay.
Okay. What the [ __ ] is this? Right.
Why is it like that? Um, is this This could be actually a a issue with the terminal.
Like it could be a client side issue, right? I think it's a font issue actually. Let's try uh western um what was it? Western simple damage.
Okay, that works.
Uh what about um western?
What was it?
Western.
Seven more. Western.
Ah, bro. Bro, bro. Western stacking.
Okay. So, TP. Okay. Ah, nice. This is okay. Good. I already committed that.
So, popups seem to work, right?
close this [ __ ] Okay. Yeah. So, we definitely have to make progress on that. But um the main like extreme hurdles of writing your own compositor back end are are basically dealt with because we had to implement like I did this mostly on offline but we I implemented like um everything like from DMA buff um the entire protocol and like DRM and um all of this and all the extensions.
Um okay. So what I basically wanted to do is um we uh we have to get the um ABB of the macrotoy right. So um uh how do we get that probably like this? So let's have something like macro min is equal to uh ve two.
Okay. Wait, can we do just macro times uh PC dot um macro tile size?
This is probably what we can actually do.
Uh Q tile um is it X11 based?
Uh let's have macro min plus um ve 2 um uh ve 2 and then we want um pc.mmicrotest size uh do I even yes it's both x11 and whand oh nice okay so this is basically your ABB and um um yeah.
So, and then we we kind of need something like u and uh n part n um path partitions which is just um which will just be where do we dispatch bing and path partitions will be this.
Yeah.
So, let's worry about that later. But this is basically what we need. I don't know. Do we need anything else? I don't really don't really think so.
Um, yeah. So, let's have basically for um each um for each macro tile, we want to have something like four.
And yeah, so let's have four. By the way, can you even see [ __ ] I don't even know.
Let's make it a bit bigger. Um, do we want to call it partition or something?
I really Yeah, let's let's keep it at I.
I really like just keeping [ __ ] simple.
So, let's have it at I. And then we have n partitions and I++ and uh then we get the micro meta data for um for this current tile.
Um so let's have ma at and then I think we kind of index it here. So yeah part um like that right but I think and microize x is not even it's not even correct it is correct because we we index it um like that but what we have here is like the flat index right because we can um uh we can just we already have the macro ID basically, right?
But this is not the macro ID. We have the micro ID. So let's have Yeah. I mean h I mean we can keep it as we had it because what I thought is we could just flatten the index but I think it's unnecessary. So how is our meta um how's our meter called? I have to go already.
Oh.
Um, yeah. But have a great day then.
Really nice to hear from you.
Okay. Um, microtile meters at and then we kind of want to do partition times.
Um part let me let me see partition times.
Um and then this right basically right I get so confused with those naming and with those all of those kernels man. Okay. So macro meters at part at macro.y at at this macro basically. So this is basically the meta data for our current macro type, right? And yeah, we should have it as I. But I think this is like kind of unintuitive.
Let's call it P or something.
So P and um then we want to say okay if meta.count equal equals zero we continue.
Yeah, it's called count. And um then we want to um iterate over um the uh paths. So we want to start at I mean yeah I think this is still valid. Um but the for loop will probably um not ex like it will not execute um if count is zero. So yeah then we basically iterate over all of the segments and um yeah then we get the path. It's basically by the way it's not even segments so I I'm calling it segments but it's actually paths. So each macro tile has a meta data.
has this bro I think I just muted my mic. I don't know if it was muted for a long time.
Bro, this thing mutes my mic. Oh my [ __ ] god. I hope it wasn't muted for a long time. Um yeah, whatever. like uh this macro tile metadata is just um the range of this macro tile inside the actual bend paths um array. So what we can do with that is just say okay we now have the path ID which is just bend paths at meta.off off plus I and um yeah that's basically that and then we can get the path. So draw path path is equal to path path id and then we want to check [ __ ] for example we now want to uh see okay does this path even um does this path yeah I I'm wondering like is this even worth checking because I don't think so like checking if the path overlaps this macro Protile is kind of dumb because it's definitely doing that. Um because if it wouldn't be it wouldn't be bent into that macro tile, right? So I think this doesn't really reject anything.
Um if we check it. Yeah. Okay. So then we um then we actually have the uh the last layer which is segments. So, by the way, h I need like something like uh path index.
When are you creating your community room for discord or matrix?
Bro, I don't know.
I I'm very uh undisiplined in this like instant messaging and I I I really like don't really like messaging apps like they're so I never really I never really used any of that to be honest.
So, I created a Discord, but it's it's very hard for me to actually have a Discord and maintain it because I don't use Discord. And for Matrix, like it may be better, but it's still the same concept. And I don't know. I I just like, yeah, I kind of don't really find any um interest in messaging in the groups and [ __ ] So, yeah, I don't know if I would maintain it. and I probably wouldn't um if you look at the Discord. So yeah, I think it will create a good community.
Yeah, probably probably.
Um so I might look into it again but yeah.
Okay. So we want to iterate segments um but we want to do that um sequentially.
um meaning we um want to do something like uh the like this.
So we want to spread it out um over all um invoca local invocations. So let's have something like s is equal to that and then s is less than um is does do we have what what does path have segment count? Great.
Um, I don't use a matrix and I don't want to. Why not use this code? Yeah, those are questions, man. Those are questions.
And then we want to say S is plus equal um basically work group size. So, end tiles, right?
Do you have a home server? Um, no.
No man.
And then and then we want to kind of now it makes sense to check does this segments Aabb overlap this macro tile. Does that make sense? Yeah. This this now makes sense, right? Because now we can reject um Yeah.
Okay, let me steal this ABB overlap function from the other shader.
Um, here.
Are you on void Linux?
Um, yes.
Okay.
So, let's have something. Do we import?
No.
Let's have um is the Ragna sites hosted on a VPS? It's just hosted via Hostinger. So, um nothing special, but it's down like for like years. I think it was down for um two years or something. Yeah.
So let's uh do we have even import segment? Yeah, I didn't have segment defined. Okay, interesting. Um so segment at segment offset plus plus S, right?
Um yeah, we kind of should make sure if this um thing is within n segments, right? So let's have something segment index is greater than equal to PC. M segments continue.
How much time have you been on void?
Will you be will you destroy? Hope, bro.
I will. I hope.
I will hope, man. Yeah. Um, no. I was on void for one week now.
Like, I am on void for one week now. But on my ThinkPad, I was on void for like a year already.
I'm still worrying about your Twitch channel. Why not reream there?
Um, yeah, it makes sense, I guess.
But I I mainly just currently I mainly just stream to get things done.
But if you would be more like committed to it, I think this would make sense. Yeah.
Uh, let's get the segment like this. And then we What does the overlap need, man?
Okay. So we want to get exactly that um so it will be um segman and seg max and this will be um basically the min between seg.p0 and seg.p1 P1 and this will be the max and then we check if we don't overlap.
Um uh yeah wait okay so if seg uh segment and seg max and macro min and macro max doesn't overlap meaning this segment is part of a path that is inside the current macro tile but is itself not inside the current macro tile. Then we continue.
And do you um do you plan to come back on Twitch? If yes, when? Um I never streamed on Twitch actually. So it would be a like I would basically have an initialization stream on Twitch. Like I would like it would be my first stream basically. Um, but yeah, why not? Why not stream on Twitch? I don't know. Maybe, but I can't say anything about that. So, yeah, maybe it will, maybe it won't.
Okay, from here on out, what we want to do is basically a DDA traversal.
Um, DDA traver I still follow your Twitch channel. What? Since when do I have a Twitch channel?
I I don't have a Twitch channel.
Is there a Twitch [ __ ] cry channel slashco?
Twitch.tv/co.
There is a This channel has been closed by the user.
Uh I don't know if I even had a channel that was named like this, but apparently I closed it. So yeah.
Um, okay.
So, I wanted to show you what DDH reversal actually is. So, DDH reversal.
Yeah, this is it.
We are basically um stepping. I would I would like to I would like to check that graphics.h H.
What is meant by that? But it's probably drawing a line, right?
So, what this basically does is it's tracing a line between two points in a very simple and performant way.
And we can we can basically use that um instead of doing AAVB overlaps and um and also does that.
So then we can assign micro tiles um much better because um we don't have because like how how do I Oh. Oh, look.
Let's go. It worked. Wait, my Yeah, let me get my [ __ ] quickly.
Look. Okay. So, if you had um this segment, you could either um you and you had like uh the tiles would be like this.
Yeah.
Um what you what like you could do is doing a AABB check and then you just um uh sweep over the entire AAB and mark all tiles as having this segment which would result in basically um this tile, this tile, this this this this and this and this. But basically all of those tiles and all of those tiles don't even have the segment.
So doing a algorithm that only um that only marks this like those tiles would be like largely beneficial and this is what you do in this situation. So it's basically you have to do that.
Um and this is what we will be doing. So let's let's check how available it.
Hello Koko Cry. Which C++ library or framework would you recommend for writing Discord application and for creating games? I want something lowle.
I would recommend um I would recommend how is it called? Nuclear. Nuclear is cool but it's not C++. So yeah, nuclear UI.
It's a C library, but it's it's a cool UI library.
Yeah. So I would look into that. Uh what about new tech like Rust AI?
>> Rust AI or do you mean probably mean Rust and AI? Um, yeah.
I I don't really like I I don't really hate Rust. I think Rust is probably cool, but um yeah, I I had I like didn't really look into Rust.
Rust and AI and AI is like also not too too bad or like I I I get the um Bro, I just take my [ __ ] Yeah. Okay, whatever. Um, I get the uh AI um angst and stuff kind of because it's kind of like, you know, um, but I mean, you could you can use AI to get you can, bro, I I keep on muting my mic.
you can use AI to get a um result that is um like a result that is not the best result first of all and second of all um it also like kind of takes a long time to get it and to get it working and to get it all of the context in and all of that and in the end you spend a lot of time and get a halfbaked result and I don't know like for Example, if you would ask AI to design a good uh bin algorithm, um it would not it would never come up with this monstrosity which is like which is like full of um like tricks and yeah, I'm like giving all of the credits to um like and stuff because it's largely from Right. Um they would like like AI would probably just say okay you want to um kind of um iterate each path and then check each AAB and then check for overlap and it's like it works but it's never going to give you something that is better than is than that what is currently already out.
So yeah, I would use it for um some purposes like I use Google.
Um, but in general it's it's good for a lot of things, but my verdict is that you could basically do full on aentic coding, but I don't think it will save you as much time and as much um basically give you the um like the same result or or basically a um result that is comparable.
If it saves you a lot of time, it probably doesn't give you a good result.
And if it doesn't save you a lot of time and you have to reprompt and you basically spend your entire time like 8 hours just prompting AI for a lot of things, then the result is not even that good. So I think just normally researching stuff and um possibilities and then improving on them or like implementing them is like the most of the time the faster way and also the um better way because it gives you better um code structure. You know what you actually coded. you know what what all of this is about and it's just it's just a better way to uh go about things like in all of the project I do because like for all of the projects I do it's either I want to have something that is really bleeding edge like in this project or something that is really um really uh badly documented like writing DRM code for a way compositor and for that I just need to use um real references like Western, right? Odin Lang, bro. I I talked a lot about AI, like 5 minutes or something. In general, this is a lot of a talking stream. I'm I'm sorry, but yeah, Odin Lang is too close to C++ and it has good performance and good-looking syntax, too.
Yeah.
Yeah. I probably also a good language.
Why do you hunt for something that's not made by someone else? Struggling with copyrights.
Um, yet another example of how private property stops tech progress.
Um, like I don't really get what you mean, but do you mean this? Uh, yeah. like getting uh things from BA basically um already wellestablished sources is definitely most of the time the better idea than like using hallucinated um approaches from AI.
I know VIP coders has talk a lot why AI codes and BG all in parallel isn't that good. Um yeah, I don't know. It depends on your output. If you if if your goal is um to create a business um that just needs a lot of code and a lot of back end and I don't know and your goal is to make money then I think this is the best solution because why wouldn't you if if your goal isn't even to write good code or if your goal isn't even to write something um that uh potentially outperforms the current um like um developed standards and if your goal is just to have a pro product or an app like why would you spend time writing boiler plate I I get that. Have you heard of Dlang? Kind of not really known programming language.
Um Dlang Forever.
Forever.
Forever.
Forever.
I don't believe How do they even iterate?
This seems very weird. So, um they get the line, they then um basically get the um tile um >> that this line is in probably right >> then they get the count x and it's the span.
>> Yeah.
Then they get the entire account and then they do this and then they do this.
So they so they basically do everything to set up their um their DDA.
I like how how many like weird things like fudge and [ __ ] they have.
Yeah, they add the backdrop.
H okay. So let me keep that as reference and um check what we should actually do.
Yeah, I feel like I feel like this problem is very large actually.
Um like I'm wondering if we shouldn't just um if we shouldn't just do some uh some restructuring work in the in the renderer. I think this might be better because this is like overdue already.
But at the same time, if we do that, then we don't have the pipeline that um makes us able to visualize stuff. So I mean maybe we could um do only AAB overlap for now.
H.
Yeah.
You know what, guys? I feel like I should do this like in another stream because um I don't really have the time to um do the entire DDA now.
Yeah, I think I will I will take a break and maybe like stream tomorrow or um later, but I think I definitely need a break. So guys, um thank you for watching. Uh, and the CNX
Videos Relacionados
Agentforce NOW AMA: Build with React and Salesforce Multi-Framework
SalesforceDevs
490 views•2026-05-28
How agent o11y differs from traditional o11y — Phil Hetzel, Braintrust
aiDotEngineer
450 views•2026-05-28
WEB TECHNOLOGIES UNIT-2 | Degree 4th sem BCOM Computers web technologies unit-2 full explanation💯✅
LearnwithSahera
1K views•2026-05-29
More tests are always better? How to use AI to identify tests that bring little value
Alliance4Qualification
335 views•2026-05-29
Search Algorithms Explained in 60 Seconds! 🤖💨
samarthtuliofficial
218 views•2026-06-01
People of Game of Thrones using JavaScript DOM
AltCampus
296 views•2026-05-30
Introduction to Problem Solving Part - 1 | Lecture 1 | Intermediate DSA
ascensionix
107 views•2026-05-29
🚀 BCS613C Compiler Design | Module 1 to 5 Schema Evaluation 🔥 | VTU 6th Sem 💯 #VTU #bcs613c #exam
Pranavaa-y4y
104 views•2026-06-02











