David Maas 🪄

35 Followers
74 Following
77 Posts

I'm a software alchemist transmuting math into pixels. Sr. Programmer at Santa Monica Studio. Perpetually bad at social media.

he/him

Bloghttps://pixelalchemy.dev/
Funding: if your mid/large business uses Dear ImGui - and maybe you are approaching end of year budget/planning etc. - please consider reaching out (PM/email) so I can help you help Dear ImGui !
@c0de517e Can't wait! Big thanks to everyone helping organize again this year!

REAC 2025 talk details have been posted on the website! Register today - it's free! https://enginearchitecture.org/2025.htm

If you can share this message, we'd appreciate it. Thanks, and see you soon!

REAC: 2025 Conference.

@aeva Also also: I don't think it is, but if this is at all related to your C# project and you end up liking PortAudio, here are the C# bindings I made for that work project: https://github.com/horizongir/PortAudio.NET
(Barely tested on Linux, but should work. If you can confirm it works for you I can find some time to add Linux to our CI and publish NuGet packages.)
GitHub - horizongir/PortAudio.NET: WIP low-level C# bindings for PortAudio.

WIP low-level C# bindings for PortAudio. Contribute to horizongir/PortAudio.NET development by creating an account on GitHub.

GitHub

@aeva Also I don't believe you need to uninstall PipeWire to use ALSA directly. I think you can just stop the PipeWire service.

Also I stumbled upon this when checking if PortAudio supported PipeWire: https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PipeWire#setting-buffer-size-quantum
You've maybe already seen it, but that PIPEWIRE_LATENCY environment variable might be helpful.

The linked FAQ also mentions a "Pro Audio Profile" that sounds very useful for what you're doing.

Config PipeWire · Wiki · PipeWire / pipewire · GitLab

Multimedia processing graphs

GitLab

@aeva I'm a little late, but if you want to test things with ALSA or JACK without dealing with them directly, we've been pretty happy with PortAudio at work. https://www.portaudio.com/

We use it to sling 32 channels of latency-sensitive audio on Windows. (In our case with WDMKS, which ≈ ALSA on Windows.)

As far as abstractions go it's pretty thin and focused on low-level.

(There's no backend for PipeWire directly, but my understanding is PipeWire provides a JACK-compatible API that works well.)

PortAudio - an Open-Source Cross-Platform Audio API

PortAudio is a cross platform, open-source, audio I/O library. It provides a very simple API for recording and/or playing sound using a simple callback function.

In today's new blog post, I try to provide some intuition and clear up some misconceptions about early Z cull behavior on desktop GPUs. Have a read if that interests you!

https://therealmjp.github.io/posts/to-earlyz-or-not-to-earlyz/

To Early-Z, or Not To Early-Z

Depth In The Logical Rendering Pipeline Where Does Early-Z Fit In? When Does Early-Z Have To Be Disabled? Discard/Alpha Test Pixel Shader Depth Export UAVs/Storage Textures/Storage Buffers Forcing Early-Z Forced Early-Z With UAVs And Depth Writes Rasterizer Order Views/Fragment Shader Interlock Summary and Conclusion One of the things we often take for granted on GPUs is the idea of early Z testing. It’s the main reason why Z prepasses exist at all, and it’s one of the things that has allowed forward rendering to remain viable without being completely overwhelmed by pixel shader overdraw (instead it merely gets overwhelmed by quad overshading, but I digress).

We're doing the thing!

https://enginearchitecture.org

REAC: Rendering Engine Architecture Conference.

REAC: Rendering Engine Architecture Conference.

@overflo @johanpeitz Ah, you beat me to it! I had the thought to try something similar 😅

🚀 Ascent DX 🪐
My 64x64 tiny #metroidvania game is now out FOR FREE!
🗺️ Explore a lost world
💪 Upgrade powers
🔮 Fulfil your destiny

Get it while it's hot and don't forget to tell a friend! ❤️
👉 http://s.team/a/3384890

#indiegame #pixelart

Ascent DX on Steam

Crashed on a desolate but mysterious planet you find yourself eye to eye with an ancient civilisation. Explore the planet, find powerful upgrades, and fulfill your destiny.