- From: Gregg Tavares <gman@google.com>
- Date: Tue, 16 Nov 2021 15:42:45 -0800
- To: Jeremy Sachs <jeremysachs@rezmason.net>
- Cc: Brendan Duncan <brendan.duncan@unity3d.com>, public-gpu@w3.org
- Message-ID: <CAKZ+BNoyzZjx=AwnGYhBnpn6zOnVt3z-H=sCaLoxmTS-WN5umQ@mail.gmail.com>
I don't know if this is similar or not but twgl has structure setters https://twgljs.org/#setting-uniform-and-uniformblock-structures-and-arrays It does the same for uniform blocks given reflection data for a uniform block On Tue, Nov 16, 2021 at 2:22 PM Jeremy Sachs <jeremysachs@rezmason.net> wrote: > Hi Brendan! Thanks for this! > > I think this work is basically essential. I imagine you had to tackle > uniform buffer layout on a personal WebGPU project, and then packaged up > your existing solution to help other people. I've wound up doing something > similar ( https://github.com/Rezmason/matrix/blob/master/lib/gpu-buffer.js ), > though I didn’t go as far as you did and extract bind group information. > > The way I see it, a solution similar to gl-matrix ( https://glmatrix.net ) > for composing data to send to the GPU will have a big impact on the rate of > adoption of WebGPU by enthusiasts who work outside of ThreeJS, Babylon.js > and so on. Having a common solution, the sooner the better, would be > beneficial, because otherwise we’ll have a partially implemented library > for every enthusiast! :D > > I don’t know what your bandwidth and priorities are, but would you (and > anyone else I suppose) be interested in collaborating on this? I’d also be > interested in chatting with Brandon Jones about learning from the design > and adoption of gl-matrix. > > In the meantime, I’ll give your library a try in a branch before long. :) > > -Jeremy Sachs > > > On Nov 15, 2021, at 8:12 PM, Brendan Duncan <brendan.duncan@unity3d.com> > wrote: > > Hi WebGPU people, > > I wanted to share a WebGPU utility project I wrote recently and put up on > github, wgsl_reflect: > https://github.com/brendan-duncan/wgsl_reflect > > wgsl_reflect is a Javascript library for parsing and analyzing WGSL > shaders. It has a custom WGSL parser which generates an AST for the shader. > It can then analyze the AST and provide all sorts of static analysis and > reflection information about the shader. For example, it can report all of > the resource bind groups in the shader, tell you what uniform buffers it > has, all of the members of those uniform buffers, the type, size, and > offsets of those block members, etc. > > I wrote it because I wanted a way to take in user authored WGSL shaders, > without the user having to provide additional data for the layout of the > uniform buffers in the shaders. Calculating buffer member offsets isn't > the easiest thing to do, with all of the alignment rules. I wanted to be > able to extract that information automatically from the shader itself. > > It's still a work-in-progress, needs some polish, error handling, and > documentation. I hope others find it useful. > > Brendan Duncan > > >
Received on Tuesday, 16 November 2021 23:43:10 UTC