@dotstdy@mastodon.social cover

phd in branch predicting, ceo of euro gaming

This profile is from a federated server and may be incomplete. View on remote instance

rovarma , to random
@rovarma@mastodon.gamedev.place avatar

Dealing with case sensitivity issues on Linux combined with Perforce sure is a special kind of hell

dotstdy ,
@dotstdy@mastodon.social avatar
dotstdy , to random
@dotstdy@mastodon.social avatar

CPU optimisation guide: You should try vectorizing
GPU optimisation guide: You should try scalarizing

CHOOSE A LANE

dotstdy OP ,
@dotstdy@mastodon.social avatar
dotstdy , to random
@dotstdy@mastodon.social avatar

I feel like the most difficult part of subgroups and GPU programming in general, is getting all the terminology straight in your head. Sometimes it seems like it would be easier just writing rdna asm directly. :')

dotstdy OP ,
@dotstdy@mastodon.social avatar

@pervognsen To be honest nvidia has the best naming scheme, everyone should just adopt that one.

dotstdy OP , (edited )
@dotstdy@mastodon.social avatar

@pervognsen Right I was about half way through typing that we could probably lose the CUDA cores :') People working on CPU marketing must be livid that GPUs get away with that after the whole "real cores" kerfuffle with bulldozer.

demofox , to random
@demofox@mastodon.gamedev.place avatar

Anyone have any tips for repairing or desoldering corroded solder? I've tried applying fresh solder but not all points would take it.
Also, I'm thinking the brown line across the bottom is supposed to be a connection between all of them for ground. I think its corroded to not work as well anymore. Does that look/sound right to people? In the second image, it's the side with a single wire plugged in.

image/jpeg

dotstdy ,
@dotstdy@mastodon.social avatar

@demofox Ideally you'd desolder everything (flux and solder wick), clean it, then see what the state of the PCB is. That does indeed look like a trace that runs the whole way across on the bottom. If you're messing around it might also be worth just replacing the push buttons since they should be easy to get and they seem to have corroded legs also.

dotstdy ,
@dotstdy@mastodon.social avatar

@demofox It looks basically like you have the common ground rail, then one connection for the LED, and one for each push button switch. If the traces on the PCB are borked you can also likely bodge it with small wire bridges of whatever flavor is convenient.

gigantos , to random
@gigantos@social.linux.pizza avatar

When people brag about how fast their project is, is that because they come from a non-system language?

I love the language, but there is no reason it would be faster than #C. Just less error prone. The best case for Rust is to be as fast as C, not faster.

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen @gigantos @ekuber @diondokter There's also some not so new situations with "real" alignment requirements, like SSE and ARM ofc, plus some quite new ones, like issuing a lock prefix instruction on an unaligned address causing your cloud provider to nuke your app from orbit.

BartWronski , to random
@BartWronski@mastodon.gamedev.place avatar

People like sensational "findings" about the energy use of ML, but luckily, things are not so dire. :)

Image description: A popular sensational "paper" overestimated energy use by just 118000x (yes, times). Ooopsie.

Training a transformer produces 2.4 kg of emissions rather than the 284,000 kg estimated by Strubell et al. https://arxiv.org/abs/2104.10350

image/png

dotstdy ,
@dotstdy@mastodon.social avatar

@BartWronski to be honest I think the main thing is more about people learning how much power large scale data centers pull, and starting to question what all that power is actually being used for. Which can only be good. Totally agree that focusing on the "training cost" of a model is completely nonsense, I've seen both crazy overestimation and underestimation, from things like above and the inverse like the openai one amortizes the cost over their QPS lmao.

Doomed_Daniel , to random
@Doomed_Daniel@mastodon.gamedev.place avatar

lots of llama ass whipping today

dotstdy ,
@dotstdy@mastodon.social avatar

@Doomed_Daniel who's bringing back xfire

dotstdy , to random
@dotstdy@mastodon.social avatar

Heck yeah, now I can use a bpf program to disable preemption in my spinlock bodies! Checkmate spinlock haters. (It doesn't actually allow this) https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=55d30cc90fd4

dotstdy , to random
@dotstdy@mastodon.social avatar

So now we have replaced the fast fixed-function UI text rendering with an extremely slow (and probably slightly incorrect) compute version. Success? I guess so.

https://github.com/jsimmons/narcissus/commit/3851fb6d2cf8c5d56ecb029a12476dd1d220c10b#diff-84a451052161b35dc8c74ea47c846ed82d81a4951010407196e1b36997840f52

dotstdy OP ,
@dotstdy@mastodon.social avatar

@pervognsen that's next, yarp. yoda_patience.gif

dotstdy OP , (edited )
@dotstdy@mastodon.social avatar

@pervognsen Yeah, that's the basic plan. One extra caveat is that will do all UI rendering through this path, so it will also have a primitive type packed in there somewhere too. And perhaps an explicit (stable) sort on depth per tile, rather than relying on order as it does now. Oh plus the extra stage of moving this and presentation to async compute, which I don't have hooked up at all yet. :)

dotstdy OP ,
@dotstdy@mastodon.social avatar

