teoxoy
fb9f91a668
[wgpu-core] ray tracing: use error handling helpers
2025-01-13 20:52:55 +01:00
atlv
18471d8e78
Image atomics support ( #6706 )
...
* Image atomics support
* Address feedback
* fix merge
* Fixes
* Add a couple tests
* Update wgpu-types/src/lib.rs
Co-authored-by: Teodor Tanasoaia <28601907+teoxoy@users.noreply.github.com >
* feedback
* feedback
* glsl
* glsl fix
* fix glsl
* fix fix
* fix fix fic
* fix?
* fix
---------
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com >
Co-authored-by: Teodor Tanasoaia <28601907+teoxoy@users.noreply.github.com >
2025-01-13 15:37:12 +00:00
Connor Fitzgerald
b0f1fa66ef
Add VisionOS Support ( #6888 )
...
* Add visionos support
* Use `target_vendor = "apple"`
* Fixes
* Build VisionOS
* Gah
* Bleh
* Typos
---------
Co-authored-by: Guus Waals <_@guusw.nl >
2025-01-10 17:33:58 +00:00
Asher Jingkong Chen
198762e5cc
feat: Add 32-bit floating-point atomics (SHADER_FLOAT32_ATOMIC) ( #6234 )
...
* feat: Add 32-bit floating-point atomics
* Current supported platforms: Metal
* Platforms to support in the future: Vulkan
Related issues or PRs:
* gfx-rs/wgpu#1020
* Add changelog
* Edit changelog
* feat: Add 32-bit float atomics support for Vulkan (SPIR-V shaders)
* atomicSub for f32 in the previous commits is removed.
* Update test
* chore: doc type link
* refactor: Revise float atomics on msl and spv
* Make branches tidy
* Also revise old codes
* Ensure the implementations are supported by Metal and Vulkan backends
* refactor: Renaming flt32 atomics to float32 atomics
* chore: Add link to Vulkan feature
* fix: cargo fmt
* chore: hack comment
* Revert changelog
* Fix: Cargo advisory
* Update wgpu-hal/src/metal/adapter.rs
Co-authored-by: Teodor Tanasoaia <28601907+teoxoy@users.noreply.github.com >
* Update naga/src/lib.rs
Co-authored-by: Teodor Tanasoaia <28601907+teoxoy@users.noreply.github.com >
* Adjust feature flag position
---------
Co-authored-by: Teodor Tanasoaia <28601907+teoxoy@users.noreply.github.com >
2025-01-09 16:03:47 +00:00
Connor Fitzgerald
fabcba8f9a
Refine Multi-Draw-Indirect ( #6870 )
2025-01-07 13:52:42 +01:00
Vecvec
658052885a
Use transform_buffer_offset when initialising transform_buffer. ( #6864 )
...
* use `transform_buffer_offset` instead of `index_buffer_offset` in part of the initialisation of transform_buffer.
* Format.
* Changelog.
* Only unwrap transform alignment once.
2025-01-07 03:01:50 -05:00
Connor Fitzgerald
4124fbfff1
Raise Vulkan/DX12/GL max_color_attachment_bytes_per_sample Limit ( #6866 )
2025-01-06 20:23:47 -05:00
Andreas Reich
fb210ab363
Pass InstanceDescriptor by reference and make it clonable ( #6849 )
2025-01-06 15:40:30 -05:00
Samson
fb17ee83fd
[core] More vertex buffer validation ( #6804 )
2025-01-02 15:48:40 -05:00
dependabot[bot]
7c75ac7aa2
chore(deps): bump the patch-updates group with 19 updates ( #6810 )
...
* chore(deps): bump the patch-updates group with 19 updates
Bumps the patch-updates group with 19 updates:
| Package | From | To |
| --- | --- | --- |
| [anyhow](https://github.com/dtolnay/anyhow ) | `1.0.94` | `1.0.95` |
| [argh](https://github.com/google/argh ) | `0.1.12` | `0.1.13` |
| [bytemuck](https://github.com/Lokathor/bytemuck ) | `1.20.0` | `1.21.0` |
| [env_logger](https://github.com/rust-cli/env_logger ) | `0.11.5` | `0.11.6` |
| [itertools](https://github.com/rust-itertools/itertools ) | `0.10.5` | `0.13.0` |
| [libc](https://github.com/rust-lang/libc ) | `0.2.168` | `0.2.169` |
| [png](https://github.com/image-rs/image-png ) | `0.17.15` | `0.17.16` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.133` | `1.0.134` |
| [gpu-descriptor](https://github.com/zakarumych/gpu-descriptor ) | `0.3.0` | `0.3.1` |
| [syn](https://github.com/dtolnay/syn ) | `2.0.90` | `2.0.91` |
| [argh_derive](https://github.com/google/argh ) | `0.1.12` | `0.1.13` |
| [argh_shared](https://github.com/google/argh ) | `0.1.12` | `0.1.13` |
| [bytemuck_derive](https://github.com/Lokathor/bytemuck ) | `1.8.0` | `1.8.1` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.4` | `1.2.5` |
| [const_panic](https://github.com/rodrimati1992/const_panic ) | `0.2.10` | `0.2.11` |
| [env_filter](https://github.com/rust-cli/env_logger ) | `0.1.2` | `0.1.3` |
| [hashbrown](https://github.com/rust-lang/hashbrown ) | `0.14.5` | `0.15.2` |
| [home](https://github.com/rust-lang/cargo ) | `0.5.9` | `0.5.11` |
| [object](https://github.com/gimli-rs/object ) | `0.36.5` | `0.36.7` |
Updates `anyhow` from 1.0.94 to 1.0.95
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.94...1.0.95 )
Updates `argh` from 0.1.12 to 0.1.13
- [Release notes](https://github.com/google/argh/releases )
- [Commits](https://github.com/google/argh/compare/0.1.12...0.1.13 )
Updates `bytemuck` from 1.20.0 to 1.21.0
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md )
- [Commits](https://github.com/Lokathor/bytemuck/compare/v1.20.0...v1.21.0 )
Updates `env_logger` from 0.11.5 to 0.11.6
- [Release notes](https://github.com/rust-cli/env_logger/releases )
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-cli/env_logger/compare/v0.11.5...v0.11.6 )
Updates `itertools` from 0.10.5 to 0.13.0
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-itertools/itertools/compare/v0.10.5...v0.13.0 )
Updates `libc` from 0.2.168 to 0.2.169
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.169/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.168...0.2.169 )
Updates `png` from 0.17.15 to 0.17.16
- [Changelog](https://github.com/image-rs/image-png/blob/master/CHANGES.md )
- [Commits](https://github.com/image-rs/image-png/compare/v0.17.15...v0.17.16 )
Updates `serde_json` from 1.0.133 to 1.0.134
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.133...v1.0.134 )
Updates `gpu-descriptor` from 0.3.0 to 0.3.1
- [Changelog](https://github.com/zakarumych/gpu-descriptor/blob/master/CHANGELOG.md )
- [Commits](https://github.com/zakarumych/gpu-descriptor/commits )
Updates `syn` from 2.0.90 to 2.0.91
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/2.0.90...2.0.91 )
Updates `argh_derive` from 0.1.12 to 0.1.13
- [Release notes](https://github.com/google/argh/releases )
- [Commits](https://github.com/google/argh/compare/0.1.12...0.1.13 )
Updates `argh_shared` from 0.1.12 to 0.1.13
- [Release notes](https://github.com/google/argh/releases )
- [Commits](https://github.com/google/argh/compare/0.1.12...0.1.13 )
Updates `bytemuck_derive` from 1.8.0 to 1.8.1
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md )
- [Commits](https://github.com/Lokathor/bytemuck/compare/bytemuck_derive-v1.8.0...bytemuck_derive-v1.8.1 )
Updates `cc` from 1.2.4 to 1.2.5
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.4...cc-v1.2.5 )
Updates `const_panic` from 0.2.10 to 0.2.11
- [Release notes](https://github.com/rodrimati1992/const_panic/releases )
- [Changelog](https://github.com/rodrimati1992/const_panic/blob/main/Changelog.md )
- [Commits](https://github.com/rodrimati1992/const_panic/commits )
Updates `env_filter` from 0.1.2 to 0.1.3
- [Release notes](https://github.com/rust-cli/env_logger/releases )
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-cli/env_logger/compare/env_filter-v0.1.2...env_filter-v0.1.3 )
Updates `hashbrown` from 0.14.5 to 0.15.2
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/hashbrown/commits )
Updates `home` from 0.5.9 to 0.5.11
- [Changelog](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cargo/compare/home-0.5.9...home-0.5.11 )
Updates `object` from 0.36.5 to 0.36.7
- [Changelog](https://github.com/gimli-rs/object/blob/master/CHANGELOG.md )
- [Commits](https://github.com/gimli-rs/object/compare/0.36.5...0.36.7 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: argh
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: bytemuck
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: patch-updates
- dependency-name: env_logger
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: itertools
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: patch-updates
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: png
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: gpu-descriptor
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: syn
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: argh_derive
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: argh_shared
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: bytemuck_derive
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: cc
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: const_panic
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: env_filter
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: hashbrown
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: patch-updates
- dependency-name: home
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: patch-updates
- dependency-name: object
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: patch-updates
...
Signed-off-by: dependabot[bot] <support@github.com >
* Fix Errors
* Get Fuzzed
* Unbreak
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com >
2024-12-23 19:34:20 -05:00
Samson
48b2f1d4f7
[core] Remove log::error! that are also reported as validation Err ( #6817 )
2024-12-23 18:07:19 -05:00
Samson
ee3ae0e549
[core] Use higher level LoadOp,StoreOp ( #6785 )
2024-12-22 21:48:11 -05:00
teoxoy
a5c3be575e
remove device arg from all CommandEncoder methods
2024-12-20 15:44:15 +01:00
teoxoy
973def4c53
remove old todo
2024-12-20 15:44:15 +01:00
teoxoy
7b2a561402
make open_pass panic if the encoder is open
2024-12-20 15:44:15 +01:00
teoxoy
0fed4dbc16
make close_and_swap panic if the encoder is not open
2024-12-20 15:44:15 +01:00
teoxoy
486967632c
rename close to close_if_open and add close that panics if the encoder is not open
2024-12-20 15:44:15 +01:00
teoxoy
7a476fcbf4
use open_pass in some more places
2024-12-20 15:44:15 +01:00
teoxoy
062999658a
let open_pass handle hal label mapping
2024-12-20 15:44:15 +01:00
teoxoy
38e09d02cc
update code that opens and closes the encoder to
...
go through `CommandEncoder`'s methods
So that `CommandEncoder.is_open` is always accurate.
2024-12-20 15:44:15 +01:00
Teodor Tanasoaia
53f40794f2
move logic into TextureStateSet ( #6689 )
2024-12-18 22:40:26 +00:00
Samson
d63ca09c34
Add usage to TextureViewDescriptor ( #6755 )
...
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com >
2024-12-18 18:38:28 +01:00
Erich Gubler
1f93ea0692
chore: resolve clippy::large_enum_variant
2024-12-17 13:30:52 -05:00
Teodor Tanasoaia
04a10405b3
[d3d12] fix being able to use dispatchWorkgroupsIndirect without validation ( #6767 )
2024-12-17 17:10:00 +01:00
Erich Gubler
964a8d99d2
chore: satisfy clippy::unnecessary_map_or ( #6710 )
...
Started firing in Rust 1.84.
2024-12-16 17:26:12 -05:00
Samson
f6fec82853
[core] Allow depthClearValue to be empty ( #6753 )
2024-12-16 16:21:06 -05:00
Christofer Nolander
21ff9686a7
Add 1-component ({s,u}{int,norm}{8,16}, float16) and unorm8x4-bgra vertex formats ( #6632 )
...
* feat: add missing 8/16-bit vertex formats (and 8-bit bgra) #6614
* add tests for 1-component vertex formats (and bgra)
* metal: unpacking function for 1-component vertex formats
* test: use proper alignment for float16 vertex format
* changelog: new vertex formats
2024-12-16 10:18:50 -05:00
Samson
4da7c263ed
[core] Support optional ops in PassChannel ( #6716 )
...
* Support optional ops in PassChannel
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com >
* respect view format aspect
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com >
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com >
2024-12-16 12:20:20 +01:00
Connor Fitzgerald
411ffa7a5a
Make Force Loop Bounding Optional ( #6662 )
...
* Make Force Loop Bounding Optional
Co-authored-by: rudderbucky <anandkwork7@gmail.com >
* Deprecate and Rename
---------
Co-authored-by: rudderbucky <anandkwork7@gmail.com >
2024-12-16 04:23:22 -05:00
Nicolas Silva
3bcfe8437c
Avoid cloning Arcs unnecessarily when iterating trackers ( #6721 )
...
* Avoid cloning Arcs unnecessarily when iterating trackers
* Changelog entry
2024-12-13 13:15:22 -05:00
Samson
8f82992b9f
Inline PassChannel into ColorAttachment ( #6704 )
...
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com >
2024-12-12 15:57:05 +01:00
Erich Gubler
727992e844
chore: satisfy clippy::unused_qualification ( #6712 )
2024-12-12 00:47:48 -05:00
atlv
5543961a71
Replace Range<T> with StateTransition<T> ( #6703 )
...
Co-authored-by: Erich Gubler <erichdongubler@gmail.com >
2024-12-11 16:11:39 +01:00
Teodor Tanasoaia
dc5bd9dbac
Remove BufferUses::STORAGE_WRITE_ONLY ( #6691 )
2024-12-11 02:15:11 -05:00
Teodor Tanasoaia
a1fc2ba76d
fix being able to use storage textures without TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES ( #6690 )
...
Co-authored-by: Erich Gubler <erichdongubler@gmail.com >
2024-12-10 15:34:38 -05:00
Andreas Reich
ed694eda89
Improve logging around surface creation ( #6511 )
...
* additional debug logging for request_adapter, demote some messages to debug
* unrelated log messages that annoyed me in Vulkan: debug utils disabled is now `debug`, it being enabled is `info`
* document compatible_surface requirement for WebGL directly on wgt::RequestAdapterOptions
* make adapterenumarge_adapters & request_adapters results info log again when api_log is enabled
2024-12-08 14:44:55 +01:00
Nathan Adams
11b51693d3
Fix dropping Device if not using indirect validation ( #6681 )
2024-12-07 22:17:12 +01:00
Erich Gubler
f8b67a752a
docs: remove last paragraph from CommandBuffer::data ( #6680 )
2024-12-07 01:30:09 -05:00
Connor Fitzgerald
4e139ed199
Rework wgpu-rs Context ( #6619 )
2024-12-04 12:00:14 -05:00
atlv
0b6571a68d
Align Storage Access enums to spec ( #6642 )
2024-12-03 17:37:23 +01:00
teoxoy
02b28e28f0
use EncoderGuard for the other command encoder operations
...
The spec requires us to invalidate the encoder if there was any error during the body of these operations.
2024-12-02 15:59:14 -08:00
teoxoy
5e1fbd7176
move CommandEncoderStatus on the CommandBuffer and change its variants to hold CommandBufferMutable
...
This makes the code more straightforward, we were previously holding invalidity state in 2 places: `CommandBuffer::data` could hold `None` and in `CommandEncoderStatus::Error`.
This commit also implements `Drop` for `CommandEncoder` which makes the destruction/reclamation code automatic. We were previously not reclaiming all command encoders (`CommandBufferMutable::destroy` didn't call `release_encoder`) even though all encoders are coming from a pool.
2024-12-02 15:59:14 -08:00
teoxoy
68d336ef79
use CommandEncoder for BakedCommands & EncoderInFlight
2024-12-02 15:59:14 -08:00
teoxoy
ba416c1dad
remove hal::Device::destroy_command_encoder, use Drop implementations instead
...
Co-Authored-By: Erich Gubler <erichdongubler@gmail.com >
2024-12-02 15:59:14 -08:00
atlv
cf793f7c0f
clean up bitflag serde ( #6644 )
2024-12-02 16:03:37 -05:00
atlv
d5253be7fd
rename TFFF::STORAGE_READ_WRITE to STORAGE_WRITE ( #6622 )
2024-12-01 23:26:47 -05:00
atlv
5e52a313b9
rename TFC::STORAGE to STORAGE_WRITE ( #6621 )
2024-12-01 16:53:27 -06:00
Teodor Tanasoaia
1a643291c2
Simplify WeakVec ( #6587 )
...
* simplify `WeakVec`
* iterate backwards & avoid rescans
Co-authored-by: Jim Blandy <jimb@red-bean.com >
---------
Co-authored-by: Jim Blandy <jimb@red-bean.com >
2024-11-27 07:16:11 -08:00
Jim Blandy
8fce9f6191
[core] Make insert_or_merge a method of BufferUsageScope.
...
Change `wgpu_core::track::buffer::insert_or_merge` into a
method of `BufferUsageScope`, replacing three arguments with `self`.
2024-11-27 02:00:03 -05:00
Jim Blandy
eaa5fea40d
[core] Make insert_or_barrier_update a method of BufferTracker.
...
Change `wgpu_core::track::buffer::insert_or_barrier_update` into a
method of `BufferTracker`, and replace four arguments with `self`.
2024-11-27 02:00:03 -05:00