- From: Brendan Duncan <brendan.duncan@unity3d.com>
- Date: Tue, 16 Nov 2021 08:47:02 -0800
- To: Corentin Wallez <cwallez@google.com>
- Cc: public-gpu@w3.org
- Message-ID: <CACADf_Os4uGva3kWcuCsQjT_Nbnj-k7pDm8AG_=gbOZ5x92L+A@mail.gmail.com>
Thanks, Corentin! Good point about entry points, I just added that. `reflect.entry` will now have the map of entry points, where `reflect.entry.fragment.name` would be the name of the fragment entry point. When I get to more robust error checking, I'll have it let you know if there are any non-standard entry points, or an entry point defined more than once. Brendan On Tue, Nov 16, 2021 at 6:37 AM Corentin Wallez <cwallez@google.com> wrote: > Thanks for sharing Brendan, I'm sure a lot of people will find the library > super useful! Kai made a library (which I can find anymore) that abuses > Javascript getters and setters to allow building data that looks like > objects but internally modify an ArrayBuffer that has the same layout as > WGSL. The combination of the two libs would feel like magic :) > > One side note, it seems that the lib doesn't allow getting reflection for > a specific entrypoint. The list of bindings is per-entrypoint of the > shader, so I think that would be useful to developers too when they have > shaders with multiple entrypoints. > > Cheers, > > Corentin > > On Tue, Nov 16, 2021 at 10:28 AM 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 16:47:27 UTC