@pervognsen Yeah, that's actually how it used to work before too. Since it was info packed into the vertex buffer, type + index + a bit of extra data in each vertex. I just removed that layer for now to make it slightly simpler to get running. Thankfully it didn't really take much messing around and kinda "worked" first go (caveat for mostly ignoring blending, and also for almost certainly being off by some degree on the pixel centers).

dotstdy , to random
@dotstdy@mastodon.social avatar

the phrase "blazingly fast" really upsets me

dotstdy OP ,
@dotstdy@mastodon.social avatar

@pervognsen LOL, personally I was impressed by the "try changing your compiler flags" guy

dotstdy OP ,
@dotstdy@mastodon.social avatar

@pervognsen the more zeroes the better the benchmark. It is known.

pervognsen , (edited ) to random
@pervognsen@mastodon.social avatar

Another thing I noticed in the SDL 3 preview (which was apparently already added in vestigial form later in SDL 2) is that they have support now for a callback-based life cycle so you can integrate properly with platforms which expect that without having to resort to inversion-of-control hacks like fibers for interop. While I always liked the "app controls the main loop" aspect of the classic SDL event pumping model, that ship has sailed if you care about cross-platform support.

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen @floooh yeah, then you can also use a mailbox style present instead of fifo too. granted, you still need to do something about the 8Khz mouse situation, and if you're delaying to a frame boundary you're back to the original issue of where to put that boundary.

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen @floooh you can move the time dependent stuff, but how you batch and process the input events has the same problem as the ordinary event loop, since you want to batch as late as possible and also bound the swapchain depth. If you're on a desktop card you can probably render much faster than present, but perhaps you don't want to render at 2000Hz because every mouse event triggers a render.

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen @floooh unrelated note: the cursor is not actually on a separate plane in Wayland / Linux and it causes all the hilarious issues you might imagine with VRR. (I think more accurately it's on a separate plane but the "every frame is perfect" design goal of Wayland means they don't commit it separately, so it has a lot of weird interactions between the compositor and a vrr app)

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen @floooh right, my point there is just that in that scenario you're not improving latency at all. Since your input events are just queuing changes for the next render call. It's only better for latency if you're really jamming those renders immediately with a swapchain that isn't 5 images deep.

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen @floooh yeah, I guess you're right there. It's not entirely queuing free, but as the render time approaches zero it's going to be fine. This is after all why so many toolkits like the approach. It just just breaks down if you have non-trivial rendering work. I think mixing event based and animated content is also going to be interesting.

pervognsen , to random
@pervognsen@mastodon.social avatar

There's a retired couple living in my mom's apartment complex who seems to spend 12 hours every day sunbathing outside during the summer months. They did this when we were visiting last year and they're continuing the streak apparently. After you've lived in a warm climate for a while, the whole idea of sunbathing starts to seem obscene, but this is something else.

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen @msinilo @BartWronski @neilhenning yeah it's a very strange feeling, to go back. i can certainly understand why people get "homesick" for that deep familiarity. even if i slightly judge them for it... :')

pervognsen , (edited ) to random
@pervognsen@mastodon.social avatar

Thanks to whoever mentioned Vivaldi the other day. I've been giving it a try and liking it so far. Not sure how I feel about it still being Chromium based but I like pretty much everything Vivaldi is doing in terms of usability and design, so far.

dotstdy ,
@dotstdy@mastodon.social avatar

@chandlerc @pervognsen the gaming one is tricky to pin down because it's very vibes driven. Eg if you go back and read the discourse around horse armor at the time, it's very wild considering how much that is accepted now. It's also muddied by the outrage cottage industry. But yeah, I think for me at least the main thing is that in the case of something like YouTube premium it doesn't seem realistic that it would change their core revenue model. And that core model determines things I care about

pervognsen , (edited ) to random
@pervognsen@mastodon.social avatar

This GH issue is pretty funny, but seems to have finally gotten the ball rolling on the Wayland side after the threat/worry that SDL 3.0 might not support Wayland natively (more specifically, it would not select SDL's Wayland backend by default) due to some issues that made it untenable for games. https://github.com/libsdl-org/SDL/pull/9345

dotstdy , (edited )
@dotstdy@mastodon.social avatar

@pervognsen Here's hoping... The fifo protocol mentioned there (to enable working vsync rendering) is only up to 6 months idling in review now. Thoughts and prayers to the PR author, Derek.

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen Aye, I completely gave up on the wayland community after that debacle. It's very weird to be trying to convince people they should aim to make things work. :') I also sent a few emails trying to describe how game main loops actually function and why it's important that they function that way. But to no avail. WCYD

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen LOL yeah, that's a good point. The best one imo is games like Elden Ring which detect you messing with the frame rate in the anti-cheat. So if you play ER on wayland and tab away from the game you get booted with an anti-cheat message and have to restart the entire game to go online again. On the other hand, it would make it a lot easier to cheat dodge damage in New World, so who's to say whether it's bad or not.

dotstdy ,
@dotstdy@mastodon.social avatar

@wolfpld @pervognsen yeah that already happens. The only issue is the majority of people use gnome :')

dotstdy , to random
@dotstdy@mastodon.social avatar

