Commit Graph

612 Commits

Author SHA1 Message Date
i509VCB
2372895944
Handle unsupported surfaces more gracefully (#3054) 2022-10-05 16:42:06 -04:00
Xander Warnez
2c1d7a8a5c
Split Blendability and Filterability into Two Different TextureFormatFeatureFlags (#3012)
* Split Blendability and Filterability into Two Different TextureFormatFeatureFlags

* Update CHANGELOG.md

* Split out individual booleans to improve readability

* Make sure blendablity is correctly set for guaranteed format features of WebGPU

* Cargo fmt

Co-authored-by: Xander Warnez <xander.warnez@materialise.be>
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2022-09-21 19:39:01 +00:00
i509VCB
061e04bff1
expose driver info in AdapterInfo (#3037)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2022-09-21 02:45:28 +00:00
Jinlei Li
ffd733726a
Update wasm32 dependencies, set alpha_mode on web target (#3040) 2022-09-20 06:53:55 +00:00
i509VCB
65e405193e
vulkan: use effective api version for determining device features (#3011) 2022-09-20 01:11:15 -04:00
i509VCB
f877a8a3c9
Vendor id clarification (#3036)
* set GL vendor for id Mesa and Apple

* match on "apple m" to mark M2 cpu as integrated in gles

* document AdapterInfo::vendor if the vendor has no PCI id
2022-09-19 23:52:00 -04:00
daxpedda
95408cd48b
[BREAKING] Wrap ShaderSource::Naga in Cow<'static> (#2903) 2022-09-19 00:50:46 -04:00
Imbris
41006d7a88
Buffer usages mismatch check and documentation for mapped_at_creation size requirement. (#3023)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2022-09-19 04:41:29 +00:00
Jinlei Li
44399bb4a3
Expose alpha_mode, support non-opaque mode on metal and vk backends (#2836) 2022-09-19 00:10:21 -04:00
i509VCB
b752c7d248
statically assert public wgpu types appropriately implement Send and Sync (#3025) 2022-09-16 12:36:23 -04:00
i509VCB
9e3efd7019
pass around RawDisplayHandle and RawWindowHandle in implementation (#3022)
This change is to help with an attempt to allow the Context type in wgpu to be swappable at runtime. In order to do that, the functions provided by Context and it's associated types need to be object safe. Instead of passing a impl trait that combines both HasRawWindowHandle and HasRawDisplayHandle, we seperate the types into their RawDisplayHandle and RawWindowHandle parts internally to reduce some of the hal implementation code mess.
2022-09-15 16:29:20 -07:00
Jim Blandy
90eb399d43
Fill in Adapter::as_hal and Device::as_hal documentation. (#2992)
In particular, explain why a callback is needed, rather than just
having these functions return an `Option<&A::Mumble>`.
2022-09-02 20:56:27 -07:00
Jinlei Li
e350f50b2f
metal: remove PrivateCapabilities's format_rgb10a2_unorm_surface field (#2981)
* metal: remove PrivateCapabilities's format_rgb10a2_unorm_surface field

* Update CHANGELOG
2022-09-02 20:28:26 -07:00
Jim Blandy
bec26b79ec
Don't use a callback to return backend instance handles. (#2991)
Change `Instance::as_hal<A>` to simply return an
`Option<&A::Instance>`, rather than passing it to a callback. We're
just borrowing a reference to some `wgpu_hal::Api::Instance` owned by
the `wgpu_core::instance::Instance`, so there's no special scoping or
locking magic required here.
2022-09-02 17:32:58 -07:00
Kevin Reid
4a7fc68df0
Document that write_buffer_with is sound to read from. (#3006)
* Document that `write_buffer_with` is sound to read from.

To a reader informed about Rust's memory model, the existing claim that

> dereferencing it to a `&[u8]` panics

without further context sounds awfully like someone thinks they've
invented a write-only reference, and that the API might actually be
exposing undefined behavior via an uninitialized `&mut [u8]`. Therefore,
let's specify what happens if you *do* read through the mutable
reference.  The text added in this commit is based on what was said in
the review when `write_buffer_with` was added:
https://github.com/gfx-rs/wgpu/pull/2777/files#r901392551

This is also relevant information to someone considering using
`write_buffer_with()` for performance gains: for example, it suggests
that it might be a bad idea to write data into the view and then sort
it in-place. (Or is that not a bad idea? Is it not slow if the CPU
already wrote over all the memory contiguously? I don't know.)

* Changelog addition (+ fixing duplicate documentation section)
2022-09-02 23:50:15 +00:00
Jim Blandy
7e84bb2eae
Correct create_surface_from_(offscreen)_canvas docs. (#2990)
The function's does not depend on the `canvas` argument meeting the
given requirements to avoid undefined behavior, so it should just be a
normal contract, not a safety contract.
2022-09-02 16:29:06 -07:00
Andreas Monitzer
6348a07d28
Expose the vk::Queue and the queue index in the Vulkan hal. (#2950) 2022-09-02 22:58:01 +00:00
Jim Blandy
701564da8c
Use () instead of PhantomData as IdentityManager's Input type. (#2972)
* Use () instead of PhantomData as IdentityManager's Input type.

PhantomData suggests that there's some sort of persuasion required
for lifetime variance inference or other sorts of arcana, but it
doesn't seem to be necessary at all. `()` works just fine.
2022-09-02 15:37:21 -07:00
Jinlei Li
ee7fd47ecb
metal: fix max_storage_xx max_texture max_sampler and max_vertex_xx limits (#2978) 2022-09-02 15:36:07 -07:00
i509VCB
c519901d57
vulkan: remove use of Vulkan12Features/Properties types (#2936)
Vulkan prohibits including `VkPhysicalDeviceVulkan12Features` structures in the chain passed to `VkCreateDevice` along with other more specific features structs. Similiar restrictions apply to the `...Properties` structures.

Fixes #2925.
2022-09-02 21:05:13 +00:00
François
27f6302d5b changelog 2022-09-02 11:41:20 -07:00
Jim Blandy
58bc205f2a Update to Naga b209d911 (2022-9-1).
This removes an expected failure on AMD RADV. I guess #2751 was our
bug all along.
2022-09-02 11:33:55 -07:00
Jim Blandy
7d138e2e76
Avoid overflow in check texture copy bounds. (#2963) 2022-08-28 20:07:04 -04:00
Jim Blandy
a0dfb28b8d
Document wgpu_core id handling, factories, etc. (#2973) 2022-08-28 19:49:09 -04:00
Jim Blandy
2cd08a1c9c
Placate Clippy 0.1.63. (#2977) 2022-08-24 17:25:59 -04:00
Jinlei Li
f918ac1ed1
vk: fix astc_hdr formats support (#2971)
* vk: fix `astc_hdr` formats support

* Update CHANGELOG
2022-08-20 19:18:39 +00:00
Jinlei Li
a08ea2a255
metal: add the missing msg_send![view, retain] call within from_view (#2976)
* metal: add the missing `msg_send![view, retain]` call within `from_view`

* Update CHANGELOG
2022-08-20 07:14:57 -07:00
Jim Blandy
c6ca2a7d0d
Always free staging buffers (#2961)
* Have `prepare_staging_buffer` take a raw hal Device.

This helps the borrow checker understand that we can borrow
`pending_writes`'s encoder and the raw Device at the same time.

* Always free staging buffers.

We must ensure that the staging buffer is not leaked when an error
occurs, so allocate it as late as possible, and free it explicitly when
those fallible operations we can't move it past go awry.

Fixes #2959.

* Some tests for texture and buffer copies.

* Add CHANGELOG.md entry.
2022-08-13 18:25:49 -07:00
Nicolas Silva
6e99cd3a3e
Fix calculation/validation of layer/mip ranges in create_texture_view (#2955)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2022-08-14 00:01:19 +00:00
Nicolas Silva
96a85b3ac5
Add missing validation in copy_texture_to-Buffer. (#2958) 2022-08-13 19:48:17 -04:00
Jim Blandy
d655017439
Implement "strict_asserts" feature in wgpu-core. (#2872)
Since `wgpu-core`'s public functions are supposed to validate their
parameters, the internal `track` module skips many of Rust's usual
run-time checks in release builds. However, some `wgpu-core` users are
happy to pay the performance cost in exchange for more safety. The
`"strict_asserts"` feature causes `wgpu_core` to perform the same
checks in release builds as it does in debug builds.
2022-08-08 00:45:39 -04:00
Wyatt Herkamp
f7526ae960
winit 0.27 Update and raw-window-handle 0.5 (#2918) 2022-08-04 06:09:37 +00:00
Nicolas Silva
ef3b31cd9a
Map bounds check (#2938)
* Validate that map_async's range is not negative.

map_async already checks that the range's end is within the bounds of the buffer, so this also ensures the range start is within bounds.

* Add an entry in the changelog.
2022-08-03 20:28:36 -07:00
Kevin Reid
780209dfb4
Add Buffer::size() and Buffer::usage(). (#2923) 2022-08-02 17:10:49 -04:00
ani
29f5f8f60e
Add WGSL examples to documentation (#2888)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2022-08-02 19:24:10 +00:00
i509VCB
8444fbe460
vulkan: fix issues querying multiview support (#2934) 2022-08-01 20:55:53 -04:00
Nicolas Silva
e59c33046b
Validate against the maximum binding index (#2892)
* Validate binding indices in create_bind_group_layout.

* Add an entry in the changelog
2022-08-01 16:25:32 -04:00
Seamooo
0dce58dfbd
changed websys features in core and hal to align with used features (#2922)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2022-08-01 19:06:26 +00:00
Reece
4cbf8cfcf1
Fix opening of renderdoc lib (#2930)
* Fix opening renderdoc lib

Renderdoc needs to not be opened by us, but instead open the existing copy.
Unfortunately this requires OS specific flags for opening, plus `libloading`
doesn't have full API coverage currently.

* Added changelog entry for #2930

* Hide RTLD_NOLOAD behind a cfg for unix

Co-authored-by: ABuffSeagull <reecevanatta@hey.com>
2022-08-01 01:39:55 +00:00
Nicolas Silva
a05c8dc2dc
Fix buffer zeroing with offset in map_buffer (#2916)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2022-07-31 22:05:18 +00:00
Kevin Reid
a420e453c3
StagingBelt: check for free chunks in the receiver as well as free_chunks. (#2906)
* StagingBelt: check for free chunks in the `receiver` as well as `free_chunks`.

Previously, chunks would only be taken from the GPU callback receiver
and put on `free_chunks` during `finish()`. So, there might be chunks
that are actually available for use but wouldn't be used.

Now, we consult the receiver whenever we're about to consult the
`free_chunks`, so the reuse of chunks will be as good as possible (given
the application's uses of operations that trigger `map_async` callbacks).

* Changelog entry.
2022-07-26 14:59:27 +00:00
i509VCB
75519839be
export AdapterContext in Gles hal (#2870) 2022-07-25 23:37:50 -04:00
Kevin Reid
7b487682d9
Expand StagingBelt documentation. (#2905) 2022-07-26 03:36:56 +00:00
Nicolas Silva
d0aa3f471a
Validate the number of color attachments in create_render_pipeline (#2913) 2022-07-25 23:28:52 -04:00
Connor Fitzgerald
537c6bed4e
Add warning when using CompareFunction::*Equal without an invariant Attribute (#2887) 2022-07-21 02:24:49 -04:00
Seamus Mulholland-Patterson
e49ef97311 added changelog entry for #2886 2022-07-15 14:11:04 -04:00
Connor Fitzgerald
48325f1aaa
v0.13.2 changelog (#2882) 2022-07-14 01:29:09 +00:00
Nicolas Silva
6058676dd2
Record that the buffer is mapped when its size is zero. (#2877)
* Record that the buffer is mapped when its size is zero.

* Avoid internally trying to map a zero-sized buffer if mapped_at_creation is true.

* Add an entry in the changelog.
2022-07-13 18:01:12 +00:00
Nicolas Silva
af345cd6c3
Validate the range in map_async. (#2876)
* Validate the range in map_async.

* Add an entry in the changelog.
2022-07-13 12:34:36 -04:00
i509VCB
db24c066cb
fix panic with as_hal functions (#2871) 2022-07-12 14:38:59 -04:00
Jinlei Li
ecf3f5ec38
metal | vulkan-portability: extract the generic code into get_metal_layer (#2826) 2022-07-10 23:06:32 -04:00
i509VCB
a108efe6b6
expose context and display from adapter and device for egl hal (#2860) 2022-07-10 18:50:54 -04:00
i509VCB
0dfb1115d2
document Adapter::new_external in wgpu-hal (#2863) 2022-07-10 18:49:53 -04:00
Sébastien Marleau
2ce1318c8c
fix deduplication not taking into account render bundles (#2867) 2022-07-10 22:15:52 +00:00
Nicolas Silva
324de1bef6
Ensure the BufferMapCallback is always called. (#2848)
* Ensure the BufferMapAsyncCallback is always called.

This solves two issues on the Gecko side:
 - The callback cleans up after itself (the user data is deleted at the end of the callback), so dropping the callback without calling it is a memory leak. I can't think of a better way to implement this on the C++ side since there can be any number of callback at any time living for an unspecified amount of time.
 - This makes it easier to implement the error reporting of the WebGPU spec.

* Update the changelog.
2022-07-07 23:29:05 -07:00
i509VCB
94c065cb33
allow access to queue family index in vulkan hal device (#2859) 2022-07-07 19:43:13 -04:00
Connor Fitzgerald
9c5015f059 Update Changelog 2022-07-06 11:06:34 -04:00
Craig
1da5bbd7b4
Prevent OpenGL from taking preference over Vulkan (#2853)
* Prevent OpenGL from taking preference over Vulkan

* update changelog

* fix wasm build of example
2022-07-06 00:11:22 -04:00
Jinlei Li
b574354af4
gl: fix depth stencil texture format capability (#2854)
* gl: fix depth stencil texture format capabilitys

* Update CHANGELOG

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2022-07-06 03:37:26 +00:00
Elabajaba
ab340baf69
Update present_mode docs as most of them don't automatically fall back to Fifo anymore. (#2855)
* space

PresentMode no longer automatically falls back to Fifo

* Update wgpu-types/src/lib.rs

Auto(No)Vsync fallback wording.

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>

* changelog

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2022-07-05 20:59:41 +00:00
Connor Fitzgerald
615ced5a99 Changelog 2022-07-04 16:38:27 -04:00
Steven
c36eb9f44b
Add change (#2847) 2022-07-03 21:09:39 +00:00
Connor Fitzgerald
6befbcbca4 Touch up changelog 2022-07-03 01:08:40 -04:00
Connor Fitzgerald
aaabd56d9a Curb Expectations of DX11 2022-07-03 01:08:40 -04:00
Spencer C. Imbleau (he/him)
72a4ef9362
Fixes #2840 (#2842) 2022-07-03 02:00:25 +00:00
Fel
c20c86a948
Add other breaking changes to 0.13 changelog (#2831) 2022-07-01 22:39:11 +00:00
multisn8
5bef140228
Clarify about breaking max_buffer_size in Limits (#2828) 2022-07-01 19:32:27 +00:00
David Huculak
93dbffa5d3
Add other breaking changes to 0.13 changelog (#2825)
* add other breaking changes to 0.13 changelog

* fix typo
2022-07-01 01:44:29 +00:00
Connor Fitzgerald
1ceef24261
Add changelog for 0.13 (#2823)
* Changelog

* Update CHANGELOG.md

* Bump versions to 0.13
2022-06-30 20:25:49 +00:00
Dzmitry Malyshau
c00e471274 Release 0.12 2021-12-18 12:36:41 -05:00
Dzmitry Malyshau
5441556988 Release wgpu-hal-0.11.2 2021-10-12 12:22:49 -04:00
Dzmitry Malyshau
60bb2aaa6b hal/gles: work around the clear shader bug 2021-10-09 16:33:45 -04:00
Dzmitry Malyshau
d48bc62826 hal/vk: check for NV optimus 2021-10-09 16:33:45 -04:00
Dzmitry Malyshau
44f488efed gles: fix querying storage limits 2021-10-09 16:33:45 -04:00
Dzmitry Malyshau
713f7fd7f2 Changelog update for 0.11 2021-10-07 19:15:49 -04:00
Dzmitry Malyshau
62f26367cd Fix the check for depth+stencil aspect of views 2021-08-20 12:11:57 -04:00
Dzmitry Malyshau
a296cf6e9e [metal] set threadgroup memory sizes reflected from the shader 2021-08-19 13:25:04 -04:00
Dzmitry Malyshau
9da5c1d3a0
Release v0.10 (#1820)
* Release v0.10

* hal/gles: update glow handles logic
2021-08-18 19:06:21 +00:00
Dzmitry Malyshau
dffe1f1793 Return a texture by the surface 2021-08-11 20:58:42 -04:00
Dzmitry Malyshau
f78061bcef Merge swap chain into surface 2021-08-11 20:58:42 -04:00
Dzmitry Malyshau
552a5f138e Rename texture usage names 2021-07-28 00:17:54 -04:00
Connor Fitzgerald
683d03a8e4 Add Rgb9e5Ufloat 2021-07-21 23:54:46 -04:00
Dzmitry Malyshau
1a9a855ea9 Rename InputStepMode to VertexStepMode 2021-07-21 17:48:00 -04:00
Dzmitry Malyshau
6dfcde4429 Update changelog with wgpu-hal and bitflags rename 2021-06-30 15:16:11 -04:00
bors[bot]
ce753cf542
Merge #1563
1563: Fix stray header in changelog r=cwfitzgerald a=HalfVoxel

It's definitely released by now. I'm guessing it was part of 0.8.1.

Co-authored-by: Aron Granberg <aron.granberg@gmail.com>
2021-06-27 21:25:37 +00:00
Aron Granberg
407ee82825 Fix stray header in changelog 2021-06-27 17:19:51 +02:00
Aron Granberg
f0919141e2 Update changelog 2021-06-27 17:17:31 +02:00
bors[bot]
1d2efb43bc
Merge #1511
1511: Added storage texture array support. r=kvark a=ElectronicRU

**Description**
Arrays of storage images (*f*image*n*D in GLSL parlance) should now be supported.
I also took the liberty to refactor texture format checking a bit,
and tighten up sampled texture support detection for Metal as well.

**Testing**
Not completely sure what's the proper testing approach here, open to suggestions.


Co-authored-by: Alex S <alex0player@gmail.com>
2021-06-18 21:38:54 +00:00
Alex S
894489b8ff Add changelog entry 2021-06-19 00:30:10 +03:00
Connor Fitzgerald
91437ea706 Updated changelog for 0.9 2021-06-18 13:07:52 -04:00
Dzmitry Malyshau
5578222685 Switch ubuntu CI to 20.04 2021-06-17 02:41:44 -04:00
Robin Hübner
bc0c86a47a
fix typo regarding structurer rename in changelog 2021-06-05 22:09:06 +01:00
Dzmitry Malyshau
e4b0de2526 Links updates 2021-06-02 23:54:26 -04:00
Dzmitry Malyshau
a6ff3ea086 Merge changelogs and readmes 2021-06-02 21:50:16 -04:00
Lucien Greathouse
ba041e4451
Expand 0.8.0 Changelog (#1420)
* humble beginnings

* Current progress

* More precise NonZeroU32 change

* Fix typo

* Changelog enough to get my game to compile again

* Fix type change line
2021-06-01 02:03:59 -04:00
Dzmitry Malyshau
ffd47fbc0e Remove Vulkan Portability support 2021-04-29 11:42:26 -04:00
Dzmitry Malyshau
6f9c254061 Changelog for 0.8 2021-04-29 11:33:17 -04:00
Connor Fitzgerald
c43bfaf8e0 Fix readme date 2021-02-01 02:45:31 -05:00
Dzmitry Malyshau
4099c2ca8e Fix depth bias documentation 2021-01-29 00:25:54 -05:00
Dzmitry Malyshau
cef0a30aa2 Add 0.7 changelog 2021-01-28 01:21:20 -05:00
Dzmitry Malyshau
901b043b19 Version bump to 0.6 and changelog update 2020-08-17 16:51:22 -04:00
skierpage
67142eb944
use unambigous ISO8601 format for dates
06-04-2020 is in the future for ~400 million people.
Oblig. XKCD https://xkcd.com/1179/ 😉
2020-05-12 16:06:19 -07:00
Dzmitry Malyshau
7dba052900 Version bump and CHANGELOG update 2020-04-06 08:55:39 -04:00
Dzmitry Malyshau
9ffcbe5f9d Release preparations 2019-11-03 18:52:57 -05:00
Dzmitry Malyshau
87b61d206c Fix instance init on Windows and check it on CI 2019-08-22 11:29:45 -04:00
Dzmitry Malyshau
a9cfde1d9d Fixed pipeline barriers that are not transitions 2019-08-21 13:11:46 -04:00
Dzmitry Malyshau
dfb4420d5c Changelog update for 0.3 2019-08-21 09:32:09 -04:00
Bruce Mitchener
1155479247 Fix typos. 2019-05-24 14:46:37 +07:00
Dzmitry Malyshau
c283a8b115 Update changelog and versions 2019-03-31 20:04:39 -04:00
Dzmitry Malyshau
81114a8ca2 Bump the descriptor pool size 2019-03-20 14:52:38 -04:00
Dzmitry Malyshau
7149ba83ba Update dx11 dependency in the lockfile 2019-03-05 23:01:13 -05:00
Dzmitry Malyshau
85596a31a8 Add changelog 2019-03-05 22:57:40 -05:00