jms55.github.io/posts/2025-0...
jms55.github.io/posts/2025-0...
It's kind of fun to look at the profile, I _think_ this is a series of upsample/downsample convolutions for a U-net, but who knows!
It's kind of fun to look at the profile, I _think_ this is a series of upsample/downsample convolutions for a U-net, but who knows!
So I tried workgroup-level resampling, which is mostly artifact free. Greatly improves quality! ...At double the cost (6.4->12ms) :(
Left is main, right is workgroup.
So I tried workgroup-level resampling, which is mostly artifact free. Greatly improves quality! ...At double the cost (6.4->12ms) :(
Left is main, right is workgroup.
I tried jittering the thread ID to get subgroups to overlap across frames, and it helped a bit, but didn't entirely eliminate the artifacts :(
I tried jittering the thread ID to get subgroups to overlap across frames, and it helped a bit, but didn't entirely eliminate the artifacts :(
This is the initial trace on an RX 9070. Yes, you read it right, 22ms is spent on the first dispatch (32 initial candidates + visibility test + temporal resampling).
This is the initial trace on an RX 9070. Yes, you read it right, 22ms is spent on the first dispatch (32 initial candidates + visibility test + temporal resampling).
@gpuopen.bsky.social's paper gpuopen.com/download/Eff... in particular was a big quality increase, for a simple change.
@gpuopen.bsky.social's paper gpuopen.com/download/Eff... in particular was a big quality increase, for a simple change.
At this rate I'm hoping to get raytraced direct lighting into Bevy 0.17, although it'll probably depend on how long it takes me to polish the DLSS integration.
At this rate I'm hoping to get raytraced direct lighting into Bevy 0.17, although it'll probably depend on how long it takes me to polish the DLSS integration.
I think that this design is ultimately a dead-end, the nesting leads to the same issue with usability that I feel Godot has.
I think that this design is ultimately a dead-end, the nesting leads to the same issue with usability that I feel Godot has.
Hardest part was actually just figuring out units. Bevy uses illuminance (lux) for directional lights, but I need it in luminance (just convincing myself that this was true took a long while).
The conversion process is a little tricky (thread below).
Hardest part was actually just figuring out units. Bevy uses illuminance (lux) for directional lights, but I need it in luminance (just convincing myself that this was true took a long while).
The conversion process is a little tricky (thread below).