#Foundation - My adventure through Graphics Programming
1 messages ยท Page 3 of 1
I have some HW to export it in reasonable time
i tried to multithread my texture loading using std::async so unlimited threads
it bombed my ram
I will make from my renderer glorified blender
I looked into usd format for importing it and it really sucks
The API reminds you of obj
all examples in python
I cant imagine python choking on caldera
we need sean to make fastusd
or someone else on the server
its a "good first issue" ๐
In the mean time until final exam. I will be writing the blog and making from this project a "game engine". So some material editing, ecs, scripting, etc..
But wont be working on rendering
Past few days I have been updating all dependecies to be up to date
glEngine 1.0, check
And wanted to add live++ but sadly of missing pbd I am not able to hot reload my files since every translation unit is using those libraries without pbds
what is that ?
i doubt you need livepp for the engine
For dev its nice
a hot reload mechanism for cpipi
Its nice to have at least
it also costs quite a bit of money
huh
major pain is imgui/UI
i dont understang the point, what does it releads ?
your program
it patches your c++ code into executable
this is some sort of c++ scripting ?
so you change text in imgui::text and you will see it change in real time
OOOOHHH
Hot-reload C and C++ applications.
i was on this page but not understanding the point x)
I need sort out my flecs because its spending 10ms iterating over all entities ๐ญ
watch the video ๐
And about the blog about my nanite thingy. First I will write it in english to get input from you frogs and then translate it to czech to give to my hs
?
๐
ah i didnt see that
and to french to be a chad โ๏ธ ๐ค ๐ซ๐ท
no you get it google translated
have u tried nanite rt ?
I have async loading and texture and mesh streaming
I will after final exams
I not doing any rendering until then
cant wait to read your thing
I will do some small amount to be gltf compliant
all you nanite guys should write one comprehensive guide on nanite, for the graphics programming blorg
I have to do one
lets get you invited to siggraph
to graduate XD
Idk about that but free 5090 would be nice
Acerola was given 4090 for free from Nvidia
you presenting nanite with your brother screaming behin you ๐
Already fixed with new microphone
oh lets go
About that 100%. Everybody does it differently little bit. Mr. SparkyPotato has fancy bvh culling, Jasmine fancy meshlet lods, me I think fastest rendering(I hope so because I got rid of indirection).
Other than that we should have same-ish impl
Also not to forget lpotrick for fancy geometry pipeline and hiz generation. LVSTRI for being first frog working on nanite

what indirection did you get rid of 
how do you get your meshlet instance data to fetch other data to render?
through indirection like a queue which has indices to a some buffer?
or pointers?
i store instance, meshlet byte offset pair
so it loads the instance data and then offsets the mesh data pointer with the meshlet byte offset
only three indirections 
id -> queue -> instance -> meshlet
I directly get the instance
how
I write out instances into a buffer and in rendering just shrimple index to it to get it back
payload.index is group id
@small osprey are you here? ๐
idk myshrelf how it works anymore
I dont wonder why
it's basically
let ptr = queue.get(tid);
let instance = push.instances[ptr.instance];
let meshlet = instance.mesh[ptr.meshlet];
where mesh and instances are ptrs
oh and queue
I do
let instance push.instances[tid];
let mesh = push.meshes[instance.mesh_index];
let meshlet = mesh.meshlet[instance.meshlet_index];
I immediately get the instance without getting the index/ptr from queue
So I dont wait for the index then instance and then other data
I get the instance and then I load other data
my instances stores transform, mesh pointer, and etc
yep same
what's your mesh then
is push.instances a ptr to MeshletData
yes
so we do the same thing lol
my Instance stores the transform data and mesh data in it
then whats the queue thing
stupidly confused
lol
i store
struct NodePointer {
u32 instance;
u32 node_offset;
}
in my queue
struct Instance<U : Uniformity = Uniform> {
Transform transform;
Transform last_updated_transform;
Aabb aabb;
u64 update_frame;
u8* mesh;
Vertex* raw_mesh;
Material<U>* material;
u32 raw_vertex_count;
u32 raw_tri_count;
}
and this is my instance
yea
honestly I will go around the code base rename stuff
because MeshletData sounds stupid also
should be MeshletInstanceData
Rest should be fine
anyway eepy time. My sleep schedule in shambles. Yesterday 4.5h sleep hopefully today 6h of sleep
With actual work/job I would have more free time than school
me when i ignore both school and work to write renderer 
@small osprey maybe this will have fixed materials for you
I worked 9-5 at summer
yeah, as a kid
you young whippersnappers have a bit more energy then us old farts
then yeah
you will be tired after your 9-5 soon ๐
I would rather be stuck in meeting 9-5 than in school 
lemme try
that will change too ๐
I guess that will change, I will complain but I will have money
with school 8 hours of bs, study after school for week and get nothing
yeah that works, thanks 
lol
only thing the textures are 1k
but that wont kill you?
at least I think they are 1k
I have a blog already ๐
Ok I've though bvh stuff over
Conclusion: bvh nodes need to be the meshlet groups we use for simplification. But, the list of meshlets they contain need to be the newly created meshlets post simplification.
So you have 8 meshlets. You group them, and get error = 0.2. then you split into 4 new meshlets.
Your bvh node is the 4 new meshlets with an error of 0.2, and an initial parent error of infinity
And then when you build the next group out of the 4 new meshlets, you simplify again and get error = 0.4
And so the node's parent error becomes 0.4
Although hmm, each new meshlets could be put in a different group, which leads to different parent errors
So uhh maybe it needs to be the max of the new groups?
I'm lost again ahhhh
Group 8 meshlets, simplify into 4 with error 0.1
Group 4 meshlets into 2 groups of 2 each, with errors of 0.2 and 0.3
So you want 3 bvh nodes, but what happens to the parent error of the first group, hmm
I guess to specify the problem, groups have multiple different parents, which means multiple parent errors.
And I guess you just use the max? Idk
I guess for the bvh it doesn't particularly matter, you'll eventually get down to individual meshlets and test self error anyways
Oh wait, I see
8 meshlets simplify into 4
8 meshlets are the parents
And the 4 are the leaves
So parent error here refers to just the simplification error when going from 8 -> 4
Maybe?
Nanite slides are a little vague ugh
each meshlet stores it's own error, which is the error of the simplification that generated it
meshlets are then grouped, and that group's parent error is the simplification error. the group stores the meshlets pre-simplification
BVH nodes are built from these groups as the leaves

