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

dotstdy

@dotstdy@mastodon.social

phd in branch predicting, ceo of euro gaming

This profile is from a federated server and may be incomplete. Browse more on the original instance.

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.

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, (edited )
@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, to random
@dotstdy@mastodon.social avatar

Trying another approach to swapchain configuration. This time we pass in a dyn trait and use it to smuggle in a couple of callbacks. https://gist.github.com/jsimmons/403aba8a4f4539c685bbf4db953434d8

dotstdy,
@dotstdy@mastodon.social avatar

The thing I like about this, and the main goal really, is just that the single function call hides all the bullshit of creating a surface and swapchain for your window, creating a swapchain, and acquiring images. The downside of course is that a lot of the small details of the clusterfuck of WSI are actually important, and hiding them is perhaps not really worth the trouble.

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

One huge benefit of no longer being in the world of the Intel iGPU is now we have actual profiling tools! (please ignore the fact that sway cannot deal with display scale and xwayland apps)

huge shout out to all the people who worked on making RGP et al actually work on RADV.

❯ MESA_VK_TRACE=rgp MESA_VK_TRACE_FRAME=20 cargo run --release

dotstdy, to random
@dotstdy@mastodon.social avatar

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

dotstdy,
@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)

dotstdy, to random
@dotstdy@mastodon.social avatar

It's kind of dumb that you're can't disable xwayland scaling with sway. If you enable desktop scaling it shits all over your xwayland apps. And if you don't enable it you don't get scaling for wayland ones. PITA

dotstdy,
@dotstdy@mastodon.social avatar

As is common in wayland it seems that support for anything like this is tied up because people are trying to solve the ultimate mega version of the problem which fixes mixing outputs of different scales, and fractional scaling, and proper scaling of xwayland applications. And has been tied up for at least the last 5 years or so. :)

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 @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 :')

aeva, to NixOS
@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
  • megavids
  • rosin
  • mdbf
  • tacticalgear
  • osvaldo12
  • InstantRegret
  • DreamBathrooms
  • modclub
  • magazineikmin
  • thenastyranch
  • khanakhh
  • Youngstown
  • slotface
  • kavyap
  • JUstTest
  • ethstaker
  • tester
  • GTA5RPClips
  • Durango
  • normalnudes
  • cubers
  • ngwrru68w68
  • everett
  • provamag3
  • cisconetworking
  • anitta
  • Leos
  • lostlight
  • All magazines