Commit Graph

1460 Commits

Author SHA1 Message Date
bors[bot]
2d87fd9067 Merge #1057
1057: Move to gfx master r=cwfitzgerald a=kvark

**Connections**
Fixes #1027

**Description**
Switches us to gfx dependency on github.
Note: there is problem with libc dependency - https://github.com/timothee-haudebourg/khronos-egl/issues/7 - that would need to be resolved before we get this version of the code into either Gecko or Servo.

**Testing**
Ran wgpu-rs examples

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-01 03:56:44 +00:00
Dzmitry Malyshau
9e2f6c2f01 Move to gfx master 2020-11-30 22:50:13 -05:00
bors[bot]
623763bf96 Merge #1056
1056: Replace gfx-descriptor by gpu-descriptor r=cwfitzgerald a=kvark

**Connections**
Unblocks #1027
cc @zakarumych 

**Description**
Removes the last link we had between us and gfx-rs.

**Testing**
Tested on wgpu-rs

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-01 02:49:15 +00:00
Dzmitry Malyshau
10c11d718d Replace gfx-descriptor by gpu-descriptor 2020-11-30 21:48:04 -05:00
bors[bot]
67e652f471 Merge #1047
1047: Update bind group layout API to match upstream r=cwfitzgerald a=kvark

**Connections**
Follows https://github.com/gpuweb/gpuweb/pull/1076, https://github.com/gpuweb/gpuweb/pull/1223 (https://github.com/gpuweb/gpuweb/issues/1164), https://github.com/gpuweb/gpuweb/pull/1255, and https://github.com/gpuweb/gpuweb/pull/1256

**Description**
Aligns our API closer to the latest changes in WebGPU upstream. We technically don't have to do this, but I believe in the end it would be best if our API gets close to upstream.

Note: this is a sensitive change for the users, everybody will get their code broken. So please take a look at the API and see if something is missing or needs improvement, so that we don't have to go through the changes again afterwards.

**Testing**
Doesn't really need testing. Partially covered by the existing playtest.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-11-30 22:31:49 +00:00
bors[bot]
3efba7712a Merge #1055
1055: Disable gfx-backend-gl on macOS r=kvark a=lordnoriyuki

Resolve the wgpu side of https://github.com/gfx-rs/wgpu-rs/issues/646
wgpu-rs will need two changes:
e59ea495a6/Cargo.toml (L53)
e59ea495a6/src/backend/direct.rs (L69)

Co-authored-by: lordnoriyuki <lordnoriyuki@gmail.com>
2020-11-30 01:36:18 +00:00
lordnoriyuki
e160de87d5 Merge remote-tracking branch 'upstream/master' 2020-11-28 16:13:37 -08:00
lordnoriyuki
162cd6bd86 Disable gfx-backend-gl on macOS 2020-11-28 16:11:16 -08:00
bors[bot]
9d12d623c7 Merge #1054
1054: Flush write_texture staging memory r=kvark a=kvark

**Connections**
Fixes part of https://github.com/gfx-rs/wgpu-rs/issues/648

**Description**
Adds the missing flush to the staging buffer in `write_texture`

**Testing**
Untested

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-11-28 18:50:44 +00:00
Dzmitry Malyshau
ee87d7fae7 Flush write_texture staging memory 2020-11-28 12:12:51 -05:00
Dzmitry Malyshau
5949dec61d Update bind group layout API to match upstream 2020-11-28 00:30:27 -05:00
bors[bot]
dd31c924df Merge #1052
1052: Check for missing fragment shader outputs r=kvark a=kvark

**Connections**
Fixes  #1046

**Description**
Introduces a proper error for the missing outputs

**Testing**
Untested

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-11-27 17:46:56 +00:00
Dzmitry Malyshau
e5204e915c Check for missing fragment shader outputs 2020-11-27 12:44:31 -05:00
bors[bot]
99bc5679ed Merge #1051
1051: Register init-destination buffer in the pending writes r=kvark a=kvark

**Connections**
Fixes #1049

**Description**
At some recent point we introduced the map of destination buffers for copies, and I missed the case where buffers are mapped at creation.

**Testing**
Tested on the test-case in #1049

Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
2020-11-26 22:00:46 +00:00
Dzmitry Malyshau
992e240938 Register init-destination buffer in the pending writes 2020-11-26 16:59:25 -05:00
bors[bot]
8cc7bbd480 Merge #1050
1050: player: use the wgpu-cores's gfx-select macro r=kvark a=kvark

**Connections**
Looks like I broke the player in #1034, surprised we didn't notice, and that `cargo test` still passed. The problem was having the `Empty` backend for the device.

