Jasper St. Pierre
38b6663f3c
validation: Fix type compatibility for streams vs. vertex inputs ( #7600 )
...
The old is_compatible_with handled scalar/scalar, scalar/vector, vector/vector, but was missing vector/scalar.
Since is_compatible_with is only used by vertex shader inputs, and vertex shader inputs can't be matrices (only scalars and vectors), we can actually simplify this by removing the other match and just only checking the kind.
Fixes #7568
2025-04-25 15:08:27 +02:00
teoxoy
6a7aa14fbd
add changelog entry
2025-04-25 12:39:45 +02:00
teoxoy
cc406f919e
[vk] use destructuring for cache keys
...
If fields are unused, they shouldn't be part of the cache key.
2025-04-25 12:39:45 +02:00
teoxoy
d14849df48
[vk] add support for rendering to slices of 3D textures
2025-04-25 12:39:45 +02:00
teoxoy
f728a92366
[vk] add TextureView::raw_format
2025-04-25 12:39:45 +02:00
teoxoy
2d73eb3967
[vk] move framebuffer cache into CommandEncoder
...
This makes texture view destruction cheap since users of wgpu-hal are required to keep resources referenced by encoders alive for at least as long as the encoder is alive.
This is also a prerequisite to implement rendering to slices of 3D textures (by creating temporary texture views).
On the other hand the cache won't be as effective but that is probably ok, we can reevaluate the implementation if it turns out to be a problem.
2025-04-25 12:39:45 +02:00
teoxoy
da8ff2a0d5
[vk] fix raw_pass not being part of FramebufferKey
2025-04-25 12:39:45 +02:00
teoxoy
d4b46d6099
[vk] remove usage of imageless framebuffers
...
Imageless framebuffers are not needed, we know which views will be attached to the render pass already. Even if we wanted to more aggressively cache imageless framebuffers that wouldn't be possible since they still require specifiying view usage, texture usage and view formats.
Removing usage of imageless framebuffers simplifies the code substantially.
2025-04-25 12:39:45 +02:00
teoxoy
2bb8325f85
[vk] require VK_KHR_maintenance1 (in preparation for creating 2D texture views from slices of 3D textures)
2025-04-25 12:39:45 +02:00
teoxoy
d714e3d95a
[d3d12,metal,gl] add support for rendering to slices of 3D textures
2025-04-25 12:39:45 +02:00
teoxoy
15477b84a9
[wgpu-hal] make begin_render_pass fallible
2025-04-25 12:39:45 +02:00
teoxoy
5ecc48d494
add RenderPassColorAttachment::depth_slice
2025-04-25 12:39:45 +02:00
teoxoy
6058dd4296
[wgpu-core] allow 2D-Array texture views with a single layer to be used as render attachments
2025-04-25 12:39:45 +02:00
Connor Fitzgerald
a439fe4bfa
Use lockfileMaintence for non-breaking changes ( #7629 )
2025-04-25 11:28:26 +02:00
Erich Gubler
96c1fb11de
docs(CHANGELOG): s/Bux Fixes/Bug Fixes ( #7628 )
2025-04-24 21:19:01 +00:00
Jim Blandy
02bf7f40cd
Add some missing CHANGELOG.md entries. ( #7627 )
2025-04-24 17:00:07 -04:00
Jim Blandy
5bc3c9da3c
[naga] Constrain textureLoad array index args to i32 or u32.
...
In `naga::valid::expression`, require that
`Expression::ImageLoad::array_index` be either `i32` or `u32`, not
just an integral type of any size.
2025-04-24 13:45:12 -07:00
Jim Blandy
7c5f705580
[naga] Allow textureLoad's sample index arg to be unsigned.
...
Permit the `sample_index` argument of `textureLoad` overloads to be
either `i32` or `u32`.
2025-04-24 13:45:12 -07:00
Teodor Tanasoaia
195217b269
allow read-write and read-only storage textures without TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES ( #7623 )
2025-04-24 11:45:24 -04:00
Florian Denis
1806414771
[wgpu-types]: Expose wgpu::Limits::defaults() ( #7622 )
2025-04-24 09:56:14 -04:00
Connor Fitzgerald
ffbef20168
Schedule renovate ( #7620 )
2025-04-23 22:27:19 +00:00
renovate[bot]
1d6c1d020c
Update Rust crate which to v7 ( #7619 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-23 22:00:17 +00:00
renovate[bot]
d1a1a59e50
Update Rust crate ordered-float to v5 ( #7618 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-23 21:43:28 +00:00
renovate[bot]
c40738c521
Update codecov/codecov-action action to v5 ( #7613 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-23 17:42:56 -04:00
renovate[bot]
3727b67253
Update Rust crate env_logger to 0.11.0 ( #7609 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-23 21:38:52 +00:00
renovate[bot]
018fd31fb1
Update Rust crate metal to 0.32.0 ( #7611 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-23 21:08:18 +00:00
renovate[bot]
20d5da7e07
Update Minor Updates ( #7607 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-23 20:59:26 +00:00
renovate[bot]
7ccf1e5ac2
Configure Renovate ( #7606 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2025-04-23 20:34:44 +00:00
Connor Fitzgerald
ec102222f9
Disable dependabot ( #7603 )
2025-04-23 18:47:26 +02:00
Zachary Harrold
35f131ff10
Remove default features from petgraph ( #7591 )
2025-04-23 03:30:36 +00:00
Zachary Harrold
66263789bc
[wgpu-core]: Remove x_instead_of_y exceptions ( #7598 )
2025-04-23 03:17:29 +00:00
dependabot[bot]
33a0d2bbfa
Bump the patch-updates group across 1 directory with 8 updates ( #7594 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22 18:56:27 -04:00
Connor Fitzgerald
a9e93f9acb
Update missed dependencies
2025-04-22 12:04:36 -04:00
Connor Fitzgerald
e0aeff0e4d
Update lockfile
2025-04-22 12:04:36 -04:00
Connor Fitzgerald
ea9c771f78
Update cargo-deny config
2025-04-22 12:04:36 -04:00
Zachary Harrold
c63cfd86ae
Remove exceptions for x_instead_of_y lints ( #7592 )
2025-04-22 11:12:53 -04:00
Zachary Harrold
c809aefb8d
Allow serialize and deserialize in Naga no_std ( #7590 )
2025-04-22 11:07:35 -04:00
teoxoy
1fdd05a2b8
[d3d12] refactor: move allocation related fields into a new Allocator struct
2025-04-22 09:21:27 +02:00
teoxoy
3b72d59a3c
make memory pressure detection optional and configurable
2025-04-22 09:21:27 +02:00
teoxoy
5bd3a25cf7
[d3d12] use the actual memblock_sizes for OOM detection
2025-04-22 09:21:27 +02:00
teoxoy
0a416189b6
[test] add OOM tests
2025-04-22 09:21:27 +02:00
teoxoy
e78bc98d1b
remove oom_panic feature
2025-04-22 09:21:27 +02:00
teoxoy
71cce67665
[vk] destroy resources in error paths
2025-04-22 09:21:27 +02:00
teoxoy
2e7ca8c995
[vk] add OOM checks before creating buffers, textures, query sets and acceleration structures
2025-04-22 09:21:27 +02:00
teoxoy
7b482622d3
allow sampler creation to return OOMs
...
This is to preserve the current behavior as tested by the `SAMPLER_CREATION_FAILURE` test.
This is not spec compliant but it's unclear what we should do instead. I opened https://github.com/gpuweb/gpuweb/issues/5142 to figure out what we should do.
2025-04-22 09:21:27 +02:00
teoxoy
c13fc3d141
don't call release_gpu_resources when losing the device
...
This removes the possibility of deadlocks happening since `release_gpu_resources` tries to lock resources (trackers, snatchable_lock, pending_writes, life_tracker) while they might be already locked; `handle_hal_error` is called in lots of places.
Removing the call only delays destruction since `release_gpu_resources` is still called in `maintain`.
2025-04-22 09:21:27 +02:00
teoxoy
ece29b6e68
[D3D12/VK] add OOM check on submit and poll that will lose the device if we are over 95% of our budget
2025-04-22 09:21:27 +02:00
teoxoy
c144f2a697
invalidate Device on OOM errors with the exception of buffer, texture, query set and acceleration structure creation
2025-04-22 09:21:27 +02:00
teoxoy
c49620d1a2
add device validity checks to Queue methods
2025-04-22 09:21:27 +02:00
teoxoy
1c071b14af
[D3D12] add OOM checks before creating buffers, textures, query sets and acceleration structures
...
The D3D12 API doesn't guarantee that it returns `E_OUTOFMEMORY` in high memory pressure situations; drivers/kernel will happily start swapping objects that were in VRAM to RAM and then RAM to DISK, slowing down the system to a crawl if done in a loop.
2025-04-22 09:21:27 +02:00