Erich Gubler
2c66504a59
refactor(valid): factor out shader_stage_from_stage_bit
helper
2024-02-27 13:57:17 -05:00
Erich Gubler
be384fc001
refactor: factor out stage_err
helper in pipeline creation
2024-02-27 13:57:17 -05:00
Connor Fitzgerald
5e6f799573
Fix docs.rs Builds ( #5310 )
2024-02-27 18:50:06 +00:00
David Stern
23392c5228
Try to load libX11.so.6
in addition to libX11.so
. ( #5307 )
2024-02-27 12:15:13 -05:00
Nicolas Silva
6f68d3dffa
Correctly set the tacker sizes before executing render bundles
2024-02-27 10:05:09 -05:00
Nicolas Silva
ed852c4774
Don't put the mapped-at-creation staging buffer in the registry
2024-02-27 10:05:09 -05:00
Nicolas Silva
c77b4d3f56
Use a unique tracker index per resource instead of the ID in trackers ( #5244 )
...
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2024-02-26 20:25:12 +00:00
Connor Fitzgerald
38419a9cf2
Fix Integer Clamp ( #5300 )
...
* Fix Integer Clamp
* Changelog
2024-02-26 20:28:23 +01:00
Erich Gubler
d6465702b6
fix: command_encoder_clear_buffer
: err. on offset + size > u64::MAX
...
Rust would have made this operation either an overflow in release mode,
or a panic in debug mode. Neither seem appropriate for this context,
where I suspect an error should be returned instead. Web browsers, for
instance, shouldn't crash simply because of an issue of this nature.
Users may, quite reasonably, have bad arguments to this in early stages
of development!
2024-02-26 09:32:26 -05:00
Erich Gubler
9747a0ed23
fix: always check buffer clear offset
for OOB
...
Fuzz testing in Firefox encountered crashes for calls of
`Global::command_encoder_clear_buffer` where:
* `offset` is greater than `buffer.size`, but…
* `size` is `None`.
Oops! We should _always_ check this (i.e., even when `size` is `None`),
because we have no guarantee that `offset` and the fallback value of
`size` is in bounds. 😅 So, we change validation here to unconditionally
compute `size` and run checks we previously gated behind `if let
Some(size) = size { … }`.
For convenience, the spec. link for this method:
<https://gpuweb.github.io/gpuweb/#dom-gpucommandencoder-clearbuffer >
2024-02-26 09:32:26 -05:00
Erich Gubler
751cddc510
refactor: command_encoder_clear_buffer
: s/end/end_offset
2024-02-26 09:32:26 -05:00
Erich Gubler
7300b9f037
style: fix fmt. of assert!(…)
in clear_texture_via_buffer_copies
2024-02-26 09:32:26 -05:00
Bruce Mitchener
177517ad54
deps: Update ahash
to fix "unknown feature stdsimd
" error. ( #5304 )
2024-02-26 03:35:25 -05:00
Augusto Hack
a315925882
wgpu-core: Inform user about possible fix ( #5298 )
2024-02-25 14:30:55 -05:00
JMS55
5b9ade8223
Add AccelerationStructure to WGSL write_value_type ( #5261 )
2024-02-24 02:41:37 -05:00
Peter Whidden
440574f927
fix typo in docstring ( #5281 )
2024-02-21 21:31:35 +00:00
HexoKnight
3715cb1383
fix doc link ( #5280 )
2024-02-21 13:55:10 -05:00
Nicolas Silva
66c7e98ad7
Add feature flags in hal to panic when running into some types of errors ( #5273 )
2024-02-21 11:35:24 -05:00
Nicolas Silva
75a98f2712
Validate that the view dimension of a multisampled texture binding is 2d ( #5274 )
...
* Validate that the view dimension of a multisampled texture binding is 2d
* typo
2024-02-21 08:56:28 +01:00
Connor Fitzgerald
910fb7c341
Remove GPU based validation in Tests ( #5271 )
...
* Remove GPU based validation in Tests
* Lol Typo
2024-02-19 17:04:03 -05:00
Bartłomiej Maryńczak
2e9ee0aa56
[wgpu-hal.gles] Error log for failed GLES heuristics ( #5266 )
...
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2024-02-19 20:33:47 +00:00
Nicolas Silva
a016a3aaec
Make Features fit in 64 bits again ( #5268 )
2024-02-19 15:12:41 -05:00
Augusto Hack
a302c8da82
Docs surface creation no longer unsafe ( #5265 )
...
* doc: as of #4597 surface creation is no longer unsafe
* doc: extend documentation of the include_wgsl macro
2024-02-19 11:23:12 +00:00
Connor Fitzgerald
df386dae02
Add vec3-in-array-test ( #5264 )
2024-02-18 12:46:29 -05:00
Nicolas Silva
004e3efe84
Simplify the ID allocation in IdentityValues ( #5229 )
...
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2024-02-15 20:55:55 +00:00
Nicolas Silva
66ba64b721
Store Arcs instead of IDs in render bundles ( #5242 )
2024-02-15 15:54:11 -05:00
Nicolas Silva
286306d7e8
Store the device's queue via a weak ref instead of an ID ( #5230 )
2024-02-15 15:42:28 -05:00
Imbris
abc0b30dfc
Add test case for builtin only accessed in function parsed after the entry point function
2024-02-15 18:12:25 +01:00
Imbris
8b818a2076
Defer entry-point processing so that all potential uses of builtin's are found before culling the unused ones
2024-02-15 18:12:25 +01:00
Imbris
6223af3860
Extract entry point processing from parse_function into an independent function.
2024-02-15 18:12:25 +01:00
Imbris
ae22743326
Add test case to naga/spv-in for an unnamed glPerVertex struct
2024-02-15 18:12:25 +01:00
Imbris
4554f852c1
[spv-in] Remove providing "perVertexStruct" for certain unnamed inputs
...
since we probably shouldn't be naming things if they don't have a name
in the input.
As requested here: https://github.com/gfx-rs/wgpu/pull/5227#issuecomment-1936027091
2024-02-15 18:12:25 +01:00
Imbris
b704132b4c
Remove unnecessary "gl_PerVertex" name check so unused builtins will be
...
handled even when this name is not in the input SPIRV.
2024-02-15 18:12:25 +01:00
Erich Gubler
18b7904b8e
fix: discard cmd. enc. buf. on wgpu_core::Global::command_encoder_drop
2024-02-15 10:45:32 -05:00
Erich Gubler
754d93a4a7
fix(gles): discard cmd. enc. buf. on drop
2024-02-15 10:45:32 -05:00
Erich Gubler
2b487724f2
fix(dx12): discard cmd. enc. buf. on drop
2024-02-15 10:45:32 -05:00
dependabot[bot]
d4fe193528
build(deps): bump crate-ci/typos from 1.18.0 to 1.18.2 ( #5240 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-14 22:39:31 -05:00
andristarr
a7d76743a8
MissingBufferUsageError now has an id prop ( #5203 )
2024-02-14 13:27:58 +01:00
Nicolas Silva
e4ef3b401a
Add an advanced_debugging preset including wgpu base validation ( #5248 )
...
Co-authored-by: Erich Gubler <erichdongubler@gmail.com>
2024-02-13 16:42:02 +00:00
Andreas Reich
f350f28c35
Separate native-only feature for wgpu::CommandEncoder::write_timestamp
( #5188 )
...
* split out TIMESTAMP_QUERY_INSIDE_ENCODERS from TIMESTAMP_QUERY
* changelog entry
* update changelog change number
* fix web warnings
* single line changelog
* note on followup issue
2024-02-13 16:03:33 +00:00
Erich Gubler
95c026b2df
docs: note that GPU_BASED_VALIDATION
implies VALIDATION
2024-02-12 10:23:07 -05:00
Erich Gubler
31ac63ce3e
feat(vulkan): enable GPU-based validation for Vulkan backend
...
If [`VK_LAYER_KHRONOS_validation`] is present, and it supports
[`VK_EXT_validation_features`], we can configure it with another instance
creation info. element of type [`VkValidationFeaturesEXT`] to enable
GPU-based validation. Wire `InstanceFlags::GPU_BASED_VALIDATION` to do
this in the Vulkan backend. It's even already finding issues in our
`examples` and other tests! But…we'd like to handle those later, since
this is so important for users. So, I've broken that out to separate
issues. The instances we're aware of:
* `water` is running into sync. validation issues: see
<https://github.com/gfx-rs/wgpu/issues/5231 >
* `wgpu_test::shader::struct_layout::uniform_input` is failing to
instrument shaders now; see
<https://github.com/gfx-rs/wgpu/issues/5245 >
It is apparent from this and the [DX12 implementation of GPU-based
validation] that we will need to communicate clearly to users that
`InstanceFlags::GPU_BASED_VALIDATION` implies
`InstanceFlags::VALIDATION`. Not all backends enforce this yet; I have
[split out this work][follow-up for flag implication].
Note that `VK_EXT_validation_features` has been deprecated in favor of
the more general layer configuration mechanism offered by
[`VK_EXT_layer_settings`].
[DX12 implementation of GPU-based validation]: https://github.com/gfx-rs/wgpu/pull/5146
[`VK_EXT_layer_settings`]: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_layer_settings.html
[`VK_EXT_validation_features`]: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_validation_features.html
[`VK_LAYER_KHRONOS_validation`]:https://vulkan.lunarg.com/doc/sdk/1.3.275.0/linux/khronos_validation_layer.html
[`VkValidationFeaturesEXT`]: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkValidationFeaturesEXT.html
[follow-up for flag implication]: https://github.com/gfx-rs/wgpu/pull/5232
2024-02-12 10:23:07 -05:00
Erich Gubler
6a51f3d82f
refactor(vulkan): extract enumerate_instance_extension_properties
helper
...
This will be used shortly for checking if we should proceed with
enabling GPU-based validation.
2024-02-12 10:23:07 -05:00
Erich Gubler
e154cc0312
refactor(vulkan): hoist validation layer check
...
This will be used shortly for checking if we should proceed with
enabling GPU-based validation.
2024-02-12 10:23:07 -05:00
Jim Blandy
59e79c0664
[wgpu-core] Document and improve naming in PendingWrites
.
2024-02-09 11:33:52 -08:00
Jim Blandy
60487f5833
Document the wgpu_hal::CommandEncoder
trait.
2024-02-09 11:33:52 -08:00
Bruce Mitchener
665c075fa0
Remove TextureInner::Surface::has_work. ( #5200 )
...
When no work is submitted for a frame, presenting the surface results
in a timeout due to no work having been submitted.
Fixes #3189 .
This flag was added in #1892 with a note that it was going to be
temporary until #1688 landed.
2024-02-09 11:36:24 +00:00
David Huculak
245d2da2fd
add test that verifies that we can drop the queue before using the device to create a command encoder ( #5211 )
2024-02-09 12:16:48 +01:00
Erich Gubler
f21087ddaf
Revert "docs: inline document-features
usage, remove dep." ( #5169 )
...
* docs: sync. `wgpu/Cargo.toml` feature comments with `lib.rs`
* Revert "docs: inline `document-features` usage, remove dep."
This reverts commit 3d5bec659b9cf19f1c64274de0d11808d771cc66, with an
update to `document-features`, and preferring to keep new `feature`
content. To be clear, the only difference I have observed is the
addition of the `serde` feature.
In case it shortens anyone's search, the specific issue resolved is
[`slint-ui/document-features`#20](https://github.com/slint-ui/document-features/issues/20 ).
2024-02-09 11:44:29 +01:00
andristarr
3028972817
buffer_map_async should use offset + size ( #5185 )
2024-02-09 09:48:00 +01:00