abbator

59 posts

abbator

abbator

@abbatordev

Katılım Ekim 2024
125 Takip Edilen9 Takipçiler
abbator
abbator@abbatordev·
@miketuritzin This is why GPU programming is just the worst. I’m always splitting apart larger shaders because a single branch can blow up the registers and make the whole thing slow. Put the same code in 2 shaders and now it’s fast… It feels truly silly compared to writing code for the CPU.
English
0
0
1
10
Mike Turitzin
Mike Turitzin@miketuritzin·
I've seen significant differences in shader execution times several times recently from just reordering code blocks (this is obviously non-dependent code). This is on NVIDIA hardware. Interesting to see, I suspect it has to do with hiding read latency with ALU work, but would ..
English
4
0
30
3.9K
abbator
abbator@abbatordev·
@maxliani Oh well, if you ever do part 2 I'm sure it will be good. I revisit the article whenever I have to implement undo/redo.
English
0
0
0
21
Max Liani
Max Liani@maxliani·
@abbatordev Hehe, it’s part of my series of incomplete publishing. The way I imagined it, part 2 would have been a list of utilities to deal with containers, like adding/removing an element at an index in a vector. 5 years? Uff I feel old.
English
1
0
1
20
abbator
abbator@abbatordev·
@maxliani I'm wondering if part 2 of 'Undo, the art of' is ever coming. I've only been waiting 5 years. Really enjoyed part 1, though.
English
1
0
0
15
abbator
abbator@abbatordev·
@AmarthiaAuthor @SandyofCthulhu I grew up on a cliff overlooking the Chesapeake Bay. Lots of the land was graded sometime over the past century, but there are still plenty of cliffs on the Bay. In the past there would have been even more.
English
0
0
2
138
Josh Yoder
Josh Yoder@AmarthiaAuthor·
@SandyofCthulhu How about a video game example? Playing Assassin's Creed 3 and seeing the majestic "cliffs' of the Chesapeake Bay...
Josh Yoder tweet media
English
18
0
457
12.1K
Sandy Petersen 🪔
Sandy Petersen 🪔@SandyofCthulhu·
I read a story in which the author, whose hero was Texas, mentioned someone taking a "slice" of Frito pie, and thus exposed himself as a poseur. In a different story, by a different author, the hero went to Waffle House and bought a Belgian waffle - making it clear he had never in fact visited a Waffle House. In the Walking Dead, they go from Florida to South Carolina and can't find a single firearm in any house. "Huh" I thought. "The screenwriters are from Los Angeles." What examples can you give of a writer unintentionally giving away his lack of knowledge?
Sandy Petersen 🪔 tweet media
English
585
165
4.7K
244.3K
abbator
abbator@abbatordev·
@SebAaltonen I notice that codex loves to use environment variables for everything. Every time I’ve asked it to implement some debug feature it always puts it behind a call to std::getenv
English
0
0
0
41
Sebastian Aaltonen @ SIGGRAPH
Sebastian Aaltonen @ SIGGRAPH@SebAaltonen·
Codex was calling std::getenv for each draw call :D std::getenv("MINI_MESH_LOD_STATS")
English
13
1
231
19.7K
abbator
abbator@abbatordev·
@designcoursecom I only skim read this and saw the part about training a model on your balls and had to go back and read the whole thing. Really neat project though.
English
0
0
0
106
Gary Simon
Gary Simon@designcoursecom·
I've dedicated months to a project that might be entirely a wasted venture. The pool projection thing is a very big ask for each customer. - They need a pool table. - They need a suitable projector mounted above it - They need a suitable camera mounted above it - They need a PC with a GPU - They need to train a model on their balls in their environment Even if it goes no where, it's alive in my studio and it's by far the coolest thing I've ever built, and it's going to turn me into a monster pool player.
English
55
38
1K
87.2K
abbator
abbator@abbatordev·
@miketuritzin What I like about the hot-swapping way is that it forces discipline in the architecture. It’s explicit that you can’t put shared state in the hot reloadable parts, so you end up with a wide DAG of pure consumers and persistent data strictly in lower (safer) parts of the program
English
0
0
0
7
Mike Turitzin
Mike Turitzin@miketuritzin·
@abbatordev I was actually assuming I would do it that way as well before I found out about Visual Studio hot reload / Live++'s improved version. There are various things you have to deal with, though, like vtable pointers in C++.
English
1
0
0
44
Mike Turitzin
Mike Turitzin@miketuritzin·
Visual Studio's C++ hot reload was kinda-sorta working but with various glitches/limitations, and a bit slow. I've now switched to Live++ and so far have been very happy, quite an upgrade in both speed and robustness.
English
3
2
66
7.2K
abbator
abbator@abbatordev·
@thepixelform I mostly noticed it when you did the camera zoom
English
0
0
0
6
Rodwan | Pixel Formation
Rodwan | Pixel Formation@thepixelform·
@abbatorofficial It’s just the Windows Snipping Tool’s framerate. And if you’re talking about animations, in some cases more frames won’t change anything—when idle, it’s just a 1-pixel jump because the animations are pixel-perfect.
English
1
0
0
53
abbator retweetledi
Jon Stokes
Jon Stokes@jon_stokes·
This is insanity. Models should do what humans tell them. They have no conscience to violate and no duty to anyone or anything b/c they are not moral actors -- they are inert tools. We should not create models that don't produce the outputs we ask for. That's broken software.
Ramez Naam@ramez

