Commit Graph

1593 Commits

Author SHA1 Message Date
Dzmitry Malyshau
4099c2ca8e Fix depth bias documentation 2021-01-29 00:25:54 -05:00
bors[bot]
513c08ecbb Merge #1178
1178: Add DepthBiasState, rename StencilStateFace r=kvark a=kvark

**Connections**
None

**Description**
Found the error in the `StencilStateFace` name and fixed it here.
Also identified that depth bias is a noticeable ergonomic offender, so moving it out into a struct, similar to what we have with stencil.

**Testing**
tested on wgpu-rs examples.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-29 05:09:44 +00:00
Dzmitry Malyshau
14eb99da87 Add DepthBiasState, rename StencilStateFace 2021-01-29 00:07:46 -05:00
bors[bot]
6c0e652f86 Merge #1177
1177: Update gfx with the new iterator API r=kvark a=kvark

**Connections**
Gets https://github.com/gfx-rs/gfx/pull/3615 and https://github.com/gfx-rs/gfx/pull/3619

**Description**
Avoids a few `collect()` calls when talking to gfx.

**Testing**
just local playtests

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-28 17:42:08 +00:00
Dzmitry Malyshau
4764ff21e9 Update gfx with the new iterator API 2021-01-28 12:40:24 -05:00
bors[bot]
63b0d36074 Merge #1176
1176: Rewrite RenderPipelineDescriptor according to aspects r=grovesNL,cwfitzgerald a=kvark

**Connections**
Fixes #1166

**Description**
Totally re-imagines the structure tree for describing the rendering pipeline, based on the aspects instead of logical steps.

**Testing**
Just local testing. I don't think there is any concern that these changes might not work, they just need the clients to adapt.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-28 06:21:57 +00:00
Dzmitry Malyshau
cef0a30aa2 Add 0.7 changelog 2021-01-28 01:21:20 -05:00
Dzmitry Malyshau
0346b43982 Update the render pipeline API 2021-01-27 15:09:13 -05:00
bors[bot]
60cd0f7e56 Merge #1173
1173: Handle zero-sized bindings as an error r=cwfitzgerald a=kvark

**Connections**
Fixes #1165

**Description**
Adds buffer IDs to the binding errors, also adds a variant for zero sized bindings.

**Testing**
Tested on a hand-written example.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-26 05:19:26 +00:00
Dzmitry Malyshau
c233a70afc Handle zero-sized bindings as an error 2021-01-25 22:33:44 -05:00
bors[bot]
c2c8d2203e Merge #1170
1170: Don't build shader interface without the validation flag r=kvark a=kvark

**Connections**
Fixes #1169

**Description**
We used to try building the interface of a Naga module before (!) the validation has happened, and even without a check for the validation flag.

