Commit Graph

1607 Commits

Author SHA1 Message Date
Andreas Reich
216dcf949b MemoryInitTracker has now a custom impl that doesn't depend on range-alloc 2021-01-31 21:56:31 +01:00
Andreas Reich
32b4e32ac6 MemoryInitTracker tests and interface adjustments 2021-01-31 21:56:31 +01:00
Andreas Reich
492027fe6e command buffer buffer memory init tracking is only filled if necessary now 2021-01-31 21:56:22 +01:00
Andreas Reich
22fb9ab1eb buffer zero init on queue_submit emits correct barriers now
refactored this zero init into separate method
2021-01-31 21:55:49 +01:00
Andreas Reich
5d2afa52c1 Fix zero init for buffers mapped at cration that are not mappable 2021-01-31 21:55:49 +01:00
Andreas Reich
1efdc2b229 Queue_submit zeros out uninitialized buffer regions now
again but with fine grained scheme now
2021-01-31 21:55:49 +01:00
Andreas Reich
9595b39bb3 Fine grained tracking of buffer init requirements 2021-01-31 21:55:49 +01:00
Andreas Reich
5133b0da94 Introduced separate MemoryInitTracker 2021-01-31 21:55:49 +01:00
Andreas Reich
076aecd150 buffer map permeates zero init now in any case 2021-01-31 21:55:49 +01:00
Andreas Reich
a51b4f9232 buffer zero initialization prior to use in submit 2021-01-31 21:55:49 +01:00
Andreas Reich
875cfb5961 buffers are now zero initialized for mappings
queue_write_buffer marks as initialized
2021-01-31 21:55:49 +01:00
bors[bot]
1668bb2451 Merge #1180
1180: Add dummy structs for indirect command buffers r=cwfitzgerald,kvark a=Wumpf

**Connections**
Review of #1159 which could make more use of this expressiveness patch of having the buffers spelled out.

**Description**
Add dummy structs for indirect command buffers and (bonus!) fix missing IndirectBufferOverrun error for IndirectDispatch.

**Testing**
squinting at it only 👁️👁️

Co-authored-by: Andreas Reich <r_andreas2@web.de>
2021-01-31 20:41:22 +00:00
Andreas Reich
6b51328b2e Add public structs for indirect command buffers
and fix missing IndirectBufferOverrun error for IndirectDispatch
2021-01-31 21:32:33 +01:00
bors[bot]
ac81f3e756 Merge #1179
1179: Fix depth bias documentation r=kvark a=kvark

**Connections**
Follow-up to #1178

**Description**
Clippy complained...

**Testing**
No need

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-29 05:27:29 +00:00
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