Commit Graph

3774 Commits

Author SHA1 Message Date
Connor Fitzgerald
6befbcbca4 Touch up changelog 2022-07-03 01:08:40 -04:00
Connor Fitzgerald
7d85efb301 Fix out of bounds access when surface texture is written to by multiple command buffers 2022-07-03 01:08:40 -04:00
Connor Fitzgerald
aaabd56d9a Curb Expectations of DX11 2022-07-03 01:08:40 -04:00
Connor Fitzgerald
87552a92cc Fix GL_EXT_color_buffer_float detection on desktop 2022-07-03 01:08:40 -04:00
Connor Fitzgerald
eea8edb8a0 Fix AutoNoVsync on OpenGL 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
RustEnthusiast
cb0646f8da Update wgpu repository link in Cargo.toml. (#2834)
This fixes issue #2830.
2022-07-02 08:17:08 +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
Connor Fitzgerald
e125321bff Release 0.13 two - electric boogaloo (#2827) v0.13.0 wgpu-hal-v0.13.0 wgpu-core-v0.13.0 wgpu-types-v0.13.0 wgpu-v0.13.0 2022-07-01 14:38:04 +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
Connor Fitzgerald
ea05b44f38 Improve Presentation Api (#2803)
* Add new presentation modes

* Expand presentation formats

* Add Surface::get_supported_modes

* Update to rust 2021 and improve some metal surface code

* Update wgpu-types/src/lib.rs

Co-authored-by: bjorn3 <17426603+bjorn3@users.noreply.github.com>

* Fix windows build errors

* Fix issues with ALLOW_TEARING

Co-authored-by: bjorn3 <17426603+bjorn3@users.noreply.github.com>
2022-06-30 14:24:17 -04:00
Jinlei Li
98597da1ec Allow fragment stage to have more outputs than the pipeline has (#2822) 2022-06-30 03:36:11 +00:00
Connor Fitzgerald
1d8bc57a86 Don't wait for current submission inside of submit (#2824) 2022-06-30 03:05:42 +00:00
Connor Fitzgerald
464b61d01c Flip span labels to work better with tools (#2820) 2022-06-28 19:49:51 +00:00
Teodor Tanasoaia
5eb09f6bd7 Implement Queue::write_buffer_with (#2777)
* implement Queue::write_buffer_with

* address comments

* update doc

* Fix copy span location

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2022-06-28 18:32:43 +00:00
Jinlei Li
0eb6845b6a web: march web-sys 0.3.58, sparse attachments support (#2813) 2022-06-28 14:15:57 -04:00
Jinlei Li
b0c798639a core: restrict hal::TextureUses::COLOR_TARGET condition within create_texture (#2818) 2022-06-28 18:12:34 +00:00
Jim Blandy
b370b990e5 Use numeric constants to define wgpu_types::Features values. (#2817)
As an incidental change, wgpu#2802 (de5fe90f2) changed the definitions
of the bitflags in `wgpu_types::Features` from looking like this:

    const DEPTH24UNORM_STENCIL8 = 1 << 1;

to this:

    const DEPTH24UNORM_STENCIL8 = Self::DEPTH_CLIP_CONTROL.bits << 1;

The intention was to make it easier to insert new flags at a logical
point in the list, and have the numbers automatically update
themselves.

Unfortunately, `cbindgen` can't cope with the new style of definition.
It produces definitions for these flags that look like this:

    #define WGPUFeatures_DEPTH24UNORM_STENCIL8 (uint64_t)((WGPUFeatures_DEPTH_CLIP_CONTROL).bits << 1)

These are integer values, so the `.bits` field access is bogus.

This commit changes the definitions back to using direct numbering,
which `cbindgen` doesn't choke on.
2022-06-28 08:25:38 -04:00
Jim Blandy
7cfbd874af Update Naga to 27d38aae (2022-6-27). (#2816) 2022-06-27 21:36:00 -04:00
Jinlei Li
61796b1d59 Relax render pass color_attachments validation (#2778)
* Make the color attachments `Option`-al in render pipelines, render passes, and render bundles

* vk:  `Option`-al color attachments support

* dx12: sparse color_attachments support

* Only non-hole attachments is supported on wasm target and gl backend

* deno_webgpu: `Option`-al color attachments support

* Follow all suggestions
2022-06-27 16:10:18 -07:00
Nicolas Silva
892c272d18 Replace android-properties with android_system_properties. (#2815)
The former use statically linked Android libc symbols while the latter loads them dynamically. This is required to support old and new versions of Android with the same binary. It unblocks updating wgpu in Gecko.

Fixes #2805.
2022-06-27 16:56:11 -04:00
rttad
064f3f1db4 Add Naga variant to ShaderSource 2022-06-26 23:34:16 -07:00
Jim Blandy
36ae2ceda3 Pass ShaderModuleDescriptor to create_shader_module by value.
This will allow us to pass module representations that are neither
`Copy` nor `Clone`, like `naga::Module`.
2022-06-26 23:34:16 -07:00
Connor Fitzgerald
a3ed6e06ab Remove depth image from readme - we don't dictate direction of depth (#2812) 2022-06-27 03:28:49 +00:00
Connor Fitzgerald
84633a8b12 Force binding sizes to be multiples of 16 on webgl (#2808) 2022-06-27 02:39:51 +00:00
Jim Blandy
788cd7d2bb Remove redundant #[cfg] conditions from backend/direct.rs. (#2811) 2022-06-26 19:15:47 -04:00
i509VCB
f041991d0c allow creating wgpu::Instance from wgpu_core::Instance 2022-06-26 15:32:34 -07:00
Connor Fitzgerald
533fc13afe Properly Barrier Compute Indirect Buffers (#2810) 2022-06-26 21:03:56 +00:00
Connor Fitzgerald
770935aafd Try to solve crash on wasm (#2807) 2022-06-26 00:11:10 -04:00
tuchs
1af3b9096c Fix gles buffer-texture copy for 2d arrays (#2809) 2022-06-26 00:21:38 +00:00
Connor Fitzgerald
de5fe90f20 Restrict WriteTimestamp Inside Passes (#2802)
* Define feature flags in terms of the previous

* Add WRITE_TIMESTAMP_INSIDE_PASSES feature
2022-06-25 01:23:13 -04:00
victorvde
7375acb230 get_supported_formats: sort like the old get_preferred_format and simplify return type (#2786)
* get_supported_formats: sort srgb first like the old get_preferred_format

* get_supported_formats: simplify return type
2022-06-22 21:04:18 +00:00
Nicolas Silva
5dcd19c167 Add a vulkan workaround for large buffers. (#2796)
* Add Limit::max_buffer_size.

* Prevent very large buffer with some drivers.

Some drivers run into issues when buffer sizes and ranges are larger than what fits signed 32 bit integer. Adapt the maximum buffer size accordingly.
2022-06-22 12:31:53 -04:00
Nicolas Silva
a9f1b4f8e0 Add create_texture_error. (#2800)
Firefox needs it to implement WebGPU's error model (see create_buffer_error).
2022-06-22 12:58:37 +00:00
Kevin Reid
2881a74de9 Fix formatting of TextureDimensionError::LimitExceeded. (#2799)
in the thiserror error format string, `{0:?}` ends up referring to the
first named argument, not the first struct field or a compile error, so
the error was incorrectly
    Dimension 32768 value 32768 exceeds the limit of 16384
instead of
    Dimension X value 32768 exceeds the limit of 16384
2022-06-21 21:46:12 -04:00
Connor Fitzgerald
7df4fd1cd4 Use FIFO swapchain in examples 2022-06-20 23:15:28 -07:00
Rajveer Malviya
f27a9788fd fix BufferMapCallbackC & SubmittedWorkDoneClosureC (#2787) 2022-06-18 16:55:24 +00:00
Steven
0d4d3f4ceb Change get_preferred_format to get_supported_formats (#2783)
* Change all the functions

* Return the set of supported TextureFormat specified by WebGPU

* Remove redundant filtering and use list directly

* Replace pops with first

* Remove now unused function

* Fix doc and clarify preffered format

* Dereference enums

* Remove unused list

* Remove fancy coode

* Update wgpu-core/src/device/mod.rs

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

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2022-06-18 00:21:02 -04:00
Jim Blandy
aba7197fe8 Update Naga to 0b60f410 (Thu 2022-6-16). (#2779) 2022-06-17 16:51:22 -04:00
Jinlei Li
f4c01052ef Rename MAX_COLOR_TARGETS to MAX_COLOR_ATTACHMENTS to match spec 2022-06-16 20:36:15 -07:00
Jinlei Li
f2c3d42818 Add InvalidGroupIndex validation at create_shader_module 2022-06-16 10:06:11 -07:00
Nicolas Silva
191537021e Expose naga span location helpers (#2752)
* Expose the source location in CreateShaderModuleError.

* Bump naga dep to 89bed99.
2022-06-14 23:10:22 -04:00
Jim Blandy
6da57dd4e0 Add type annotation to render pass code, for rust-analyzer. (#2773)
This is a workaround for a limitation in rust-analyzer:
https://github.com/rust-lang/rust-analyzer/issues/12247
2022-06-14 23:06:22 -04:00
Jim Blandy
915be10443 wgpu_core::command::bundle: Consolidate pipeline and vertex state. (#2769)
Refactor `wgpu_core::command::bundle::State` to more closely resemble
the internal slots of a WebGPU `GPURenderBundleEncoder`, and add
validation required by the WebGPU specification.

Use `Option` to represent state that may be left unset on the encoder:
specifically, the pipeline and vertex buffers. (Previous commits have
already addressed index buffers and bind groups.) Use `.ok_or`, etc.
for unwrapping, to ensure that encoding state errors are reported.

Consolidate state derived from the pipeline in a new `PipelineState`
struct.

Remove `wgpu_core::command::bundle::PushConstantState::is_dirty`; just
represent push constant state as a vector of `PushConstantRange`
values. It's sufficient to simply zero the push constants whenever the
vector is non-empty.

Rename `bundle::State::flush_push_constants` to `zero_push_constants`a.
This is not a "flush pending state changes" function like all the
others; it just ensures that each pipeline's push constant state is
initialized.
2022-06-14 23:06:05 -04:00
Ashley Ruglys
5c8d4a8c80 Change WEBGPU_TEXTURE_FORMAT_SUPPORT to 1 << 14 instead of 1 << 13 2022-06-14 19:01:49 -07:00
Jinlei Li
006bbbc94d Update the Supported Platforms table in README (#2770) 2022-06-14 05:04:14 +00:00
Jim Blandy
b30b445423 Clarify docs for wgpu_core's Id and gfx_select!. (#2766)
Clarify that `gfx_select!` is not specific to `hub::Global`.

Clarify that the `T` in `id<T>` is not a real resource type.
2022-06-14 00:46:58 -04:00
Jim Blandy
fd22c7f269 Increase max_outliers on wgpu water example reftest. (#2767)
The example says:

    Using AMD RADV POLARIS12 (Vulkan)

The test says:

    thread 'water' panicked at 'Image data mismatch! Outlier count 464 over limit 460. Max difference 213', wgpu/examples/water/../../tests/common/image.rs:134:13

I checked the `water-difference.png` file, and it's just a few dots
here and there. The example seems to run fine.
2022-06-14 00:45:23 -04:00