I think that all makes sense
lol
correct
So an unsimplified group stores the patent error, i.e. simplification error it used to make new meshlets
Cool, this shouldn't be hard to implement then
yeah then you just yeet that into a normal BVH that also stores the max of parent error
and you're done
oh and merged lod bounds
Yep yep
the nanite presentation is vague and makes you think it's super complex
they probably did something super complex idk
I just did the most straightforward thing and it seemed to work
No it makes sense to me
Once I get this setup then it's runtime part
I'm praying 10+ dependent dispatches aren't super slow
Cpu binding validation might get rough on wgpu, we'll see
I only spend about 0.6 ms on culling a million lucies
I might have to use 1-2 buffers and just swap between them using push constants to avoid rebinding
Much better than 1.27ms on this ๐ https://jms55.github.io/posts/2024-11-14-virtual-geometry-bevy-0-15/#gpu-timings
Spent 0.8ms on 125 bistros 
how many tris is a bistro
3.3m
oh yeah for sure
leaves suck
When I look upwards angle on my scene of 125 bistros and 1 poor crytek sponza. It around 2.2 million meshlets
being rendered 
wtf
So removed the indirection in rendering gave me 0.4ms
that's a lot
your culling might be cooked
I dont think so
there's no reason to be rendering 2.2 * 128 million tringles
2.2m * 64
What indirection?
I had a index list of visible meshlets produced by culling shader
then I used that index to get the meshlet instance data
Ah yes
Culling looks to be working fine
Argument could be made about hiz
but Idk I want to go crazy about as lpotrick to sample 3-4 grid
to cull
I didnt make any optimization in ways of subgroup/wave intrics, or playing with threadgroup size yet
no space, jaker is taking too much space already
@small osprey one more question, do you build the BVH as you go, or at the end?
Like do I keep my existing DAG code where I store parent error and lod bounds and take the max etc, and then build the BVH at the end, or?
i generate a Vec<MeshletGroup> for every lod level and generate the lod-bvh from that every simplify loop
and then merge them at the end
you still have to store parent error and lod bounds (in the group) and then max them in the BVH build
ugh ok
I figured out live++. Only thing I need to patch every library
you are one of those people who have a project folder on the desktop ๐
@upbeat ether lukas said fastgltf sucks
snitching huh
: >
there is cmake shenanigans going on
simdjson is refusing to be linked with functionadmin
skill issue
It's working
hot
Gotta appreciate windows being terrible for not killing processes which eat all of ram, refuses to be closed and lagging whole desktop to the point where task manager says not responding
@north helm Update on small city. It causes device loss 
๐ณ
I fixed all issues but no clue what is going on gpu
this is such cope 
what did you do? replaced entt with flecs?
I had a dirty flag as a bool inside the component. Now its a "component" or flecs flag and I request only those entites which have it
ah
you mean it hit you ๐
Star Trek 7 ๐
replace is not working?
this is flecs entity being used there and somehow doing this makes it work normally
ah, sneaky
This forces query to not be stupid
maybe you should try to fix the actual UB 
not gonna happen
UI was interesting to do... File menu is shrimple but About and Exit buttons werent. You have to create label and bind a action to it and override the graphics of the menu in order to make it work because simple menu.setOnAction isnt working 
zoom feature is even worse
I removed it because its inherently broken because you dont have access to the image data 
jabafx?
yeah...
so you zoom out and in order to write into new texture you have to draw the image into it and you loose quality and its also get moved into corner because even tho its size is 200px but it still calculates as it was full size 
I am not touching ever again. for my sanity
Also inteljs maven packaging was broken. I had write some maven stuff to make it work
: D
Also this is team project of 4 people
feature branches are zip files sent to me and I had to stitch it up. I hope college isnt like this
I have college entrance exams in 10 days
yeah the best one in the region 
teacher for this subject is showing us how to brew our own beer while we are "working" project for 4 months "very diligently"
is that a sort of vulkan extension ?
rn listening to some talk and looks like NV API has to be used ๐
so it wont come for some time
โบ Watch the FULL Video Here: https://youtu.be/HLxVskv2zs0
โบ Support us on Patreon! https://bit.ly/3jEGjvx
โบ Digital Foundry YouTube: https://youtube.com/digitalfoundry
โบ Digital Foundry Merch: https://store.digitalfoundry.net
โบ Digital Foundry at Eurogamer: https://eurogamer.net/digitalfoundry
โบ Follow on Twitter: https://twitter.com/digitalfoun...
I love it wont be dx12 and then after 4 years it comes to vk
mega geom will come to vulkan you said ?
what is that model ?
intel dropped new one
yes
lets use an online converter x)
hey SER came to vk pretty nicely iirc
SER?
shader execution reordering
thats shader thing but this is api thing
yeah but it needs a SPV extension
I think it will take much longer
and a vk extension i think
we will see
i wonder if this is just displacement micromaps
the API just does tri <-> micromap conversion
I think it's something more
Wait, when?
No it's specifically about bvh rebuilds. Displacement maps don't work for all forms of geometry, you need actual triangles.
Or some other form of encoding topology
And remember there's a big CPU cost to bvh builds as well
I don't know what the api will actually be though, they're not entirely clear how it works
we can only wait 
Oh, so it's an NV extension still, neat though.
Well I guess it wouldn't have made sense if it were a khr extension given it's 1 vendor only
yeah
Reallllly hoping mega geometry gets pushed to directx/vk
NV is apparently trying to get into mainline dx
so it should come as a VK_EXT soonโข๏ธ
Where did you see that?
I only saw that DX is upstreaming neural shaders (which are also neat,but much more niche due to training costs)
i dont think they were clear on that
The bvh rebuilds part yeah, but it can't be displacement maps
You can't encode arbitrary geometry
See the nanite slides
do they have a technical overvciew for it already
did they say it can?
They did show a straw hat with gaps between the straw, you can't encode that with displacement
So I don't think it's displacement maps
Nah best I've found is digital foundry's video of Nvidia's ces demo booth
hmm that video made it looks a lot like heightfield ish tech imo. The base geo was detailed enough to capture all bending and convaveness i think
ill rewatch it
Look at the part specifically where they zoom in on the man's hat
i think the DF video
They also showed deformable objects (the dragon moving), so not exactly sure what they're doing
that part doesnt really show the topology changing
I don't remember that part, but maybe I'm forgetting. At work, so can't check.
Don't they zoom out after and show tracing against it still?
Green is current geo no?
They're showing the wireframe of what you're viewing in assume
they said the green is the base geo that is then improved with mega geo
I could be totally interpreting this all wrong though, they don't really say
Oh I see
So, could be displacement maps then your right
But some kind of LOD'd displacement maps? Idk
could also be opacity mm + displacement mm
so i think this is totally doable with heightfields translated to triangles. I kinda think this is what it is. Streaming the heightfield in and based on that construct triangles just in time for the hw to intersect
That's so boring if true :/
really cool for sure but only usable for extreme geo density really
nanite ftw
But I'll take any kind of thing that lets you build bvhs cheaper
yea i think people hype it a bit much
you never know, it could just be nanite-handled-by-driver too
it will for sure make these ultra poly scenes much faster
similar to how omms make foliage way way faster
I was more hoping for meshlet based BVH partial rebuilds
waiting for the day amd actually has useful new rt tech
They're working on a combined upscaled + denoiser like dlss/rr
ps5 has good rt now but no execution reorder ๐ฆ
And RT compression stuff
maybe they'll finally have hw tri intersection and full traversal in the new arch?
But nothing about partial rebuilds that they've published
how far behind intel is it?
well no reorder at all, so any shading and recursion is a lot worse i think
Consoles you also get to prebuild your bvhs and just load from disk iirc
well, SER is quite expensive so i doubt that
true that is a massive advantage if you can afford that disk space. Optimizing BVHs is really big. Can easily get >2x improvements spending ages optimizing
or do you mean basic reorder
hey, you can do it on load on pc too
fill up appdata/temp 
no i think no reorder at all
even intel can do reorder can't they
but really strong tracing perf and hw for for at least stack operations
I think only if you use RT pipelines?
yea intel is full pwoer rt with all the things
Which, who would want it to do that :p
that's a req for everyone
yea rt pipeline only
there's no way ray query can reorder lol
That's what SER let's you do iirc, no?
You just specify a reorder hash key before calling trace rays i thhugh
trace rays is an rt pipe call 
ser makes it user controlled within rt pipelines. Instead of only letting driver reorder based on what shader executes you give the hw a key that it uses to reorder
ray q is tracerayinline
it also does a full gpu-wide reorder
spilling everything to main mem and reloading etc
NV only uses it for very specific rays in the UE PT
inline traces are kinda unusable ish cause they are really slow on nv and intel compared to rt pipelines. Not sure why seems like it should be fast. I guess the hw can reserve more special space for hwrt in rt pipelines
and all the manual compaction ofc
ofc doesnt matter anyway cause you need anyhit shaders
They are? Ugh
so tracing outside of rt pipelins will always suck mega
Guess I need to get wgpu to add rt pipelines then...
you are doing something wrong my guy
oh yea i hate it too
it makes sense after a while tho
i did change some other shtuff so uh
maybe
hmm
king shit
and rewriting my gpuscene
Still very intresting to see all the advancements in hwrt with all the extensions coming
just sad to see that nvidia does it all
and the others always play catchup
tho intel does really well. AMD i can honeslty just not understand
amd is busy playing catchup so they can't work on new things
catch 22
with dlss 4 they're finally competing with dlss 2/3
making 50000 frames from 1
those are the frames my brain generated because i needed lsd to be able look at fsr
i have bad eyes i dont need TAA i already have it
i wear glasses that are always smudged up, i get free fxaa everywhere
Working on general features, I got mouse picking in and imguizmo that one was painful because I have reverse infinite perspetive matrix it rendered fine but when I tried to move it. It gave me just bunch of NaNs
highlight time 