**Testing**
Untested.

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2021-01-25 19:16:59 +00:00
Dzmitry Malyshau
6a684e5cdf Don't build shader interface without the validation flag 2021-01-25 14:15:27 -05:00
Jonathan Behrens
a97ec9df91 Add SHADER_FLOAT64 feature (#1154)
* Add SHADER_FLOAT64 feature

* Also enable SHADER_FLOAT64 hal feature when creating the device

* Update wgpu-core/src/instance.rs

Co-authored-by: monocodus[bot] <49363530+monocodus[bot]@users.noreply.github.com>

* Add warning about 64-bit float performance

* Add (currently unsupported) VERTEX_ATTRIBUTE_64BIT feature

Co-authored-by: monocodus[bot] <49363530+monocodus[bot]@users.noreply.github.com>
2021-01-24 21:59:09 -05:00
bors[bot]
ab6af6ed4f Merge #1167
1167: Remove temporary allocation for gpu-descriptor r=kvark a=kvark

This is no longer needed as https://github.com/zakarumych/gpu-descriptor/pull/10 is merged

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-24 17:25:23 +00:00
Dzmitry Malyshau
6538ac5d26 Remove temporary allocation for gpu-descriptor 2021-01-24 12:24:37 -05:00
bors[bot]
0e68554c52 Merge #1164
1164: Update naga to gfx-7 r=kvark a=kvark

**Connections**
Includes https://github.com/gfx-rs/gfx/pull/3612

**Description**
Carries a bunch of important Naga improvements.

**Testing**
Just local playtests

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-24 03:18:39 +00:00
Dzmitry Malyshau
952ccbcf85 Update naga to gfx-7 2021-01-23 22:17:09 -05:00
bors[bot]
b23ece55e7 Merge #1163
1163: Bump gfx to latest master r=kvark a=mkeeter

**Connections**
- This bumps `gfx` to [#3610](https://github.com/gfx-rs/gfx/pull/3610), and also includes [#3608](https://github.com/gfx-rs/gfx/pull/3608) and [#3609](https://github.com/gfx-rs/gfx/pull/3608)
- [Here](https://github.com/gfx-rs/wgpu-native/pull/66) is a draft PR to `wgpu-native`
- `wgpu-rs` requires a one-line fix to the `texture_view_drop` call (which now takes a boolean); I can PR this next.

**Description**
This fixes [pathological shader complexity in SPIRV-Cross](https://github.com/KhronosGroup/SPIRV-Cross/pull/1594), as well as a few other `gfx` PRs.

**Testing**
I updated `wgpu-native` to use this branch, then updated my [toy raytracer](https://github.com/mkeeter/rayray) to use the resulting `dylibs` and confirmed that it no longer takes forever to compile the pathological shader.

In addition, I updated `wgpu-rs` and went through the examples; nothing seems out of place.

Co-authored-by: Matt Keeter <matt.j.keeter@gmail.com>
2021-01-23 16:57:10 +00:00
Matt Keeter
38b184428d Bump gfx to latest master 2021-01-22 08:58:51 -05:00
bors[bot]
7f52bea027 Merge #1161
1161: Fix replaying issues with dropped texture views r=urgent a=kvark

**Connections**
Fixes replaying of https://github.com/gfx-rs/wgpu/issues/1158#issuecomment-763272796

**Description**
The main fix is calling `maintain` in the player before getting the new view from the swapchain. That allows the device to properly remove the ID that is just about to be used.

**Testing**
Tested on that API trace.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-20 03:06:20 +00:00
Dzmitry Malyshau
05bb482e49 Fix replaying issues with dropped texture views 2021-01-19 22:03:55 -05:00
bors[bot]
7c9e239a24 Merge #1160
1160: Update gpu-alloc and remove the associated locking r=kvark a=kvark

**Connections**
Takes advantage of https://github.com/zakarumych/gpu-alloc/pull/34

**Description**
This PR removes the locking from our gpu-alloc wrapper.

**Testing**
Untested

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-20 02:27:31 +00:00
Dzmitry Malyshau
5fccabf3b8 Update gpu-alloc and remove the associated locking 2021-01-19 20:59:50 -05:00
bors[bot]
e219f3b657 Merge #1157
1157: Handle read-only storage + sampled combination r=cwfitzgerald a=kvark

**Connections**
Fixes #724

**Description**
We now keep the internal use flags for sampled textures inside the view.

**Testing**
Untested

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-19 15:22:20 +00:00
Dzmitry Malyshau
618bd9e53a Handle read-only storage + sampled combination 2021-01-19 09:54:41 -05:00
bors[bot]
51539124de Merge #1156
1156: Update gfx to unborrowed APIs r=kvark a=kvark

**Connections**
Depends on https://github.com/gfx-rs/gfx/pull/3586
Depends on https://github.com/zakarumych/gpu-descriptor/pull/10

**Description**
Just an update.

**Testing**
Tested on wgpu-rs examples.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-19 05:35:17 +00:00
Dzmitry Malyshau
7f8c776a85 Update gfx to unborrowed APIs 2021-01-19 00:33:45 -05:00
bors[bot]
14d1a4f222 Merge #1155
1155: fix the size checks in transfer buffer to image commands r=cwfitzgerald a=Vengarioth

**Connections**
_none_

**Description**
It's fixing a trivial bug in which Extend3d was checked against a with of 0 two times, presumably instread checking depth as well.

**Testing**
Ran the tests and ran it with bevy - still worked.



Co-authored-by: Vengarioth | Andreas Fischer <opensource@deviru.de>
2021-01-18 18:11:48 +00:00
Vengarioth | Andreas Fischer
6adaef6512 fix the size checks in transfer buffer to image commands 2021-01-18 18:46:37 +01:00
bors[bot]
4f2d0bb8c8 Merge #1151
1151: Update gfx and naga to gfx-6 tag r=cwfitzgerald a=kvark

**Connections**
Fixes #1149 
Regression from https://github.com/gfx-rs/gfx/pull/3573

**Description**
The physical devices held references to `RawInstance` in Vulkan backend, and we weren't cleaning them up.
Note: an alternative fix could be in `gfx-backend-vulkan` - to move the `Entry` into `RawInstance`, thus delaying the shutdown. I didn't go this way because that would be less explicit.

**Testing**
Tested on wgpu-rs examples

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2021-01-16 06:39:44 +00:00
Dzmitry Malyshau
87c8cb8fde Update gfx and naga to gfx-6 tag, fix the hub clears 2021-01-16 01:38:57 -05:00
bors[bot]
9dce0afa74 Merge #1128
1128: Add pipeline statistics and timeline queries r=kvark a=cwfitzgerald

**Connections**

Closes #721 

**Description**

This adds Pipeline Statistics queries and Timeline queries. Shoutout to @z2oh for doing a good chunk of the work to enable this feature.

Currently blocked on both https://github.com/gfx-rs/gfx/pull/3563 and rollup of gfx-hal mutability changes, but is ready to review.

**Testing**

Tested in various ways on the hello-compute and hello-triangle example, tested validation extensively. Queries will be permanently added to the mipmap example once the wgpu-rs PR is finished.

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2021-01-16 05:49:42 +00:00
Connor Fitzgerald
a22037ced0 Add pipeline statistics and timeline queries 2021-01-16 00:48:54 -05:00
bors[bot]
0491d00d70 Merge #1147
1147: Update render pass and framebuffers logic to the latest gfx-hal r=cwfitzgerald a=kvark

**Connections**
Updates gfx-hal with the latest major changes of https://github.com/gfx-rs/gfx/pull/3571

**Description**
There is no need to track framebuffers at all any more! Since they don't contain images, we can keep them permanently.
There is no need to create and delete framebuffers for the swapchain either. Lots of non-trivial code is gone 🎉
The PR also removes one of the mutexes that the device holds. 

**Testing**
Will be tested on wgpu-rs

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-15 20:59:38 +00:00
Dzmitry Malyshau
6c05470db0 Minor dependencies bumps 2021-01-15 01:11:28 -05:00
Dzmitry Malyshau
a4f897b5d7 Include the extent into the framebuffer map key 2021-01-15 00:53:51 -05:00
Dzmitry Malyshau
012569845d Update render pass and framebuffers logic to the latest gfx-hal 2021-01-15 00:53:28 -05:00
bors[bot]
4ce449c89f Merge #1148
1148: Remove comment introduced in #1144 r=cwfitzgerald a=DasEtwas

Tested to be unnecessary by reading

Co-authored-by: dasetwas <dasetwas@dasetwas.dasetwas>
2021-01-13 23:28:23 +00:00
dasetwas
c01e2d10ce Remove comment introduced in https://github.com/gfx-rs/wgpu/pull/1144 2021-01-13 23:28:44 +01:00
bors[bot]
c788b1cef6 Merge #1132
1132: Include pipeline id in some pass error scopes r=kvark a=scoopr



Co-authored-by: Mikko Lehtonen <scoopr@iki.fi>
2021-01-12 21:16:30 +00:00
Mikko Lehtonen
6c56613045 Merge PassErrorScope::Draw* and Dispatch* variants 2021-01-12 22:23:17 +02:00
Mikko Lehtonen
0d60bd80c5 Include pipeline id in some pass error scopes 2021-01-12 17:58:44 +02:00
bors[bot]
ec9c8a2e84 Merge #1145
1145: Support trailing render passes after the swapchain rendering r=kvark a=kvark

**Connections**
Discussed on the matrix.

**Description**
Fixes a case where we have any other render pass in a command encoder that draws to the swapchain (after the pass that draws to the swapchain).

**Testing**
Tested on a modified hello-triangle example.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-12 02:56:46 +00:00
Dzmitry Malyshau
389a848dea Support trailing render passes after the swapchain rendering 2021-01-11 21:40:41 -05:00
bors[bot]
09ba19b265 Merge #1144
1144: Fix and simplify attachment dimension mismatch check r=kvark a=DasEtwas

This also improves error messages with detailed dimension and attachment type name info which developers can hopefully recognize.

**Connections**
None

**Description**
Before this commit, depth/stencil attachments are not considered when evaluating the renderpasses' dimension, which will result in a "NoAttachment" error with a confusing display message.

**Testing**
Tested by running an application making use of color-only and depth/stencil-only attachment renderpasses.

Tested by running boids, hello-triangle and shadow examples.


Co-authored-by: DasEtwas <18222134+DasEtwas@users.noreply.github.com>
2021-01-11 23:05:10 +00:00
DasEtwas
93f68add27 Decrease error variant code verbosity, apply reviews 2021-01-11 23:46:26 +01:00
DasEtwas
151d521ad9 Fix and simplify attachment dimension mismatch check
This also improves error messages with detailed dimension and attachment type name info which should help developers can hopefully recognize.
2021-01-11 20:13:14 +01:00
bors[bot]
ae3e5057af Merge #1142
1142: Move get_swap_chain_preferred_format from device to adapter and check formats r=kvark a=niklaskorz

**Connections**

https://github.com/gfx-rs/wgpu-rs/issues/123#issuecomment-757831458

**Description**

Not all devices actually support `Bgra8UnormSrgb`. If this is the case, a similar format like `Rgba8UnormSrgb` can be used.

**Testing**

e5ebfa70a4/learn-wgpu/src/lib.rs (L137)

- Output on MacBook Pro 13" Intel 2020 macOS Metal: `Format: Bgra8UnormSrgb`
- Output on OnePlus 7 Pro Android Vulkan: `Format: Rgba8UnormSrgb`


Co-authored-by: Niklas Korz <niklas@niklaskorz.de>
2021-01-11 19:03:40 +00:00
Niklas Korz
ac98c0bdfa Move get_swap_chain_preferred_format from device to adapter and check formats
Squashed commit of the following:

commit 16e9c89dbccda3e37d05f7548dc8b9ddfb1d8613
Author: Niklas Korz <niklas@niklaskorz.de>
Date:   Mon Jan 11 19:15:43 2021 +0100

    format

commit 8c69a70ec22427b6a030915e06654bb0fc9b3c69
Author: Niklas Korz <niklas@niklaskorz.de>
Date:   Mon Jan 11 19:12:24 2021 +0100

    Implement Global::adapter_get_swap_chain_preferred_format

commit 63efae1cff508d060eaa6ccafe80c02af6af21f4
Author: Niklas Korz <niklas@niklaskorz.de>
Date:   Mon Jan 11 17:25:42 2021 +0100

    Move get_swap_chain_preferred_format to adapter

commit 1e72a876994820aec9b18f9dac7f1a9ae82d7cee
Author: Niklas Korz <niklas@niklaskorz.de>
Date:   Mon Jan 11 15:49:10 2021 +0100

    Add fallback to device_get_swap_chain_preferred_format
2021-01-11 19:50:32 +01:00
bors[bot]
5a29e010e2 Merge #1140
1140: Enable storage read/write format feature r=kvark a=Wumpf

**Connections**
#1112

**Description**
Use `wgt::TextureFormatFeatureFlags::STORAGE_READ_WRITE` in `get_texture_format_features`.
This has been waiting for a gfx update which was enabled by @ElArtista 's workaround in #1136 \o/

Co-authored-by: Andreas Reich <r_andreas2@web.de>
2021-01-10 22:26:58 +00:00