**Description**
Fixes the `device` backend in the player, switches the backend set to be `PRIMARY`, and re-uses the `wgc::gfx-select`.

**Testing**
Replaying a trace from #1049

Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
2020-11-26 19:50:54 +00:00
Dzmitry Malyshau
55851add9b player: use the wgpu-cores's gfx-select macro 2020-11-26 14:47:48 -05:00
bors[bot]
75b46976a3 Merge #1048
1048: Make VertexFormat::size a const fn r=kvark a=Imberflur

**Connections**
Addresses #836 

**Description**
The `vertex_attr_array!` macro uses this function. This change enables the macro to be used in `const` contexts and for instance allows returning a `VertexBufferDescriptor` constructed in function without having the difficulties of ensuring the array from `vertex_attr_array!` lives long enough.

**Testing**
I don't believe testing is needed for this.
<!--
Non-trivial functional changes would need to be tested through:
  - [wgpu-rs](https://github.com/gfx-rs/wgpu-rs) - test the examples.
  - [wgpu-native](https://github.com/gfx-rs/wgpu-native/) - check the generated C header for sanity.

Ideally, a PR needs to link to the draft PRs in these projects with relevant modifications.
See https://github.com/gfx-rs/wgpu/pull/666 for an example.
If you can add a unit/integration test here in `wgpu`, that would be best.
-->


Co-authored-by: Imbris <imbrisf@gmail.com>
2020-11-26 18:06:21 +00:00
Imbris
44a20d72ef Make VertexFormat::size a const fn 2020-11-26 03:36:13 -05:00
bors[bot]
fd99466867 Merge #1045
1045: Updating to latest gpu-alloc r=grovesNL a=lordnoriyuki

Fixes https://github.com/gfx-rs/wgpu/issues/1043

Co-authored-by: lordnoriyuki <lordnoriyuki@gmail.com>
2020-11-25 03:16:18 +00:00
lordnoriyuki
c80ca8dbe4 Updating to latest gpu-alloc 2020-11-24 19:10:46 -08:00
bors[bot]
549ea0022b Merge #1041
1041: Update gpu-alloc and naga with linear allocation fixes r=kvark a=kvark

**Connections**
Fixes #1038

**Description**
Includes b807b5fb41

**Testing**
Tested on the API trace

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-11-24 14:41:38 +00:00
Dzmitry Malyshau
2f55c708b8 Update gpu-alloc and naga with linear allocation fixes 2020-11-24 09:40:36 -05:00
bors[bot]
385ee9fecf Merge #1034
1034: Fearless object creation r=kvark a=kvark

**Connections**
Fixes #977
Fixes #1032

**Description**
Requiring a separate `xxx_error()` is very convenient for `wgpu-core`, but getting repetitive and complicated for all the users of the API. This PR changes it so we return an object ID unconditionally, and sometimes it's an error. The actual error is passed on the side.

**Testing**
Tested on https://github.com/gfx-rs/wgpu-rs/pull/633

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-11-23 17:06:37 +00:00
Dzmitry Malyshau
c6bc37dbde [error] render bundles 2020-11-23 12:00:47 -05:00
Dzmitry Malyshau
6307294e2b [error] pipeline creation 2020-11-23 11:57:32 -05:00
Dzmitry Malyshau
ad824de268 [error] bind groups and layouts creation 2020-11-23 11:57:32 -05:00
Dzmitry Malyshau
fccbca28bd [error] shader module creation, separate descriptor 2020-11-23 11:57:32 -05:00
Dzmitry Malyshau
e96e5f917c [error] sampler creation 2020-11-23 11:57:32 -05:00
Dzmitry Malyshau
8287464855 [error] texture view creation 2020-11-23 11:57:32 -05:00
Dzmitry Malyshau
bedd037517 [error] buffer creation 2020-11-23 11:57:32 -05:00
Dzmitry Malyshau
eb4f633e39 [error] texture creation 2020-11-23 11:57:32 -05:00
bors[bot]
feac96d315 Merge #1037
1037: Add Ids to PassErrorScope r=kvark a=scoopr

Also makes it pub, and the places it is used.
Tweak some error messages.


Co-authored-by: Mikko Lehtonen <scoopr@iki.fi>
2020-11-22 19:40:57 +00:00
Mikko Lehtonen
459e835250 Add Ids to PassErrorScope
Also makes it pub, and the places it is used.
Tweak some error messages.
2020-11-21 23:39:05 +02:00
bors[bot]
be398d6e2a Merge #1036
1036: Stop using Borrow<RefCount> r=scoopr a=kvark

**Connections**
Follow-up to #931

**Description**
Takes advantage of the new `trait Resource` in the state tracker, reducing the code.

**Testing**
Not tested outside of `cargo test`

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-11-21 17:50:44 +00:00
Dzmitry Malyshau
46b87e220c Stop using Borrow<RefCount> 2020-11-21 10:38:20 -05:00
Dzmitry Malyshau
dfcf840b2b Architecture diagram 2020-11-19 21:11:19 -05:00
bors[bot]
9d35aea08e Merge #1033
1033: Missing label queries r=kvark a=scoopr

I missed few bits needed for labeling the resources in the errors.

Co-authored-by: Mikko Lehtonen <scoopr@iki.fi>
2020-11-19 22:25:04 +00:00
Mikko Lehtonen
48e64fc8c6 Add missing label query methods 2020-11-19 23:37:59 +02:00
Mikko Lehtonen
a41f7ea78f Make inner errors pub 2020-11-19 23:37:36 +02:00
bors[bot]
19b4ec58ae Merge #931
931: Retain labels for resources r=kvark a=scoopr

This is wip, mostly a conversation starter.

I've attempted to have some labels show up in the errors, outside of only creation errors.
Steps to do that include,
1. Retain the label in the underlying struct (here, `Buffer`). It is guarded by `debug_assertions`
2. Add the label option to the error variant, and show it
3. Add label option to the `Element::Error` variant, so that invalid ids retain the label also. Didn't guard it with `debug_assertions` yet, but probably should. `buffer_error` now takes the label option.
4. Added a query for invalid id labels
5. Add `Global::buffer_label` for returning the label from the struct, or the invalid id.
6. Change the error variants to query the `buffer_label` when creating the error

with that (and little bit of fudging to get in to the error state), I can get
```
wgpu error: Validation error

Caused by:
    In CommandEncoder::copy_buffer_to_buffer
    buffer (0, 1, Metal) (label: Some("Staging buffer")) is invalid
```
instead of 
```
wgpu error: Validation error

Caused by:
    In CommandEncoder::copy_buffer_to_buffer
    buffer (0, 1, Metal) is invalid
```

Some of the hub handling etc. is a bit iffy for me, I really have no idea what I'm doing.

The point would be to massage this to the point that there would be a simple steps to follow on how to decorate all the errors with labels to whatever they refer to.

Other ideas I had, included trying to have `impl Debug for Id<BufferId>` to print out the label (from the struct, wouldn't work for invalid ids), but in that context I don't think I have access to the Global, so I'm not sure how resolve the id to anything useful. I suppose there could a whole separate singleton storage for id to label maps which could be easier to access in any context. Then the errors could just store the Id, and not have a separate label field.




Co-authored-by: Mikko Lehtonen <scoopr@iki.fi>
2020-11-18 22:47:02 +00:00
Mikko Lehtonen
4498f172cc Retain labels for resources
As a braking api change, adds also label for the error id generation,
for labeling invalid ids too.

Also adds query methods the label.
2020-11-19 00:09:21 +02:00
bors[bot]
5e1226995c Merge #1031
1031: Update gpu-alloc and naga r=straightforward a=kvark

**Connections**
includes critical https://github.com/zakarumych/gpu-alloc/pull/24

**Description**
Updates Naga and gpu-alloc deps

**Testing**
Tested on wgpu-rs

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-11-18 14:26:07 +00:00
Dzmitry Malyshau
b48764728d Update gpu-alloc and naga 2020-11-18 09:24:43 -05:00
bors[bot]
d3cc2dc511 Merge #1025
1025: Don't install Android NDK r=msiglreith a=kvark

Follows https://github.com/gfx-rs/gfx/pull/3474

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
Co-authored-by: msiglreith <m.siglreith@gmail.com>
2020-11-15 23:35:47 +00:00
msiglreith
b09027a74a export ndk toolchain path 2020-11-15 18:34:55 -05:00
Dzmitry Malyshau
c7273b03d6 Don't install Android NDK 2020-11-14 20:07:50 -05:00
bors[bot]
af9713b249 Merge #1023
1023: Drop surfaces and adapters r=cwfitzgerald a=kvark

**Connections**
Not very connected

**Description**
Refactors our destruction paths a bit

**Testing**
tested on wgpu-rs

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-11-13 23:50:28 +00:00
bors[bot]
82021b5e7c Merge #1024
1024: Update naga to 4d4e1cd4cb r=kvark a=kvark

**Connections**
Includes https://github.com/gfx-rs/naga/pull/273, https://github.com/gfx-rs/naga/pull/270, and others

**Description**
Better SPIR-V validation and introspection

**Testing**
Tested on Gecko (yo!)

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-11-13 23:43:33 +00:00
Dzmitry Malyshau
ac89fbab8a Drop surfaces and adapters 2020-11-13 18:39:14 -05:00