Email or username:

Password:

Forgot your password?
105 posts total
Raph Levien

The new xilem work has a lot of shiny tech, but I am in many ways even more excited by the community focus.

A number of decisions are explicitly motivated by an opportunity to work with other Rust projects. Using wgpu for our GPU infrastructure should open many doors, and this is not the only such decision.

We're also doing regular office hours every week, which I hope will really help coordinate the community.

I get the sense there really is a will to build all this. I'm excited.

akazaa96

@raph I am excited to see Xilem. Lapce currently does not feel quite right. There's a lot of opaque pointers (widget IDs) moving around that is hard to get right and there's a lot of crashes if you poke the system enough.

Togglebit

@raph
I have read through raphlinus.github.io/rust/gui/2 a few times and I really like the idea of the "id path" and I'm currently exploring that in my own project.

Excited to see what comes out of the Xilem branch!

nilsmartel :fedora:

@raph I am so very hyped!

I thought you mainly work on your own on xilem, is development backed by a company?

Raph Levien

@alyssa I have some intense curiosity about Apple Silicon GPU, and you're probably the #1 expert on this who can speak publicly. One is: if you're implementing Vulkan, does the hardware support barriers with device scope? Metal doesn't export this.

I'm also very curious about the hardware's capability for dynamically spawning work or doing other dynamic things (malloc!) from within a dispatch.

Raph Levien

I'm going on vacation tomorrow for a week, so will probably be around less.

Today I did a bunch of coding on the GPU side of the piet-gpu WGSL port, but didn't wire up the CPU side. So it's work in flight still. I'll likely take it up again when I get back.

500 followers today. Great to see all of you here!

nilsmartel :fedora:

@raph make the most of your vacation and come back well rested and with great memories.

I'm glad you're putting work towards the wgsl port.
It's a rare gem you're building there.
Finding that elaborate wgsl Code is very hard. Resources about it are scarce as it is, and most GPU powered projects simply have one frag and one geometry shader.

Take care!

Raph Levien

A bit of a followup to the barrier miscompilation issue I found. So far in developing piet-gpu I've found about 5 of these, in about 5k lines of GPU shader code. So I estimate if you're writing this kind of intricate compute stuff, you'll likely run into one serious miscompilation every 1000 lines of code.

My goal is to get each of these into an appropriate test. A previous cycle is github.com/KhronosGroup/VK-GL- and will also be featured in an ASPLOS paper.

The new one is:

github.com/gpuweb/cts/issues/1

A bit of a followup to the barrier miscompilation issue I found. So far in developing piet-gpu I've found about 5 of these, in about 5k lines of GPU shader code. So I estimate if you're writing this kind of intricate compute stuff, you'll likely run into one serious miscompilation every 1000 lines of code.

David Neto

@raph Blessed are the test makers.

Great find.

My first theory in the office hours discussion was that the MSL compiler assumed reconvergence after the "if" and then assumed the barrier could be elided because it thought the subgroup was executing reconvergently or in "lockstep".

Who knows what Apple will conclude, though.

emk

@raph That's some pretty amazing bug hunting.

It's been ~15 years since I caught a miscompilation in CPU code. We were using the Quake II engine to simulate gamma radiation (long story), and Carmack's code stored the address of a stack var in a global during a deep recursive call tree.

MSVC did a tail-call jump, destroying the stack frame. Even though the pointer had escaped.

(Or maybe doing that with a pointer is undefined behavior. Honestly, I never remember with C.)

Raph Levien

I posted a retrospective of the Minikin text layout engine to my blog: raphlinus.github.io/text/2022/

This was a project to significantly upgrade Android's text layout capabilities, including complex script support, handling locales (including Han unification for CJK), and a number of other typographic refinements. It's also a pretty good code base, and people working on text should know about it.

Idan Gazit

@raph fantastic post! I love a good peek underneath the surface of "draw letters on screen"

Go Up