There's a lot to be said for code that can be copy-pasted. One of the core joys when programming against dear imgui is when you find something mostly like what you want, you can usually copy paste it into the place you need, and adjust the thing you needed to adjust, and it just works. One of the anti-joys of GPU programming is this is very often not the case, at once you step beyond things that fit in a shadertoy.

pervognsen , to random
@pervognsen@mastodon.social avatar

Looking at the SDL 3.0 preview and hallelujah they added open/save file dialogs. There's a bunch of really good stuff slated.

dotstdy ,
@dotstdy@mastodon.social avatar
dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen @Sharlock93 Yeah I feel similarly, it's something where you're probably better off just targeting WGPU, with the added benefit that you can target web. Especially since it's making the same painful decision to have its own shader language.

dotstdy , to random
@dotstdy@mastodon.social avatar

breaking news: the compiler fairies will not in fact pick up the dirty laundry from your bedroom floor

pervognsen , to random
@pervognsen@mastodon.social avatar

Leaving for the airport in about 12 hours for a long flight to Denmark. Looks like summer has come early there, too.

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen good luck, having tested again recently it turns out it's still a real long way. I can also confirm it's quite warm and pleasant. At least on this side of the pond.

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen dubai airport really takes nightmare to the furthest possible extent, so you gotta respect it for that. the capitalist franz kafka airport

dotstdy , to random
@dotstdy@mastodon.social avatar

whos got the tldr on doing non-shitty color stuff in game. tia :')

dotstdy OP ,
@dotstdy@mastodon.social avatar

@pervognsen Mostly about the mechanics of putting things together. E.g. pipeline, formats to use, etc. Like as I understand it the hotness seems to be something akin to...

render to f32 rgb -> ??? -> display transform (agx, tony mc map face) -> ??? -> swapchain.

kind of the "minimum viable color pipeline" (obviously the actual minimum viable is just convert to srgb and voila, but I figure if I'm writing the shaders anyway I may as well do it in a nice way)

pervognsen , to random
@pervognsen@mastodon.social avatar

"The algorithm uses exactly the same terminology and is presented in bottom-up form. (If you prefer top-down design, please read the rest of this section backwards.)"

dotstdy ,
@dotstdy@mastodon.social avatar

@lritter @TomF @pervognsen spirv and gpu compilers are a fun one since they need the structure to figure out how to compile your diverging / converging control flow in a sane way. There you could argue that goto really is considered harmful! :')

pervognsen , (edited ) to random
@pervognsen@mastodon.social avatar

How much RAM do you have in your dev workstation/laptop?

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen 64 in my big machine at home, 128 in my workstation at work, and 16 in my new laptop, which I'm unsure how much I will regret.

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen @foonathan The real question is how bad does it make it feel when you go to link it and 127 cores go idle :D

dotstdy ,
@dotstdy@mastodon.social avatar

@wolfpld @pervognsen @foonathan In theory yes, but not in practice in a way that will keep a 128 core machine busy if you're linking a single binary.

dotstdy ,
@dotstdy@mastodon.social avatar

@molecularmusing @wolfpld @pervognsen @foonathan mold limits concurrency to 32 threads by default because it doesn't really scale beyond that. Still much better than all the others tho :')

pervognsen , to random
@pervognsen@mastodon.social avatar

Wow, hands-on communication with the founders! I feel so special as a prospective customer. It's definitely not because the founders are the only employees.

dotstdy ,
@dotstdy@mastodon.social avatar

@pervognsen at EUROGAMING HQ we're committed to never hiring anybody to ensure your support requests always go straight to the top

dotstdy , to random
@dotstdy@mastodon.social avatar

Ah it's very nice when you report an issue on an open source tracker and an actual engineer from the HW vendor replies within a few hours. :) ofc you sometimes get the IDGAF about linux crickets too, but when it works it works.

dotstdy , to random
@dotstdy@mastodon.social avatar

It's rather unfortunate really that systems like wayland end up building their own gigantic IPC mess because your options on Linux are dbus or nothing. I'm fairly certain there's no reason it couldn't be built on top of a shared IPC layer like say, how it works with binder. OTOH maybe that's just not useful, but everything IPC is so half baked in non-android Linux it's a bit sad.

dotstdy OP ,
@dotstdy@mastodon.social avatar

@wolfpld @lritter the lengths people go in order to avoid having a ~~~BLOAT~~~ system :')

aeva , to random
@aeva@mastodon.gamedev.place avatar

I don't actually have time today to work on any side projects, but I thought I'd run through the basic setup steps for MonoGame aaaand

./bin/Debug/net6.0/MyGame
bash: ./bin/Debug/net6.0/MyGame: cannot execute: required file not found

... which required file ._. ???

I think this sort of thing means it tried to dynamically link something and failed. I run into this whenever I try to run loose builds of Linux games on , but idk what to do about it.

dotstdy ,
@dotstdy@mastodon.social avatar

@aeva look don't worry about it, the third committee meeting about wayland high dpi scaling is well into its 6th year, and all portents agree that a swift resolution is in sight.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • tech
  • kbinEarth
  • testing
  • interstellar
  • wanderlust
  • All magazines