-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MVP Task List #54
Comments
@ncthbrt Does this sound good? |
That seems good. Though how does the language server work without a manifest for modules? Just thinking about bevy's use case |
@ncthbrt Really good question. My thoughts are In the first round, they'll just use their existing heuristics to find files. (e.g. Only analyze the open file) And after the MVP, we can fully standardise it and make it part of what linkers understand. I wanted to break it up into smaller steps, because just getting language servers to accept wesl syntax at all might be quite a lot of effort. |
While that makes sense, it is a bit unfortunate as this immediately rules out bevy as an initial consumer unless we somehow special case it. |
Right, a language server couldn't resolve Well, time for me to write up a minimal Is there anything else that Bevy needs? |
Conditional compilation for sure. And the ability to import bindings are a
must.
The ability to integrate with the asset loader system is also important.
The loader uses the asset path to determine what asset loader and asset source to use.
But bevy also uses the module name directive in the source to locate a module from within a shader once it _was_ loaded. So that needs to be solved.
…On Thu, 10 Oct 2024 at 12:09, stefnotch ***@***.***> wrote:
Right, a language server couldn't resolve import
bevy_pbr::some::absolute::path without a wesl.toml.
The Well, time for me to write up a minimal wesl.toml proposal for
language servers.
Is there anything else that Bevy needs?
—
Reply to this email directly, view it on GitHub
<#54 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCJEWIPSF3I4QMCJK6KCQDZ2ZG4BAVCNFSM6AAAAABPVBZNECVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBUGY3DIOBXGU>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
The situations in the WGSL spec where overrides are not allowed but constants are:
So, it seems it's still the case that arrays sizes must be const-expressions. except that one edge case. Still, I'm checking that mark anyways. Linker implementations will always be free to override an import (which is the trick I used in my personal project) which allows injecting arbitrary code. It does not have to be part of the WESL standard for now. For libraries, they cannot use this non-standard extension and would therefore have to abstain themselves from hitting one of these edge-cases. |
@k2d222 Thank you very much! And good to know what the workaround is, and what limitations it comes with. I suppose we'll have to address it in a future version. :) |
this vscode doc left me a little confused about the need for tree-sitter. It seems to suggest that a language server is all you need, but I'm not sure if I'm reading it correctly.. |
Since we're inviting more people to review this issue, I'd suggest we add a brief intro above the task list, defining the MVP, its goals and context with our work. |
Since @k2d222 your demo showed we could generate new If we think an MVP language server might complain unless we rewrite elements that are already in the WGSL, we could do that with e.g. your unitialized consts proposal. (And for MVP, I suppose we could just make these global, e.g. not worry about package or module namespacing). |
This is mostly bikeshedding but I'm somewhat against the syntax of link rather than the idea in principle. |
Introduction
We are building a minimal version of WESL, to let our first users enjoy a modular shading language along with IDE tooling! In this version, we're limiting ourselves to the bare necessities, and are prioritizing the most common use-cases. If you need a feature, let us know. Or even better, join in and help us ship this sooner.
We invite everyone to come and help out! There's a lot to do, from setting up a web documentation to extending language servers.
Tasklist
Sorted in order of importance
The text was updated successfully, but these errors were encountered: