@pervognsen@mastodon.social avatar

pervognsen

@pervognsen@mastodon.social

Performance, compilers, hardware, mathematics, computer science.

I've worked in or adjacent to the video game industry for most of my career.

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

molly0xfff, to ai

back in my day we called this spyware

robpike, to random
@robpike@hachyderm.io avatar

My occasional reminder that I once used a ROM burner that, upon power-up, announced on its bright red LED display: "RELF-TEST PASSED".

BrunoLevy01, to random
@BrunoLevy01@fosstodon.org avatar

New article online:
Exact predicates, exact constructions and combinatorics for mesh CSG:
https://arxiv.org/abs/2405.12949
Code: https://github.com/BrunoLevy/geogram
Data: https://github.com/BrunoLevy/thingiCSG
This image: union and intersections of 200 bunnies with a sphere (why ? why not !?!)

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

> With Recall, locating files in a large download pileup or revisiting your browser history is easy. You can give commands to Recall in natural language, eliminating the need to type precise commands.

"We suck at UX so we'll need to record everything and run on a 40+ TOPS CPU to be able to provide even the most basic functionality. Do you like this, is this good?"

https://www.windowslatest.com/2024/05/20/microsoft-confirms-windows-11-recall-ai-hardware-requirements/

I'm sorry, but AI is mostly just doing simple things, incredibly inefficiently, in the most creepy way.

aras, to Playdate
@aras@mastodon.gamedev.place avatar

Short blog post about "Everybody Wants to Crank the World", a #playdate #demoscene demo I made recently https://aras-p.info/blog/2024/05/20/Crank-the-World-Playdate-demo/

Calculating only some pixels both spatially and temporally is pretty much the same as DLSS, right? :P

Donzanoid, to random
@Donzanoid@mastodon.social avatar

Final video for now, newer videos another day :)

This all happens on a 6000km radius voxel planet with overhangs, floating islands, deep caves, sunsets, stars, nebula and a bunch more not shown.

Build on the surface, underground, in the air or in space. All streamed, no tricks.

video/mp4

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

I am excited to finally share our recent paper "Filtering After Shading With Stochastic Texture Filtering" (with Matt Pharr, @marcosalvi, and Marcos Fajardo), published at ACM I3D'24 / PACM CGIT, where we won the best paper award! 1/N

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.

floooh,
@floooh@mastodon.gamedev.place avatar

@pervognsen it's actually interesting how easy it was to integrate a basic "render during resize" in Windows in sokol_app.h without affecting user code (because sokol_app.h also has a frame callback model).

It's not perfect because rendering inside resizing throttled via WM_TIMER interacts badly with DXGIs vsync, e.g. you'll have to do this, otherwise the whole window system "stutters":

https://github.com/floooh/sokol/blob/f70cc07f0fcd763ab6ff0171a6b8fe1dca3ed367/sokol_app.h#L6615-L6621

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

Fun visualization of low-rank matrices from the lecture I boosted earlier today.

Incidentally, I remember there were some papers on separable/low-rank BRDF approximations: BRDFs are 4-dimensional and you can approximate them as a sum of outer products of 2-dimensional texture maps. I remember one paper by Michael McCool but I don't think it got picked up or went anywhere in practice. Nowadays I assume people would just use NN-based approximations.

BartWronski,
@BartWronski@mastodon.gamedev.place avatar

@pervognsen I think low-rank approximations are still important, even in the ML landscape.
I'll start with a shameless plug of 3 blog posts:
https://bartwronski.com/2020/02/03/separate-your-filters-svd-and-low-rank-approximation-of-image-filters/ low-rank approximations of arbitrary image filters.

https://bartwronski.com/2020/03/15/using-jax-numpy-and-optimization-techniques-to-improve-separable-image-filters/ improving low-rank approximations with SGD.

https://bartwronski.com/2022/02/15/light-transport-matrices-svd-spectral-analysis-and-matrix-completion/ low-rank approximations of light transport matrices.

Finally, for use in contemporary ML, LoRA: https://arxiv.org/abs/2106.09685 Memory-efficient low-rank fine-tuning of huge ML models.

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

Episode 4 of the series on Voxel Ray Tracing in C++ is now online:

https://jacco.ompf2.com

In this episode: improving soft shadows using stratification and blue noise. As always, it starts with the template, available from Github: https://github.com/jbikker/voxpopuli

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

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@dotstdy @pervognsen It's actually quite "simple". Get the people interested in moving things forward, agree on a solution, and implement it in selected compositors and client applications.

Ignore the obstructionists, let their software be inferior. Hold them hostage, just as they are holding everyone else hostage right now.

(By "simple," I mean "very hard," because the people who actually do the work want a compromise, even if it means things remain in limbo for years).

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

PSA for people writing Arm SIMD code in C or C++: unlike x86, where you can cast any pointer to __m128* and be able to dereference it regardless of the dynamic type of the pointed-to memory, that is not the case on Arm: Neon types do not carry the may_alias attribute and standard type compatibility rules apply. Compare the differences between 'f' and 'g' on the first pic, and Arm codegen on the second pic.

image/png

aras, to demoscene
@aras@mastodon.gamedev.place avatar

"Everybody Wants to Crank the World", a :demoscene: demo for :playdate:
@playdate. Took 4th place at @outline!

Youtube: https://www.youtube.com/watch?v=QjAKiwQxrQI
Playdate binary: https://aras-p.info/files/demos/2024/Nesnausk_CrankTheWorld-20240421.zip
Source code: https://github.com/aras-p/demo-pd-cranktheworld

