Skip to content
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

[wgpu-hal] Inline RayQuery Support #3507

Merged
merged 57 commits into from
Dec 6, 2023

Conversation

daniel-keitel
Copy link
Contributor

@daniel-keitel daniel-keitel commented Feb 20, 2023

Checklist

  • Run cargo clippy.
  • Run RUSTFLAGS=--cfg=web_sys_unstable_apis cargo clippy --target wasm32-unknown-unknown if applicable.
  • Add change to CHANGELOG.md. See simple instructions inside file.
  • Consider unsafe_ops_in_unsafe_fn Enable unsafe_ops_in_unsafe_fn lint in all workspaces #3044
  • Consider DX12 for API compatibility
  • Acceleration Structure Updates

Future Work

Connections
#1040
#3020 original PR
gfx-rs/naga#2256

Description
Basic Vulkan ray query and acceleration structure support.

This pull request is the continuation of @expenses PR #3020.

The Api is designed to work with a DirectX12 Implementation.

image

Testing
Tested with example application (ray-traced-triangle)

@expenses
Copy link
Contributor

Just did a brief look over this again - I think the code is fine but the suggestions from the original PR should probably still be applied.

@daniel-keitel
Copy link
Contributor Author

All suggestions from the original PR: #3020 (review)
are applied. All other comments where considered and resulted in code changes.

I will look over the API differences between Vulkan and DX12 Before I consider this PR "Ready for review".

@daniel-keitel daniel-keitel marked this pull request as ready for review March 1, 2023 07:27
@daniel-keitel
Copy link
Contributor Author

It is ready for review, after I had a look at the failed tests.

Copy link
Member

@cwfitzgerald cwfitzgerald left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for taking so long to review this, we'll be better about this going forward.

This looks great! Some smaller nits and needs a rebase, but let's get this in!

wgpu-hal/Cargo.toml Outdated Show resolved Hide resolved
wgpu-hal/examples/ray-traced-triangle/shader.comp Outdated Show resolved Hide resolved
wgpu-hal/examples/ray-traced-triangle/shader.comp Outdated Show resolved Hide resolved
wgpu-hal/src/vulkan/device.rs Outdated Show resolved Hide resolved
wgpu-hal/src/vulkan/command.rs Outdated Show resolved Hide resolved
wgpu-hal/examples/ray-traced-triangle/main.rs Outdated Show resolved Hide resolved
wgpu-hal/examples/ray-traced-triangle/main.rs Outdated Show resolved Hide resolved
wgpu-hal/examples/ray-traced-triangle/main.rs Show resolved Hide resolved
@cwfitzgerald
Copy link
Member

(Please re-request my review when changes are addressed!)

@JMS55
Copy link
Contributor

JMS55 commented Dec 1, 2023

Looks like this PR needs rebasing btw. Happy to see more progress on it though, thank you!

@cwfitzgerald cwfitzgerald self-requested a review December 6, 2023 20:39
@cwfitzgerald cwfitzgerald enabled auto-merge (squash) December 6, 2023 20:53
@cwfitzgerald cwfitzgerald merged commit 0f4df52 into gfx-rs:trunk Dec 6, 2023
27 checks passed
bradwerth pushed a commit to bradwerth/wgpu that referenced this pull request Dec 8, 2023
Co-authored-by: JMS55 <[email protected]>
Co-authored-by: Ashley Ruglys <[email protected]>
Co-authored-by: Connor Fitzgerald <[email protected]>
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request Dec 9, 2023
…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
aosmond pushed a commit to aosmond/gecko that referenced this pull request Dec 10, 2023
…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
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this pull request Dec 12, 2023
…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
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this pull request Dec 12, 2023
…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
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this pull request Dec 12, 2023
…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
@teoxoy teoxoy mentioned this pull request Apr 10, 2024
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants