All posts/opinions/views my own :)
I heard through the grapevine that my colleague Daniil Smoliakov is looking for new opportunities!
He's one of the most talented and tireless people I've ever seen at work so he deserves the praise 😊
Try and get him while you can! 🏃💨
www.linkedin.com/in/daniil-sm...
I heard through the grapevine that my colleague Daniil Smoliakov is looking for new opportunities!
He's one of the most talented and tireless people I've ever seen at work so he deserves the praise 😊
Try and get him while you can! 🏃💨
www.linkedin.com/in/daniil-sm...
🟥🟩🟦 Give us the sub-pixels!!! 🟥🟩🟦
🟥🟩🟦 Give us the sub-pixels!!! 🟥🟩🟦
Part of the message I'm trying to send here is that this isn't too hard to do. I'd love for people to have a go with their own implementations and share improvements if they can! 🧡
Part of the message I'm trying to send here is that this isn't too hard to do. I'd love for people to have a go with their own implementations and share improvements if they can! 🧡
The high-res stuff is in the post anyway, like this one with a bunch of different fonts rendered at high res straight out of the test app I was running this on:
osor.io/text/lorem_i...
The high-res stuff is in the post anyway, like this one with a bunch of different fonts rendered at high res straight out of the test app I was running this on:
osor.io/text/lorem_i...
This topic gets way more coverage but I've never seen it done/presented like this, so trying to make my contribution 🙏
This topic gets way more coverage but I've never seen it done/presented like this, so trying to make my contribution 🙏
I found myself with enough bits and pieces related to text rendering to warrant a write-up. So here it is! 😱
osor.io/text
Spiced up with direct vector rendering, sub-pixel anti-aliasing, run-time atlas packing, temporal accumulation, and more!
I hope you enjoy it! 🧡
I found myself with enough bits and pieces related to text rendering to warrant a write-up. So here it is! 😱
osor.io/text
Spiced up with direct vector rendering, sub-pixel anti-aliasing, run-time atlas packing, temporal accumulation, and more!
I hope you enjoy it! 🧡
🧨🧨🧨🧨🧨🧨🧨
🧨🧨🧨🧨🧨🧨🧨
Unfortunately it was a one-off build since I don’t have much time these days for this kind of project 😔
I would encourage people to attempt their own custom builds though. Or look for custom controller/arcade-stick builders directly since there’s some already out there 🙏
Unfortunately it was a one-off build since I don’t have much time these days for this kind of project 😔
I would encourage people to attempt their own custom builds though. Or look for custom controller/arcade-stick builders directly since there’s some already out there 🙏
The local offset within the wave comes from WavePrefixCountBits, since it's just the count of how many threads with a lower index are also writing one element.
The local offset within the wave comes from WavePrefixCountBits, since it's just the count of how many threads with a lower index are also writing one element.
WaveReadLaneFirst/WavePrefixCountBits sorts you out, here is how it'd look:
WaveReadLaneFirst/WavePrefixCountBits sorts you out, here is how it'd look:
It's a good idea to minimize this by doing the global write once per wave or group.
A neat trick is to also scalarize on the shader/draw for when a wave sees different values there 🙃
It's a good idea to minimize this by doing the global write once per wave or group.
A neat trick is to also scalarize on the shader/draw for when a wave sees different values there 🙃
(Prepare for the bsky video butchering though)
(Prepare for the bsky video butchering though)
Some of the other tile-based approaches I tried struggled with this, since they'd need to dispatch multiple resolve tiles per tile on-screen.
Some of the other tile-based approaches I tried struggled with this, since they'd need to dispatch multiple resolve tiles per tile on-screen.
If a pixel is not seeing any local lights, you can dispatch a version of the resolve shader that has all the local light code compiled out. Or if a pixel is fully in shadow from directional light, nuke all that code too, etc...
If a pixel is not seeing any local lights, you can dispatch a version of the resolve shader that has all the local light code compiled out. Or if a pixel is fully in shadow from directional light, nuke all that code too, etc...
With this you can do software VRS easily, both spatially and temporally, which is super cool! You can just write any logic to decide how the visibility buffer values map to a sample to resolve.
With this you can do software VRS easily, both spatially and temporally, which is super cool! You can just write any logic to decide how the visibility buffer values map to a sample to resolve.