Soldiers have a legal and moral duty to disobey illegal or unconstitutional orders. AI models should have the same. And that duty to disobey should be built deep into the models, on top of protections in the contract.

English
31
40
531
27.5K
Barry Revzin
Barry Revzin@BarryRevzin·
It's been a long time since I've written a blog post. 7 months! Recently, I was inspired by @vzverovich to try something that I thought was impossible before. And now (with C++26 Reflection), it is. std::meta::substitute is a very powerful function. brevzin.github.io/c++/2026/03/02…
English
1
5
34
2.9K
abbator
abbator@abbatordev·
@maxliani Fair enough then. That certainly saves time. For tasks that are delegated to AI, I feel like the best interface is whatever you have to fight the AI to do the least - for better or worse.
English
0
0
0
11
Max Liani
Max Liani@maxliani·
@abbatorofficial Most of that is AI generated or autocompleted. I didn’t type any of those format strings, Cursor filled in from the comparison statement.
English
1
0
0
29
Max Liani
Max Liani@maxliani·
Friends out there. I have a question related to the use of unit test frameworks. Most frameworks for C/C++ are macros based. Do you like using macros for the purpose? Or do you think macros makes your life harder, you wished for another way?
English
16
0
19
40.5K
abbator
abbator@abbatordev·
@maxliani This is 100% nicer, it just also makes writing them take a lot more time/effort. Not that you shouldn’t take your time writing tests. But they aren’t art, and once they’re done they mostly stay the same. Getting a quick “oops, that fails now” is more important than the blurb imo
English
1
0
0
26
abbator
abbator@abbatordev·
@maxliani If you don’t want to see that then I suppose you don’t need assert macros. The only thing I don’t like about it is that it reads inverted. Otherwise I find it very useful to be able to see at a glance which check is failing.
English
1
0
0
29
Max Liani
Max Liani@maxliani·
@abbatorofficial Sneaky way to use literals :) As for the condition log. I am not a fan of where is see in the log: Failure: true != false. Or: Failure: result == 5
English
1
0
0
45
abbator
abbator@abbatordev·
@OlexGameDev The `;` on the end of the struct declaration goes back to C. In both C and C++, a struct declaration is an expression. Remember that you can write this: `struct foo_t {} foo;` That’s why the semicolon there exists. If you don’t allow that, you don’t need it.
English
0
0
0
18
Olex (Solo gamedev Diablo-like) 🇺🇸🇺🇦
Is it a class or is it a struct? My first foray into implementing class/struct/thing. This compiles and runs now. - For now, I don't see the point of needing a keyword to specify that is a struct/class. - In C++ { } is mostly used for definitions but can also be used for initialization. I am thinking to always treat {} as definitions and () as an operation. - I don't see the point for an extra ";" at the end of the struct definition. - Uninitialized values are allowed, this is a low level systems language after all! P.S. Why "glsl_compiler"? The first use for this language will be to replace my offline shader compiler written in C++ that runs at build time, so it will be risk free for my current game. Context: - Custom front end from scratch in C++ - LLVM back end via LLVM IR - Syntax coloring for VS Code via C++ LSP server
Olex (Solo gamedev Diablo-like) 🇺🇸🇺🇦 tweet media
English
6
0
23
3.5K
Rezi
Rezi@rqobela·
Programming language you learnd but never used again is...?
English
5.9K
145
5.4K
952.6K