They said the second half of the school year will be relaxed
Like I am still waiting
I hope the one exam gets moved to be on tuesday and not tomorrow 
thats why I said weekend because thats after the grades are locked so we can get report card. This weekend I only worked on those features. Spent 3 hours to add them and rest was school 
Exam was moved ๐ฅณ
Exam and 11 hours long shift done. Now study for other exams. God I love this so much
Wake up ! New nanite raytracing extensions just dropped ๐ฅต๐ฃ๏ธ
This is mega geometry for vulkan with cluster based acceleration structures (CLAS)
And there is a new type of TLAS called PLAS to handle huge Dynamic scenes
Do you have shadow mapping yet
Me? Yes
Me? No
I am not touching graphics for some time
I have first round of college entrance exams after me
But other ones are waiting for me
Oh I see
Iโd like to discuss culling and multiview; is here fine?
Sure
The way nanite does it is that they pass in a list of multiple view textures at once
And then for culling, you basically have a list of (instance, view) tuples
And you can expand that into a list of (instance, view, cluster) ids
And then when you occlusion cull, rasterize, etc, you use the view id to index into the list of view textures and rasterize against that (remember nanite is using atomic R64uint textures for raster)
The reason you do this is that the overhead to do culling early, raster early, culling late, raster late is a lot of you do it per view
The overhead of spawning the passes themselves takes up a good amount of time
So instead you want to do single dispatches to handle every view at once, and avoid the overhead
1 camera + 4 CSM cascades is already 5 views, ignoring any point lights
Although nanite is supposed to be used with VSM, not CSM
Nanite also does screen space shadows to help fill in detail that shadow maps would otherwise miss
Anyways for me personally I think raster shadows are a complete dead end. I support them because bevy already has support for them so it was easy to add, but long term my plan is RT lighting
if i understand correctly, this would mean 5 threads per meshlet (1 per view)?
Yes, basically
Although I don't really think of it like that
I have the concept of a "meshlet" which is the actual asset data
And then a "cluster" which is an instantiated copy of a meshlet
Where each cluster has an asscoiated instance data (transform), material, and view
And your passes just operate on giant flat lists of clusters
i see
with a per view output?
you'll need multiple passes for hw raster
another reason sw raster is much faster
Huh
raytracing nanite
gotta love the glVertex3f
more like NaNite
VK_ERROR_DEVICE_LOSTite
So fun fact clear_texture in wgpu is slow af for storage textures
this article is going to be super long 
what in theee world
double it and give it to a next person
my notebook has decided to kill itself. BIOS no longer sees windows and HDD might be dead 
check if it flipped to UEFI bios for some reason but your hdd was actually in legacy mode
that can hide bootloaders from the mobo boot
there is also something called CSM, perhaps you can enable that to allow non uefi boots
it doesnt appear nowhere in bios even previous linux installation. I managed to live boot linux and hdd just inst there at all
Its 7 year old machine so I happy it even survived for that long
I will try to get the data from the ssd and maybe hdd to but I doubt it. Then install linux for school. Hopefully in summer replace it for macbook for college and remote to my desktop
M1 costs with my nice discount 700 euro so might snatch it
In a week I should have article/blog post ready for a review. Its going to be a long since its a thesis going into the details 
for most things you dont even need to remote tbh
it's extremely powerful
(unless youre doing VK on it ofc)
however for that if you have a m1/m2 just dual boot with asahi
I know the macbook is quite powerful but the reason for remote is to work on my vulkan stuff and some windows only sw that I will have to use for college for sure
or just not buy apple shit
I need something that survives for long
and not a brick
I am looking into small notebooks and m1 macbook is the cheapest option which is wild
too bad its not shit
My blood boils every time I see their stupid mouse with usb port on the bottom
fair
Guys, howโs your experience with slang shader profiling using nsight? Does it work for you, I mean you can stop the warp, execute line by line, see active lanes, etc..
I tried combination of options but it still somehow lacks of debug information level(IL) as nsight says regardless of fat ass .spv(though i think compiling to spirv directly ruins everything maybe idk)
shader debugging doesn't work, profiling does
yeah in default gpu trace it works for me as well, but ah ew what a pity we still cant debug fully
looks like the HDD is alive but has amnesia 
live linux should see it too?
i never touch any windows tool to rescue any disk this never worked in the past hehe
sadly it doesnt
lsblk is not listing it?
any clues in dmesg?
linux (i mean any distro with that not the kernel itself) doesnt automatically mount drives per se
yeah my guess the partion table on the hdd was nuked somehow then no sw can figure it out
what did you do?
nothing. I tried some sw but they cant even find the hdd in the first place
no i mean what did you do with the drive ๐
nothing notebook was lying on the shelf, charged and booted, moved some data and then shutdown. After a hour I tried to boot it again and got sent to bios meaning it cannot boot into windows and was about it. So I took it out connected to my desktop an tried to do something with it and now its lying on the shelf
strange
it could be a dead ssd too then
especially if it was some cheap noname one, they can degrade as usbsticks or sd cards
I just installed windows on that "dead" ssd 
put linux on it then ๐
we finally have our timetable for the final exams and its stretched over 3ish months to just keep you suffering. 7.4 - 6.6.
For now these 2 weeks for 2 college entrance exams
good luck!
Good luck pal
I just got results from first college exam.
I am in 64.24 percentile which should just barely get me to college. I fucked up critical thinking part of exam where I was in 25 percentile. After 65 minutes of math and english they make you read 15 A5 in 45 minutes and answer not simple questions. The texts are snippets from studies, laws, contracts, etc.. On bright side in math I was 91 percentile and english 87. Tomorrow I have the exact same exam and next week is different one which is only math and its made in the way that you cant finish it. Even completing half gets you in 70-80 percentile. For this college I need 45 percentile
I just found out there is one tiny detail to get into computer science you need have 75+ percentile in math from whole college so for me it means I have greater chance to get in
my friend wants to go to same college and computer science and he has 67 percentile in math and 74 percentile overall rip 
Good work, good luck on the upcoming tests also
I just witnessed how templates are slow to compile. My script engine takes 12s to compile
basically 50-70% of compile time
Yep, as well as growing binary size if you have more of them
thank goodness i dont use them
they are fine in small number but it starts to accumulate it gets slow
also you std::vector is templated ๐
true
i just dont make my own very often
โvery oftenโ implies I have a few times. i dont think i actually ever have (in practice)
So some good and bad news. I have pneumonia 
The doctor thought this was just cold so he prescribed me weak antibiotics. After the week I went for a check up he said it's okay but to be sure we're gonna do RTG. Next day after 3 hours in schools he told me to get out because I have pneumonia and also to buy stronger antibiotics.
On Saturday I have a college entrance exam marking the 3 exam while being on antibiotics.
do you get penicillin shots?
The pneumonia is chill. No temperature, no tiredness just coughing
Never?
you normally get penicillin shots for pneumonia
unless it's caused by fungi
but maybe there are fancier antibiotics now
No clue
well if you're feeling good then that's good
These are some strong ones. Only once a day and some rules to follow
At least I have time to study for the exam
This one is pure math which I excel at
So that's nice
The only thing to keep in mind is some stupid rules and tricks
Another college entrance exam done. This one I am feeling I did really well.
Also got a itch to make minecraft clone
why not a star citizen clone?
minecraft clone is easier
: (
then we dont need the 1290348109809234820942840298432098234094820127839th minecraft clone
so you are neck deep into this mc clone already
this took me 2 hours canibalizing my nanite project and watching a movie 
yeah
also I should be studying and preparing for high schools final exams 
mc 1.24 level functionalities expected within the next 5hrs
I have to fix my VRAM usage, multithread it and do gpu driven rendering
frustum + lpotricks scanning visbuffer for culling
This one is kinda taken by demon
fair
I hate multithreading so much and std::list
Also I am crashing on push back somehow
got some textures
i smell a voxel engine
not really just satisfy my minecraft clone itch before I can work on nanite again
ye, that's what i mean
dont listen to those weird voxel rt people
rasterization is the way
cope
missed the treshold by 4%(basically if I had answered one more question I might had reached it). I had more questions answered and correct and somehow I am 20% less than him(he had same exam different questions month ago)
such bullshit
that just means more time to code
sadly not
I have bunch of stuff to do
preparing for final exams for high school. I need to study how to write essays I really suck at them. Finish the article. Prepare for exams when I return to school and more
@summer sigil
This is something that might be interesting to you regarding small meshlets
https://github.com/zeux/meshoptimizer/pull/846
Yeah I've seen it. Unfortunately I'm burnt out on virtual geometry atm :/

I'm also unlikely to touch clustering code atm anyways. It's at least good enough for now after my last PR, I need to focus on the hierchal culling.
I'm tempted to swap to nvidia's library though because they have the BVH building built in
And writing it by hand is making me give up :/
feeling same after gradiation I would to spend tiem making my renders beautiful and not just faster. I cheked the nvidias library I dont see bvh mentioned there at all
okay there is some hierarchy going on
but it doesnt look like to me as bvh
alright I am stupid this is bit confusing codebase there is some bvh
going to sleep
they seem to have persistent threads that is something that requires operation Strategic Transfer of Equipment to Alternate Location aka STEAL
Today they announced final results and I am in ๐
priority admission to college for the win
In a week or two they should email me about it
Now focus to actually not fail on final exams
?
why more final exams when you are in already?
or do you mean your actual current school final exams?
Congrats!! ๐
Yeah, I mean the current schools final exams.
Gg
I was forced to use vs generator instead of ninja
but it finally compiled
why are you building llvm ๐ญ
evil plans
llvm builds in like 10 min on my 7900x huh
with ninja
I should buy a 7950x3d for no reason at all 
ok I don't have 700 quid to spend on a new CPU 
I do have 300 quid to spend on someone else's 7950x3d tho
especially because they're now spending 700 quid on a 9950x3d and want some of that money back
or just wait till next winter
then use your old cpu to warm the house with compiling llvm
write yourself a kernel that just does while (true) on all cores with no preemptive scheduler
What did I start in #bikeshed-๐ ๐ญ
damn
All I wanted to say was that Ubisoft either screwed up something or released buggy mess
Tomorrow morning I will have something to read at the doctor
I saw you saky
I know you are busy, but maybe you know how to solve this.
When building network in cisco with multiple vlans and dhcpv6 pools pcs pick up ALL domain names, regardless of vlan they belong to. Second image is ipconfig on any pc in any vlan.
Thanks in advance
no clue man, we did NS records a week ago
Thanks anyway, I am dead
Luckily this is my final stop(or at least I hope so)
we will continue for a month and then final exams ๐
It arrived and now wait until I can sign up for the college 
Another, much smaller update than usual: https://jms55.github.io/posts/2025-03-27-virtual-geometry-bevy-0-16/
I am alive but dead inside. This week was extreme. I had the essay where I hope I did well. Also I had pre final exam from math to check if they will even let you do the final exams. Lastly bunch of other exams and presentations ๐
Now I have 4 days of free time which I will spend on writing the thesis finally
Drop it here after defence
Google translate exists anyway
is your thesis nanite thesis
yes ๐
based
written in rust but it doesnt have even 50% of my stuff
#showcase message
damn they use rust-gpu
yeah he only done LODs and some culling.
no bvh cull 
I need to still work on my lods
I wanted to do bvh culling but no time and essys would be too long ๐
i'm porting my bvh cull to bevy and losing my mind 
My TODO list is like 80 items and I have still 2 months of stupid school bs
i've managed to uncover shader compiler bugs outputting invalid spirv and my buffers randomly change from out under me
very fun would recommend 
I had my some share of those
nvidia mis compiling if statement and crashing the whole OS 
indeed
i pray that when i'm back home in 2 weeks they will have fixed the gpu crash recovery
if breaking async compute and overlap is what it takes to recover from crashes, it's worth it
๐
wtf is that
I ran out of t3 chat free messages for AI
๐
Its great for yapping 
should've said "discord update preview" 
๐
Yesterday discords outage was quite funny. We were playing EFT when it happened. We had to switch to VOIP in the game itself. Problem with it is that other enemy players can hear you. Some russians heard us so we had some nice exchange of words and lead.
I am currently on 57 pages... I really feel pity of my opponent
"Opponent"? I thought you just defend against jury of professors
a teenager flex
from Saky:
funny how it doesn't translate, but it is a super normal thing here. Every thesis (usually bachelor and diploma though, HS is more rare) has a supervisor and an "independent" opponent
still not done... I have 2 days to finish it so I can have physical that they need. I dont want it be printing it the day I need to submit it next week
this week I have only 2 school days but 4 exams so the my free time will be non existant ๐
Cool, I guess
2 exams done and another 2 tomorrow.
I am at 62 pages. User guide to this nanite thesis is basically good luck with compiling and if you have bad HW then also good luck. Now to citing the sources 
Put some work in it, imma implement mine based on it
I am almost at the finish line
You can already steal my code but you wont have the yapping about it
I am mostly interested in yapping(Ill get demotivated half-way into implementation)
It is done
63 pages, 9500 words, 20 sources(I mentioned frogs from here
)
Tomorrow as a reward I will play tarkov until midnigh
congrats ๐
I forgor to put image of my program there ๐
It should be fine tho
But damn boy he thicc
No forest was spared for this thesis
I love being in the vcs and chats were people are malding over the fact the thesis has to be submitted tomorrow
some people are just finishing their projects 
hows it going lukasino
Quite well. I just finished the written final exams so only one left are oral exams. Those will be in a month. Gotta study over 100+ A4 of stuff.
Also yesterday I had interview and they seem to like me. So I just hope they will have budget for me
i see
Good news. I passed the written exams. Now only oral exams and defence of my thesis.
Also officially I have been excused from entrance exams for college so I will need to just sign up and I am in ๐
The email from college had this image in there 
how x)
here colleges allow to skip entrance exams when you fulfil some requirements 
I am back to kind of working on this project
I dont want to touch rendering for some time. So I am working on asset pipeline to make it much better code, perf and quality wise.
Also I want to add asset editor. Something similar to blender but wont shit the bed when you load 8GB model.
I want to add import for usd and fbx and export ability
so touching blender could be avoided
Usd is understandable, but why fbx if it's literally gltf?
because there are a lot of fbx models
thats the only reason why
I dont trust blender with fbx -> gltf
something will blow up in process
dealing with usd and fbx is going to be a lot of fun
save yourself some headache and don't support fbx
it will be the last that I will support 
see you in 20 years 
๐ญ
it will be simple stuff like change texture
tweak stuff
mainly I need some editor too see model and examine because I had some funsies with certain models
my current asset pipeline is just wing it and hope that 32 threads wont crash at the same time because some bogus that artist made
I had some case where albedo and emissive texture had same underlying image so when I tried to convert the image it exploded because I have different encoding schema for both
32 threads ๐ bro has 16 core cpu
It was cheaper to get 7950X than 7800X3D 
also have you tried loading san miguel? for me there's texture that isn't bound to any material, but I tend to think it's my skill issue, when I parsed from obj/fbx to gltf using blender and then import problems arose
I havent tried it
I will murder somebody
please do ๐
I wish there would be tool that could find header from where this shit comes from
Its from the logging library
I am reading through gltf spec
I found out using sRGB format for base color texture is correct for RGB channels but A channel is linear so it will have incorrect alpha value
so you have to un-sRGB A channel or have UNORM format and sRGB the RGB channels
I avoided this bs with my own format that splits A channel into its own texture that is linear
as our local gltf expert, no
The base color texture MUST contain 8-bit values encoded with the sRGB opto-electronic transfer function so RGB values MUST be decoded to real linear values before they are used for any computations.
the second part might suggest this is only RGB
though I only take that as an example
the first part says the entire texture must contain sRGB values, and doesn't differentiate between RGB or A
The base color texture. The first three components (RGB) MUST be encoded with the sRGB transfer function. They specify the base color of the material. If the fourth component (A) is present, it represents the linear alpha coverage of the material.
uh wait what
I would guess that is badly worded, given the first sentence I quoted
the changes proposed here (and ultimately merged) also suggest that all four channels are sRGB encoded, since the diffuseFactor is applied linearly to all four channels:
https://github.com/tsturm/glTF/pull/3/files
tbh it might be worth opening an issue about the wording on the second quote I sent
this is regarding some extension not really the core gltf spec
from what I understood
first paragraph that you queted says sRGB applies to RGB channels and leaves the A channel "not defined" but later defined by second paragraph
Okay I checked code of gltf viewer and they transform srgb to linear all channels
so eh.....
no it doesnโt
.
nice
tbh daxa seems to be best abstraction over vulkan rn.
I looked the way bindless handled and was like "fuck, i need that too", i mean arrays of tlases, storage buffers, etc. so you kind of don't pass bda's into shaders but uint64_t id(id + version)
Ids for buffers and tlases will probably removed in favor of bdas
But also nothing stops you from not using ids and passing by bda anyways
but how would you then define buffer as globallycoherent?
currently my rhi relies on BDAs only but seems i need to implement storage buffer descriptor array as daxa does
Hmmm good point
tido(timberdoodle) has homebuilt hzb AFAIK, so I don't think you guys really can get rid of buffer ids
for tlases can agree
we never use coherent buffers tho
there is a coherent texture access but not buffer
then you rely on VMM(vulkan memory model?)
no, im saying im not using a buffer for coherent access, i am using a coherent image
i had yo disable vmm, forgot the reason
i think its optional now
it broke debug printf in shader for you
ah right
Defence of my thesis is in a week and oral exams another week after that. Its taking too long ๐ญ
These day I am studying and working on my ui for fun after that. UI is surprisingly not easy thing
Got simple font rendering working with harfbuzz. I will switch later to vector based text rendering with mesh shaders. Also got nice flexbox algo working
Defence of my thesis successful got some interesting reactions. I wasnt worried about failing that. Only thing that sucked was being in the full suit in sultry weather 
In 8 days I have oral exams back to back from various subjects
After that its finally over
Everytime youtube changes the layout I get anurysm
on my 27" QHD I can only see 12 recommended videos
and when I put window to be same size as the half of the screen. It just decides to display next video the same size as the video playing
thesis release when ?
I can send you one in czech and you can translate it with google docs 
I recommend just reading my code and figure out how this works
imma wait for the en version ๐
ITS OVER
No more studying
Got straight As. Questions for oral exams were ciphers and hashing for programming, and the technical subject interupts and DMA. Also I had oral exam from czech and literature that was fine.
This arrived to my mailbox 
What does it says ?
"Build you future. Block by block. Bit by bit."
Oh and that is his uni ?
no clue :D
forgive my ignorance, but is this for a bachelor or masters? do those questions have to be answered in detail? cause that seems fairly trivial to me, or am I misunderstanding this entire thing
i've never looked at how an actual thesis looks like or what is involved before and after that so idk
pretty sure it was highschool
a thesis in high school 
Yep uni
This is high school. The questions are not by hard by themselves. In this case they were asking in quite a detail but if you knew some basic stuff you could pass with D. The problem from each subject you have 25 question so it stacks.
All oral exams are back to back in one day with 10 minute pause.
I had 70 questions in total. The stuff that I prepared to study from is about 180 pages of stuff. The hardest thing about all this is just to remember all of it
We have "specialized" high schools here. Mine is computer science for example. Also it has other specializations
that's actually very cool
Damn I missed first day of REAC 
was very good
I was particullary excitent about meshlet rendering but also GI stuff. Sadly I will have to wait for the videos to be uploaded
i missed the last talk
Wait I thought it was tm?
Frick did I miss it
Gah what the heck
Is it a different discord than 2024?
Smh I was looking at the siggraph discord this whole time, not the REAC discord ๐
@summer sigil I hope you are present for the REAC today
yep!
I am going for vacation to finally rest and then I can start working on the project again ๐
I am coming back on Saturday. The first thing I would like to add is lights finally. Then finally handle masked and alpha blended materials. Alpha blended is going to be handled by WBOIT and Linked List OIT that should be bandwidth friendly
. I would love to add animated models it's first time I will be doing it. The last best thing is going to be ViSM 
i can offer some help if youre loading animations from gltf
Finally made it home. Tomorrow, the bikeshedding can begin.
Lights are in but in somewhat hacked in. I dont want to touch any pbr stuff yet. So it will look like that...
I have to figure out the best way to manage the lights
Tomorrow the materials are next
Some silence here. I have gotten myself a job. Its web dev 
Currently having a lot fun with server and client rendered pages looking different for some stupid reason
Haha enjoy
This is my 6th year and I think it'll be the last, 6 years of that is enough for a lifetime I say
I am doing some map stuff. All the libraries are so bad. I found some annoying bug
Mapbox?
I had to deal with topojson, weird projections and coordinates tomfoolery to get all the stuff nicely displayed
react simple maps
what do you use?
dont say angular
that thing is worse
I dont really use react but nextjs ๐ค โ๏ธ
I inherited a react project from others right now and it's riddled with bugs that I have to fix
It's really really awful and undebuggable
Try not to spend too much time in webdev especially since it's your (I assume) first job
Your brain will rot and you will become unhirable in other domains over time
Use the $$$ webdev pays to get your life in order maybe buy an apartment and pay it off
Then get out
This is my 4th programming job
I already got large ammount of brain damage from one angular job
The DOM was so huge the horizontal slider appeared and you could scroll for some time 
this is the only screenshot I have of it(not revealing anything) but OH BOY
My inspector was taking half the the screen so I could debug it ๐ญ
That is my plan. I have some C++ job lined up too so I end up crazy
ensure the place uses perforce instead of git for maximum effectiveness
I am building the whole stack 
Leaving the with mess ๐
Svelte โ๏ธ ๐ค
FINALLY MAN
This shouldnt take this much changes ๐ญ
21 changed files, 4 new files
what did you do tho
