You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I'm new here!
My name is John Delaney. I've been a graphics and geometry adjacent programmer for going on 15+ years, now (wow, I feel old). I'm working with the folks at Motif. We're upgrading to 0.19.1, and doing some profiling in chrome I've noticed a pretty hot per frame function: WGPU.29::map_wgt_limits.
TLDR: PBR rendering has skinning on by default and as far as I can tell there isn't a toggle. Every frame, we're setting up storage for skinning. To determine which storage backend to use, we check the Storage Buffer limits from the device. WGPU caches those limits, but the problem is that in a web environment that cache is in JS, so every frame we get a pretty expensive conversion penalty. This doesn't surface on the rust side because its Rust->Rust.
I'm happy to change the above PR to something different, but this is my first proposal for addressing the issue. Maybe it's a stopgap for a future version of wgpu.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hi, I'm new here!
My name is John Delaney. I've been a graphics and geometry adjacent programmer for going on 15+ years, now (wow, I feel old). I'm working with the folks at Motif. We're upgrading to 0.19.1, and doing some profiling in chrome I've noticed a pretty hot per frame function: WGPU.29::map_wgt_limits.
Here is an MR to cache those limits on the render device so we don't incur the conversion penalty every PBR render frame.
TLDR: PBR rendering has skinning on by default and as far as I can tell there isn't a toggle. Every frame, we're setting up storage for skinning. To determine which storage backend to use, we check the Storage Buffer limits from the device. WGPU caches those limits, but the problem is that in a web environment that cache is in JS, so every frame we get a pretty expensive conversion penalty. This doesn't surface on the rust side because its Rust->Rust.
I'm happy to change the above PR to something different, but this is my first proposal for addressing the issue. Maybe it's a stopgap for a future version of wgpu.
All reactions