Conversation
|
I think the better way to go about this is to call https://docs.rs/naga/0.14.1/naga/valid/struct.Validator.html#method.validate The nice thing about this is that you can then at least skip the parsing on native wgpu since you're allowed to pass in a naga module for creating the shader module https://github.com/gfx-rs/wgpu/blob/trunk/wgpu/src/lib.rs#L576 |
|
What you are describing is a different use-case, one which I've used pretty successfully so far! I'm talking specifically about passing raw SPIRV modules, which I would generate externally first. Wgpu currently does a bunch of validation, including using the Naga The goal is to replicate exactly what Wgpu does internally, most of this stuff is exposed and easy to re-use. But the whole validation going on in I was told before that large parts of the Cc #3103, which would make this pointless as well. |
|
ah I see, thanks for elaborating, makes sense! I'd be in favor of exposing then as well, but I'd like to hear what @cwfitzgerald says |
cwfitzgerald
left a comment
There was a problem hiding this comment.
I don't love it, but can't argue against it.
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
…eb3c29ef785. r=webgpu-reviewers,supply-chain-reviewers,jimb # Changelog * #4807 Bump wasm-bindgen-test from 0.3.38 to 0.3.39 By dependabot[bot] in gfx-rs/wgpu#4807 * #4830 Use Display instead of Debug to log errors. By nical in gfx-rs/wgpu#4830 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4832 vulkan: fix multi-planar texture creation By xiaopengli89 in gfx-rs/wgpu#4832 * #4758 [vk] remove (old) unused blocklist for dual source blending By teoxoy in gfx-rs/wgpu#4758 * #4828 Remove DX11 backend By valaphee in gfx-rs/wgpu#4828 * #4836 [gl] add support for line and point polygon modes By valaphee in gfx-rs/wgpu#4836 * #4820 Bump futures-lite from 2.0.1 to 2.1.0 By dependabot[bot] in gfx-rs/wgpu#4820 * #4811 Expose shader validation By daxpedda in gfx-rs/wgpu#4811 * #3507 [wgpu-hal] Inline RayQuery Support By daniel-keitel in gfx-rs/wgpu#3507 * #4726 Fix Javascript exception on repeated `BufferSlice::get_mapped_range` calls By DouglasDwyer in gfx-rs/wgpu#4726 * #4841 Remove `expose-ids` Feature By cwfitzgerald in gfx-rs/wgpu#4841 * #4843 Some Minor `wgpu-core` Cleanups By cwfitzgerald in gfx-rs/wgpu#4843 * #4844 Work around cbindgen issue By nical in gfx-rs/wgpu#4844 Differential Revision: https://phabricator.services.mozilla.com/D195735
…eb3c29ef785. r=webgpu-reviewers,supply-chain-reviewers,jimb # Changelog * #4807 Bump wasm-bindgen-test from 0.3.38 to 0.3.39 By dependabot[bot] in gfx-rs/wgpu#4807 * #4830 Use Display instead of Debug to log errors. By nical in gfx-rs/wgpu#4830 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4832 vulkan: fix multi-planar texture creation By xiaopengli89 in gfx-rs/wgpu#4832 * #4758 [vk] remove (old) unused blocklist for dual source blending By teoxoy in gfx-rs/wgpu#4758 * #4828 Remove DX11 backend By valaphee in gfx-rs/wgpu#4828 * #4836 [gl] add support for line and point polygon modes By valaphee in gfx-rs/wgpu#4836 * #4820 Bump futures-lite from 2.0.1 to 2.1.0 By dependabot[bot] in gfx-rs/wgpu#4820 * #4811 Expose shader validation By daxpedda in gfx-rs/wgpu#4811 * #3507 [wgpu-hal] Inline RayQuery Support By daniel-keitel in gfx-rs/wgpu#3507 * #4726 Fix Javascript exception on repeated `BufferSlice::get_mapped_range` calls By DouglasDwyer in gfx-rs/wgpu#4726 * #4841 Remove `expose-ids` Feature By cwfitzgerald in gfx-rs/wgpu#4841 * #4843 Some Minor `wgpu-core` Cleanups By cwfitzgerald in gfx-rs/wgpu#4843 * #4844 Work around cbindgen issue By nical in gfx-rs/wgpu#4844 Differential Revision: https://phabricator.services.mozilla.com/D195735
…eb3c29ef785. r=webgpu-reviewers,supply-chain-reviewers,jimb # Changelog * #4807 Bump wasm-bindgen-test from 0.3.38 to 0.3.39 By dependabot[bot] in gfx-rs/wgpu#4807 * #4830 Use Display instead of Debug to log errors. By nical in gfx-rs/wgpu#4830 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4832 vulkan: fix multi-planar texture creation By xiaopengli89 in gfx-rs/wgpu#4832 * #4758 [vk] remove (old) unused blocklist for dual source blending By teoxoy in gfx-rs/wgpu#4758 * #4828 Remove DX11 backend By valaphee in gfx-rs/wgpu#4828 * #4836 [gl] add support for line and point polygon modes By valaphee in gfx-rs/wgpu#4836 * #4820 Bump futures-lite from 2.0.1 to 2.1.0 By dependabot[bot] in gfx-rs/wgpu#4820 * #4811 Expose shader validation By daxpedda in gfx-rs/wgpu#4811 * #3507 [wgpu-hal] Inline RayQuery Support By daniel-keitel in gfx-rs/wgpu#3507 * #4726 Fix Javascript exception on repeated `BufferSlice::get_mapped_range` calls By DouglasDwyer in gfx-rs/wgpu#4726 * #4841 Remove `expose-ids` Feature By cwfitzgerald in gfx-rs/wgpu#4841 * #4843 Some Minor `wgpu-core` Cleanups By cwfitzgerald in gfx-rs/wgpu#4843 * #4844 Work around cbindgen issue By nical in gfx-rs/wgpu#4844 Differential Revision: https://phabricator.services.mozilla.com/D195735 UltraBlame original commit: 0dfeaf41028d13f9dd98b106e262c1deb255398d
…eb3c29ef785. r=webgpu-reviewers,supply-chain-reviewers,jimb # Changelog * #4807 Bump wasm-bindgen-test from 0.3.38 to 0.3.39 By dependabot[bot] in gfx-rs/wgpu#4807 * #4830 Use Display instead of Debug to log errors. By nical in gfx-rs/wgpu#4830 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4832 vulkan: fix multi-planar texture creation By xiaopengli89 in gfx-rs/wgpu#4832 * #4758 [vk] remove (old) unused blocklist for dual source blending By teoxoy in gfx-rs/wgpu#4758 * #4828 Remove DX11 backend By valaphee in gfx-rs/wgpu#4828 * #4836 [gl] add support for line and point polygon modes By valaphee in gfx-rs/wgpu#4836 * #4820 Bump futures-lite from 2.0.1 to 2.1.0 By dependabot[bot] in gfx-rs/wgpu#4820 * #4811 Expose shader validation By daxpedda in gfx-rs/wgpu#4811 * #3507 [wgpu-hal] Inline RayQuery Support By daniel-keitel in gfx-rs/wgpu#3507 * #4726 Fix Javascript exception on repeated `BufferSlice::get_mapped_range` calls By DouglasDwyer in gfx-rs/wgpu#4726 * #4841 Remove `expose-ids` Feature By cwfitzgerald in gfx-rs/wgpu#4841 * #4843 Some Minor `wgpu-core` Cleanups By cwfitzgerald in gfx-rs/wgpu#4843 * #4844 Work around cbindgen issue By nical in gfx-rs/wgpu#4844 Differential Revision: https://phabricator.services.mozilla.com/D195735 UltraBlame original commit: 0dfeaf41028d13f9dd98b106e262c1deb255398d
…eb3c29ef785. r=webgpu-reviewers,supply-chain-reviewers,jimb # Changelog * #4807 Bump wasm-bindgen-test from 0.3.38 to 0.3.39 By dependabot[bot] in gfx-rs/wgpu#4807 * #4830 Use Display instead of Debug to log errors. By nical in gfx-rs/wgpu#4830 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4832 vulkan: fix multi-planar texture creation By xiaopengli89 in gfx-rs/wgpu#4832 * #4758 [vk] remove (old) unused blocklist for dual source blending By teoxoy in gfx-rs/wgpu#4758 * #4828 Remove DX11 backend By valaphee in gfx-rs/wgpu#4828 * #4836 [gl] add support for line and point polygon modes By valaphee in gfx-rs/wgpu#4836 * #4820 Bump futures-lite from 2.0.1 to 2.1.0 By dependabot[bot] in gfx-rs/wgpu#4820 * #4811 Expose shader validation By daxpedda in gfx-rs/wgpu#4811 * #3507 [wgpu-hal] Inline RayQuery Support By daniel-keitel in gfx-rs/wgpu#3507 * #4726 Fix Javascript exception on repeated `BufferSlice::get_mapped_range` calls By DouglasDwyer in gfx-rs/wgpu#4726 * #4841 Remove `expose-ids` Feature By cwfitzgerald in gfx-rs/wgpu#4841 * #4843 Some Minor `wgpu-core` Cleanups By cwfitzgerald in gfx-rs/wgpu#4843 * #4844 Work around cbindgen issue By nical in gfx-rs/wgpu#4844 Differential Revision: https://phabricator.services.mozilla.com/D195735 UltraBlame original commit: 0dfeaf41028d13f9dd98b106e262c1deb255398d
I was trying to pre-compile shaders while still running the exact same validation that
wgpudoes.Would it be acceptable to expose this module for that purpose?