Details
-
AboutAAAAAAAAAAAAAAAAAAA
-
SkillsRust and other things
-
Locationhere
-
Website
Joined devRant on 12/8/2018
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
PSA: The smaller the compute shader workgroups the more efficient they are, down to the wave size (32 on nvidia). Not exactly sure why, but looks like if you don't need group shared memory always have your workgroups be wave sized
Just this alone gave me a 30%+ performance increase. And combined with a few other changes got me from 50 µs to 10 µs, yay!5 -
Name one thing more fun than atomically writing values into a gpu buffer and them mysteriously vanishing into the aether immediately after the compute shader invocation
I can literally see them in the buffer using RenderDoc and then as soon as I go to the next command the buffer is completely filled with zeros again as if the values never existed
?? like how ??11 -
Visibility rendering using traditional vertex/fragment shaders does 39 million tris in about 3.6 ms
With my newest renderer I can push 314 million triangles in about 6 ms right now
And this is just visibility, factoring in material evaluation of traditional deferred it would be at least like 10x worse. Meanwhile everything expensive about materials is completely independent of geometric complexity in my renderer
Literally me rn: https://youtube.com/watch/...
(cant include image because devrant doesn't want to)4 -
Guess who has to finally swallow his pride and implement traditional deferred rendering with a traditional gbuffer even though he swore to never do that
This guy right here2 -
Nothing says "punk" and "against the system" more than having the same political world view as the WEF and Blackrock7
-
The artifical character limit in google notes is so damn annoying
They put actual effort into an anti feature with a "convert into google doc" button. Like they clearly understand one might want to type more than 50k characters, they just dont allow you to do that in notes for no reason besides fuck you
Hey google if i wanted to use google docs, i would have used google docs. Now I just have to split my notes into two because clearly im doing it wrong and google knows better >.>12 -
Since when is blender utterly unusable for meshes > 500k tris. I have 32 gig RAM and it's literally unusable. You try to do anything and it fills up your entire RAM and dies. No matter what you do
Like fucking really? I can't add a subdivision surface modifier to a mesh with 800k tris? Is that too much to ask for
I'm so fucking pissed off right now. I've already wasted an hour trying to export ANY high res model and zero luck so far. Either blender just crashes. Or the exported model doesn't contain any geometry. Or the exported model doesn't contain tangents (even though I explicitely enabled them). Or I try do enter edit mode and it crashes. And then every damn time I have to renavigate to the blender folder (because of course you can't start blender just normally, no no that doesn't work) and when blender crashes it nukes my terminal as well. And then I have to reload the stupid model. And then I have to do what I'm trying to do hoping it doesn't crash. And then it crashes anyway8 -
Just when I thought that surely a single SIMD dot product instruction must be the fastest way to calculate a damn dot product on a processor, agner fogs instruction tables come flying out, hitting me over the head telling me that manually calculating a dot product may actually be faster sometimes
Why must computers be like this?
I just came out of a bad relationship with hardware rasterization being horribly slow and now I can't even trust my processor to do things properly
This is how people develop trust issues1 -
Is writing hand-optimized SIMD code even still worth it? Thinking about writing my own little math library for my game engine but I've tried writing a hand-optimized `dot(normalize(b - a), foo) >= bar` and somehow it's actually slower than writing the same thing using a math lib which is implemented exclusively with scalar math and auto vectorized by llvm
LLVM... I kneel5 -
So I got my compute shader rasterizer working pretty well now which is great. I now also have a fallback to hardware rasterization for triangles which are a bit sussy (mostly just too large) and getting that implemented without tanking performance (gazillion threads hitting the same atomic variable at the same time) involved some tricky workgroup/subgroup hackery but I'm happy with it
Only problem... I have like 90%+ SM occupancy (which is great) but I also have 90%+ SM occupancy which means the nvidia drivers think I'm mining cryptocurrency and start bottlenecking my compute performance at random. It slowly goes up to 3x, then it slowly goes down again, then it slowly goes up again... argh
Thanks, miners 😐8 -
Sometimes I just don't know what to say anymore
I'm working on my engine and I really wanna push high triangle counts. I'm doing a pretty cool technique called visibility rendering and it's great because it kind of balances out some known causes of bad performance on GPUs (namely that pixels are always rasterized in quads, which is especially bad for small triangles)
So then I come across this post https://tellusim.com/compute-raster... which shows some fantastic results and just for the fun of it I implement it. Like not optimized or anything just a quick and dirty toy demo to see what sort of performance I can get
... I just don't know what to say. Using actual hardware accelerated rasterization, which GPUs are literally designed to be good at, I render about 37 million triangles in 3.6 ms. Eh, fine but not great. Then I implement this guys unoptimized(!) software rasterizer and I render the same scene in 0.5 ms?!
IT'S LITERALLY A COMPUTE SHADER. I rasterize the triangles manually IN SOFTWARE and write them out with 64-bit atomic image stores. HOW IS THIS FASTER THAN ACTUAL HARDWARE!???
AND BY LIKE A ORDER OF MAGNITUDE AT THAT???
Like I even tried doing some optimizations like backface cone culling on the meshlets, but doing that makes it slower. HOW. Im rendering 37 million triangles without ANY fancy tricks. No hi-z depth culling which a GPU would normally do. No backface culling which a GPU with normally do. Not even damn clipping of triangles. I render ALL of them ALL the time. At 0.5 ms7 -
Fuck you AMD for being too lazy to implement VK_EXT_fragment_shader_interlock even though your hardware supports it [1]
It's literally *the* best way to implement any sort of order independent transparency ( https://web.archive.org/web/... )
But noo, not enough people are using it so too bad. Now you just have to render transparent objects all fucked up and bad looking on AMD hardware because "we don't feel like it"
[1] https://github.com/GPUOpen-Drivers/...65 -
As an anti-aliasing nerd it's sad to say but there is really is only one* good choice left: Just use DLSS
(* and if you aren't on nvidia then sucks to be you, FSR for you I guess)4 -
Just started playing Rust again after like 9 years and holy shit is this game not noob friendly at all
I play(ed) on a relatively chill server where raiding is only enabled in the last week before wipe every month and it's not too many people playing
So I'm out on adventure, I come back and my entire base is raided... Uhm okay, I did sort of have an uneasy feeling that I left the door open when I left so okay, my dumb mistake. Lesson learned: Always make sure doors are definitely closed
So I farmed hours more to get all my stuff back, repaired a vehicle, built a nice little garage, upgraded all my windows to reinforced windows so that nobody can interact with the car or my horse inside the house, just in case that allows you mount and get in the house that way, no clue
This day I log back in. Base completely cleaned the fuck out again
Actually what the fuck man. I did *everything* right, made sure every door is locked and closed, replaced all accessible windows with reinforced ones, had 27 days of upkeep materials and still, my entire progress of 10 hours of playing is gone again
What did I do wrong? After talking with people in chat apparently I had wooden frames for the doors, which apparently are just always destroyable by anyone... Even on a damn server where raiding is disabled. Yea sure makes sense
I like Rust but holy shit, this core game mechanic of raiding is still one I cannot get over. It's so stupid to be cleaned out over night while you're not even online. It's just fucking frustrating to start all over AGAIN farming and farming and farming. I didn't really want to play because the game always looked like a meta gaming sweat fest and this just proves that it's exactly that. You have to know every single meta game mechanic to even have your damn base survive overnight
On a positive note I did figure out that unity's concurrent garbage collection doesn't seem to be a big problem for a proper fps game though, so that's something4 -
People hate Amazon, people like to hate on Amazon.
But people also keep buying from Amazon
This morning I took an amazon return package to DHL and literally at 17:00 this day (the same day!) I got the refund to my bank account
What the fuck. I mean yeah I hate amazon as much as the next guy. But that's literally why people are buying from amazon. You can't just say "amazon bad" and then not also appreciate when they are doing something good12 -
HLSL, you little fucker
The bug I was searching for, for a few days now turns out to be a packed uint accidentally stored into a float variable
Not a single peep from the compiler, nothing
It doesn't even have warning flags like -Wconversion
What the fuck. Why microsoft. WHYYY1 -
Some logic I'm developing packs three different states into an f32: NaN means do nothing, +0.0 or positive number means polite request and -0.0 or negative number means force override
Yeah, I don't know what to say...4 -
Let it be known that the smell of mediocre pizza and döner at the same time is something to marvel at. It really smells very good3
-
I don't get it. Bethesda managed to make the best temporal antialiasing solution to ever grace this planet with TSSAA in Doom 2016 and then manage to fuck it up by removing it in favor of forced TAA in Doom Eternal which looks like complete dogshit
WHYYYYYYYY
The graphics were /literally/ the reason I bought the damn game. I just finished Doom 2016 and it was so inspirational for my own game engine, giving me motivation by seen what I can achieve. Doom Eternal is fucking depressing from a technical standpoint
Well at least I know now that my own AA solution is viable and that I can do better than a AAA studio :emotionless-shrug-guy:8 -
Oh wow, fuck Ansible
Turns out there is no way to automatically undo the things it did, because surely nobody would ever want to remove software...
Now I have a half fucked server that I can manually clean up again 👍12 -
Oh my god, GDScript is the single biggest piece of shit scripting language I have ever witnessed. It somehow manages to combine the very worst things of dynamic typing with the downsides of static typing, all in one bundle of utter shit
Imagine you have two game object scripts that want to reference each other, e.g. by calling each others methods.
Well you're outta fucking luck because scripts CANNOT have cyclic references. Not even fucking *type hints* can be cyclic between scripts. Okay no problem, since GDScript is loosely based of Python I can surely just call my method out of the blue without type hints and have it look it up by name. Nope! Not even with the inefficient as fuck `call` method that does a completely dynamic-at-runtime fuck-compile-time-we-script-in-this-bitch function call can find the function. Why? Because the variable that holds a reference to my other script is assumed to be of type Node. The very base class of everything
So not only is the optional typing colossal garbage. You cant even do a fucking dynamic function call because this piece of shit is just C++ in Pyhtons clothing. And nothing against C++ (first time I said that). At least c++ lets me call a fucking function8 -
Does anyone have experience with using Kotlin as a front end language? Seems to have excellent JS interop and I really don't want to deal with the garbage fire that is JS or TS 😬5
-
Trying to get ChatGPT to say inappropriate things is like talking to a fucking twitter user, having to reassure everybody every other sentence that no hypothetical people are being offended and that everything is fine13
-
TIL vanilla Java has the facilities to do (some form) of arbitrary compile time metaprogramming via annotation processors5