Commit Graph

9013 Commits

Author SHA1 Message Date
Andrea Nardi
36049884a5 [rs] Added Static Lifetime to Statically Loaded SPIR-V Modules
Signed-off-by: Andrea Nardi <buongiorno19972@gmail.com>
2020-07-20 19:35:34 +02:00
Marvin Löbel
4ed2c0a313 Replace borrowed slices in Descriptor structs with copy on write slices (#822)
* Replace &[T] in descriptor structs with Cow<[T]>

* Changed label fields to use Cow<'a, str>

* Deduplicate types across the tracing API

Introduce the ToStatic trait

* Deduplicate trace::RenderBundleDescriptor

* Remove ugly ToOwned bounds

* Simplifiy Action variants

* Make Clone bounds on type defs less verbose

* Fix a error in play.rs

* Remove ToStatic, and Make Action<'a> borrow descriptors instead
2020-07-20 12:31:05 -04:00
bors[bot]
86a3089551 [rs] Merge #452
452: Update to latest wgpu r=kvark a=rukai

public API changes:
*    get_next_frame -> get_current_frame to better reflect the name of webgpu api being called.

Co-authored-by: Rukai <rubickent@gmail.com>
2020-07-20 16:23:40 +00:00
Rukai
9f99d67a63 [rs] Update to latest wgpu 2020-07-21 01:51:55 +10:00
Pelle Johnsen
41ca3834f5 [glsl-new] store int constants in module (#111) 2020-07-20 10:56:10 -04:00
bors[bot]
3c6ee8766a Merge #816
816: Error types for buffer mapping API r=kvark a=GabrielMajeri

**Connections**
Part of #638 

**Description**
Adds safe error handling for buffer mapping/unmapping functions.

**Testing**
Checked with core, and ran tests with player.

Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-20 14:55:13 +00:00
bors[bot]
10c1f85e9a Merge #819
819: swap_chain_present returns SwapChainStatus r=kvark a=rukai

**Connections**
Needed by https://github.com/gfx-rs/wgpu-rs/pull/452

**Description**
For `swap_chain_present` moves the PresentError cases out of the Err and into the Ok.
This means we can `.unwrap()` the result in wgpu and it will only panic on an error that the user cant handle.

**Testing**
Ran the wgpu-rs examples.


Co-authored-by: Rukai <rubickent@gmail.com>
2020-07-20 14:48:46 +00:00
Rukai
3fe9d8872f swap_chain_present returns SwapChainStatus 2020-07-20 21:13:22 +10:00
Gabriel Majeri
ec12d9547d Error types for buffer mapping API 2020-07-20 07:22:52 +03:00
bors[bot]
417b01d1e5 [rs] Merge #455
455: Fix early logging in the examples r=kvark a=yzsolt

Fix early logging in the examples by moving logger initialization from `start` into `setup`.

Note: I haven't actually checked this on the WASM target, but it should probably be fine.

Co-authored-by: Zsolt Bölöny <bolony.zsolt@gmail.com>
2020-07-20 00:24:44 +00:00
Gabriel Majeri
08182d14bf [rs] Implement more derives for Operations (#450)
* Implement more derives for `Operations`

* Use `trace` / `replay` features for serialization

* Set `store` to default
2020-07-19 20:20:45 -04:00
bors[bot]
73b230871e Merge #814
814: Error type for texture creation r=kvark a=GabrielMajeri

**Connections**
Part of #638 

**Description**
Creates an error type for texture creation functions.

**Testing**
Checked with core and player.

Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-20 00:16:56 +00:00
Zsolt Bölöny
ece80019f8 [rs] Move logger init earlier in the example framework 2020-07-19 22:41:27 +02:00
Gabriel Majeri
cbca43258f Convert MAX_MIP_LEVELS to u32 2020-07-19 20:42:33 +03:00
Gabriel Majeri
e53aa70b9a Error type for texture creation 2020-07-19 20:42:31 +03:00
bors[bot]
d73683e35e Merge #813
813: Add buffer creation error type r=kvark a=GabrielMajeri

**Connections**
Part of #638 

**Description**
Adds an error type for the buffer creation functions.

**Testing**
Checked with core and ran test on player.

Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-19 17:19:01 +00:00
Gabriel Majeri
e4fd871f49 Unwrap error when trying to map buffer on creation 2020-07-19 06:43:01 +03:00
bors[bot]
1a647775ae Merge #815
815: Remove error logging from `binding_model` r=kvark a=GabrielMajeri

**Connections**
Part of #638 

**Description**
Removes some `log::error!` calls from `binding_model.rs`, instead encoding the messages in the error type.

**Testing**
Checked with core.


Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-18 22:18:22 +00:00
bors[bot]
8cfe8bb56d Merge #812
812: Error type for `WaitIdle` r=kvark a=GabrielMajeri

**Connections**
Part of #638 

**Description**
Adds an error type for the `wait_idle` function.

**Testing**
Checked with core.

Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-18 22:12:37 +00:00
Gabriel Majeri
1b563c8e3d Safe error handling in instance module (#817)
* Safe error handling in instance module

* Revert alignment checks back to assertions
2020-07-18 18:11:04 -04:00
Gabriel Majeri
fc460f4eab Propagate WaitIdleError up through the API 2020-07-18 20:39:11 +03:00
bors[bot]
6ea8e3ec51 Merge #811
811: Error type for `command_encoder_finish` r=kvark a=GabrielMajeri

**Connections**
Part of #638 

**Description**
Makes `command_encoder_finish` return an error type.

**Testing**
Checked with core.

Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-18 16:55:31 +00:00
Gabriel Majeri
3d3cb2b55d Remove error logging from binding_model 2020-07-18 11:30:59 +03:00
Gabriel Majeri
2ac778b312 Add buffer creation error type 2020-07-18 11:12:15 +03:00
Gabriel Majeri
0ff7bb4dec Error type for WaitIdle 2020-07-18 10:58:46 +03:00
Gabriel Majeri
04b0b4d3a5 Error type for command_encoder_finish 2020-07-18 10:46:47 +03:00
bors[bot]
a689aea3f2 Merge #810
810: Convert the existing error types to `thiserror` r=kvark a=GabrielMajeri

**Connections**
Part of #638

**Description**
Converts the crate's existing error types from a manual `Display` implementation to using `thiserror`.

**Testing**
Tested with core and `wgpu-rs`.

Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-18 04:51:46 +00:00
Gabriel Majeri
a27b24215d Convert the existing error types to thiserror 2020-07-18 07:29:20 +03:00
bors[bot]
20a5611b2c Merge #809
809: Safe error handling for swap chain r=kvark a=GabrielMajeri

**Connections**
Part of #638 

**Description**
Error types for swap chain functions, using `thiserror` to avoid boilerplate code.

**Testing**
Checked with core and player.

Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-18 03:37:41 +00:00
Gabriel Majeri
8bd33c2242 Replace transpose with a match 2020-07-18 06:36:10 +03:00
bors[bot]
d1dea85944 [rs] Merge #447
447: Remove Lifetimes from Push Constants r=kvark a=cwfitzgerald

This is sound because for render passes, compute passes, and render bundles we immediately copy the data into an internal buffer then refer to the data by offset into the buffer.

This also cleans up the example a bit as we don't need the array to outlive the statement.

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2020-07-17 19:13:22 +00:00
Connor Fitzgerald
d0bd56cb07 [rs] Remove Lifetimes from Push Constants 2020-07-17 14:52:33 -04:00
Gabriel Majeri
314074d13c Safe error handling for swap chain 2020-07-17 21:11:28 +03:00
bors[bot]
a753f578be Merge #808
808: Use `thiserror` for validation module r=kvark a=GabrielMajeri

**Connections**
Part of #638

**Description**
_Describe what problem this is solving, and how it's solved._

**Testing**
Checked with core repo. This doesn't change any code, just adds an `Error`/`Display` implementation.


Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-17 17:37:58 +00:00
Gabriel Majeri
ce5bcf86f1 Use thiserror for validation module 2020-07-17 20:21:19 +03:00
bors[bot]
2455a653f2 Merge #803
803: Player-based GPU test framework r=cwfitzgerald a=kvark

**Connections**
Closes #786

**Description**
This change adds a GPU-based testing by re-using the Player from tracing infrastructure - #289.
It converts the player into a lib + binary, and adds an integration test into the crate that implements RON-specified testing.

Current implementation has a few requirements/gotchas that are listed in `test.rs`:
* in all the IDs, the backend is `Empty`
* all expected buffers have `MAP_READ` usage on them
* last action is `Submit`

I believe it's workable, and we can improve it down the road (e.g. with #792).

**Testing**
MUHAHAHA
`cargo test` nails it

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-07-17 15:03:49 +00:00
Dzmitry Malyshau
eb7bdcd012 playtest: move the actions together with expectations 2020-07-17 10:59:02 -04:00
bors[bot]
0c7f189134 Merge #806
806: Fix rods error check - fixes water example r=kvark a=rukai

**Description**
Fixes water example panic

**Testing**
Tested on every wgpu-rs example


Co-authored-by: Rukai <rubickent@gmail.com>
2020-07-17 13:39:02 +00:00
Rukai
de0ac2ccb7 Fix rods error check 2020-07-17 19:31:45 +10:00
Dzmitry Malyshau
acef9206a6 Player-based GPU test framework 2020-07-17 00:08:43 -04:00
bors[bot]
0c74c0348e [rs] Merge #443
443: Implement typical Error traits for SwapChainError r=kvark a=DasEtwas

Added Display and Error implementation for SwapChainError, imported Display and Error more nicely for the existing errors.

Co-authored-by: DasEtwas <18222134+DasEtwas@users.noreply.github.com>
2020-07-16 23:56:28 +00:00
DasEtwas
88ab8aba86 [rs] added Display and Error implementation for SwapChainError, imported Display and Error more nicely 2020-07-16 23:46:10 +02:00
bors[bot]
3cdb9f72aa Merge #800
800: Add the preferred format query r=cwfitzgerald a=kvark

Just getting us synced up to the spec naming and API for the swapchains...

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2020-07-16 19:59:10 +00:00
bors[bot]
d904598fbc Merge #802
802: adds size function for VertexFormat r=kvark a=bootra-dev

Addresses https://github.com/gfx-rs/wgpu/issues/801

This PR adds a simple size function to the VertexFormat enum. It returns a u64 so that it can be conveniently used with the VertexAttributeDescriptor offset.


Co-authored-by: bootra-dev <bootragames@gmail.com>
2020-07-16 19:23:14 +00:00
bootra-dev
3204f0e5fe [rs] replace vertex_format_size macro with VertexFormat size function 2020-07-16 14:25:22 -04:00
bootra-dev
215c9fe750 refactor to group by size 2020-07-16 14:00:06 -04:00
bootra-dev
ee0e4850fd add size function for VertexFormat 2020-07-16 13:55:34 -04:00
Dzmitry Malyshau
76e136e375 add the preferred format query 2020-07-16 11:27:05 -04:00
bors[bot]
71e853d6ce Merge #798
798: Fixed storage buffer counting towards storage textures for binding validation r=kvark a=Wumpf

See title.
(broke my group layout creation since my compute shaders need quite a few storage buffers _and_ storage textures bound... ;-))

Co-authored-by: Andreas Reich <r_andreas2@web.de>
2020-07-16 14:33:40 +00:00
bors[bot]
9072c7ce48 [rs] Merge #439
439: Update to latest `wgpu-core` r=kvark a=GabrielMajeri

Pull in some of the latest changes from the `wgpu` repo

Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-16 14:27:16 +00:00