Maybe I should write a short blog post about development for playdate, or somesuch. It is quite fun!

image/png
image/png
image/png

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.)"

pervognsen,
@pervognsen@mastodon.social avatar

@TomF Well, in this case you'd just need a break or an early return. When you look at a lot of the old articles on GOTO vs structured programming, including Knuth's famous article, they're working in a world where neither break or early return is a thing in structured languages, or at least not considered admissible. Almost all Knuth's examples (as far as I remember) in favor of GOTO are solvable with single-level continue, break or early return. Labeled break/continue probably handles the rest.

pervognsen, to random
@pervognsen@mastodon.social avatar

This classic blog post resurfaced on the Rust subreddit today after someone posted that they wished ownership had been explained to them with a metaphor about pirate treasure chests.

https://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/

'But now Joe goes and writes a monad tutorial called “Monads are Burritos,” under the well-intentioned but mistaken assumption that if other people read his magical insight, learning about monads will be a snap for them. “Monads are easy,” Joe writes. “Think of them as burritos.”'

pervognsen,
@pervognsen@mastodon.social avatar

@steve @pkhuong @zwarich Multiple-Length Division Revisited: A Tour of the Minefield (1992), Per Brinch-Hansen, https://surface.syr.edu/cgi/viewcontent.cgi?article=1162&context=eecs_techreports

"Only a handful of textbooks discuss the theory and practice of long division, and none of them do it satisfactorily. This tutorial attempts to fill this surprising gap in the literature on computer algorithms."

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

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

wence,
@wence@hachyderm.io avatar

@pervognsen @pkhuong @molecularmusing @dotstdy @wolfpld @foonathan

The conservation law isn't really the scaling limit because we have scalable sparse solvers via hierarchy of scales for elliptic operators, eg nek5000: https://www.mcs.anl.gov/~oanam/old_page/index.php/Scaling. That this works across so much of physics is almost a miracle, but then nature is low rank, I like Alex Townsend's intro: https://m.youtube.com/watch?v=EseL6ZNawog

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

pkhuong, to random

If you're wondering when to use TCP_QUICKACK, I think it's completely orthogonal to NODELAY on Linux: the kernel will disable QUICKACK based on some heuristic, so setting it once won't necessarily do what you want.

I think it makes sense when you expect to receive large payloads though: faster acks let the sender queue up new packets faster. This might be hard to observe in readiness-based async servers because reasonable buffer sizes are small, so throughput tends to see-saw, but I've observed the impact on blocking recv (and if you only use non-blocking sockets for timeouts, SO_SNDTIMEO/SO_RCVTIMEO now make sense on Linux [i.e., they apply to each syscall, not each blocking step in the syscall's internal loop]).

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

This exchange reminds me of the debate I had with Jeff Atwood on whether or not servers should use ECC memory a decade ago. Jeff said no and I disagreed and said yes in https://danluu.com/why-ecc/.

At the time, there was one argument that could've, theoretically, been overturned by progress: Jeff argued that commodity non-ECC memory was becoming more reliable and was highly reliable. This was not true at the time, and it turns out this still isn't true a decade later.

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

@danluu Hey just fun fact: at Google we recently had a truly amazing moment where non-ECC ram holding part of a protocol buffer got corrupted after transmission and validation, got replicated all over the place, and caused chaos.

I do not know how we defense in depth much harder but we'll have to figure out a way because I have officially lives to see a cosmic ray infiltrate and destroy a distributed system that aggressively validates input off wire on all nodes.

lazerwalker, to random
@lazerwalker@xoxo.zone avatar

The Roguelike Celebration call for talk proposals is open! We’re once again virtual in October in our custom MUD.

We love talks about weird art, novel procgen techniques in non-roguelike games, aspects of roguelike fandom or community, you name it.

My annual reminder as head of the CFP committee that we rarely reject talks for being “not roguelike enough”. My DMs are open if you want to chat about submissions.

https://www.roguelike.club/cfp.html

ga5p0d3, to random
@ga5p0d3@mastodon.gamedev.place avatar
mattpharr, to random
@mattpharr@mastodon.gamedev.place avatar

My new favorite dishtowel. (Only noticed after the purchase.)

levork,
@levork@graphics.social avatar

@yiningkarlli @aras @mattpharr They have great infographics

h0ffman, to amiga
@h0ffman@mas.to avatar

Testing my new large form module player on the 500. 1.6MB of ProTracker module, on one disk with playback.
https://youtu.be/lbqFsjcYLPI

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

A new number coding contender enters the ring. https://arxiv.org/pdf/2404.18603

image/png

mbr,
@mbr@mastodon.gamedev.place avatar

@fatlimey Le sigh. I think this was my biggest double-take moment.

pervognsen,
@pervognsen@mastodon.social avatar

@mbr @fatlimey Here's what an actual "remarkable proximity" looks like in mathematics: https://en.wikipedia.org/wiki/Heegner_number#Almost_integers_and_Ramanujan's_constant

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • kavyap
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • InstantRegret
  • GTA5RPClips
  • Youngstown
  • everett
  • slotface
  • rosin
  • osvaldo12
  • mdbf
  • ngwrru68w68
  • JUstTest
  • cubers
  • modclub
  • normalnudes
  • tester
  • khanakhh
  • Durango
  • ethstaker
  • tacticalgear
  • Leos
  • provamag3
  • anitta
  • cisconetworking
  • lostlight
  • All magazines