Commit Graph

9013 Commits

Author SHA1 Message Date
Dzmitry Malyshau
4f958bf658 [msl] refactor function call parsing 2020-12-06 23:30:52 -05:00
Dzmitry Malyshau
e0c2178b3f [spv] write down workgroup size 2020-12-06 23:24:06 -05:00
bors[bot]
19e5c748ad [rs] Merge #664
664: Integrate ETC and ASTC textures in Skybox example r=kvark a=cwfitzgerald

Depends on https://github.com/gfx-rs/wgpu/pull/1074

Converts skybox example to mip-mapped files in:
 - Bgra8
 - Bc1
 - ETC2
 - ASTC4x4

Looks quite good now with mipmapping and trilinear filtering even at small resolutions.

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2020-12-06 22:27:35 +00:00
Connor Fitzgerald
20689c32d2 [rs] Integrate ETC and ASTC textures in skybox example 2020-12-06 16:51:57 -05:00
Dzmitry Malyshau
3f33434c6f Enable experimental translation to playtests 2020-12-06 15:14:14 -05:00
Dzmitry Malyshau
dccc57e7b5 Switch playtests to WGSL 2020-12-06 14:51:23 -05:00
Dzmitry Malyshau
b597bc5af6 [wgsl] add min/max support 2020-12-06 11:54:19 -05:00
Dzmitry Malyshau
ef4e8cacf9 [spv] refactor binary operators, add module and addition 2020-12-06 17:43:15 +01:00
bors[bot]
17b475ae6a [rs] Merge #663
663: Shader module descriptor r=cwfitzgerald,grovesNL a=kvark

Depends on https://github.com/gfx-rs/wgpu/pull/1071
Fixes #665
Based on #662

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-06 02:13:54 +00:00
bors[bot]
7b886f4b1e Merge #1074
1074: Implement ETC2 and ASTC textures r=kvark a=cwfitzgerald

**Connections**

Closes #1070. Makes progress towards #1069.

**Description**

This PR has multiple functions:
 - Adds ETC and ASTC compressed textures behind features.
 - Adds three helper functions on `Extent3d` that help in calculating mip sizes: `at_mip_level`, `max_mips`, and `physical_size`.
 - Refactors various conversions into a public `TextureFormat::describe` function. I have used a decl macro to ease in the declaration and modifcation of an otherwise horribly verbose function.

I have tried to use clever multi-select based data copying to reduce the possibility for errors, but there's a _lot_ of data moving around here.

**Testing**

Upcoming wgpu-rs pr adding wider compressed texture support to the skybox example. Helper functions were tested with doctests.

Marked as draft until I can get the wgpu-rs pr done and prove it works, it is, however, ready for review.


Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2020-12-06 00:31:39 +00:00
Connor Fitzgerald
19fb491262 Fix validation of compressed mipmaps 2020-12-05 19:30:26 -05:00
Connor Fitzgerald
8f430ab1ef Implement ETC2 and ASTC textures 2020-12-05 19:30:26 -05:00
bors[bot]
d430e044b5 Merge #1076
1076: Fix player warnings r=kvark a=kvark

```
warning: unused `std::result::Result` that must be used
   --> player/src/bin/play.rs:142:29
    |
142 | ...                   gfx_select!(device => global.device_create_swap_chain(device, surface, &desc));
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unused_must_use)]` on by default
    = note: this `Result` may be an `Err` variant, which should be handled
    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

warning: unused `std::result::Result` that must be used
   --> player/src/bin/play.rs:147:29
    |
147 | ...                   gfx_select!(device => global.swap_chain_present(id));
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: this `Result` may be an `Err` variant, which should be handled
    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

warning: unused `std::result::Result` that must be used
   --> player/src/bin/play.rs:173:21
    |
173 |                     gfx_select!(device => global.device_poll(device, true));
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: this `Result` may be an `Err` variant, which should be handled
    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

warning: 3 warnings emitted
```

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-05 23:56:38 +00:00
Dzmitry Malyshau
91a66b4b4a Fix player warnings 2020-12-05 18:55:27 -05:00
Dzmitry Malyshau
47f471bebb [rs] Introduce ShaderModuleDescriptor 2020-12-05 18:53:37 -05:00
bors[bot]
9960ded7ae Merge #1071
1071: Add pervasive Naga support to shader module loading r=cwfitzgerald a=kvark

**Connections**
Depends on https://github.com/gfx-rs/naga/pull/299 and https://github.com/gfx-rs/gfx/pull/3503
Closes #1072

**Description**
    The purpose of the PR is to support Naga modules everywhere.
    As a requirement, it updates the gfx-rs version used.
    Most of the logic is dedicated towards building a shader interface,
    where previously we just used naga's IR. Now we have our own mini-IR.

**Testing**
Tested in https://github.com/gfx-rs/wgpu-rs/pull/663 (without the experimental feature).
Enabling the experimental feature doesn't work even on the play test that we have - https://github.com/gfx-rs/naga/issues/300

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-05 21:34:33 +00:00
Dzmitry Malyshau
749f737c89 Add pervasive Naga support to shader module loading
The purpose of the PR is to support Naga modules everywhere.
As a requirement, it updates the gfx-rs version used.
Most of the logic is dedicated towards building a shader interface,
where previously we just used naga's IR. Now we have our own mini-IR.
2020-12-05 11:31:03 -05:00
Dzmitry Malyshau
5b14e26659 [wgsl] add a test module with units for if/loop/switch statements 2020-12-05 11:29:36 -05:00
Dzmitry Malyshau
f7ca7f2aff Refactor Switch statement, implement on WGSL 2020-12-05 00:22:39 -05:00
bors[bot]
71a7ffe7b5 [rs] Merge #662
662: API and examples update for index_format r=kvark a=kejor

__Connections__
#608 https://github.com/gfx-rs/wgpu/issues/978 https://github.com/gfx-rs/wgpu/pull/1019

__Description__
Use new API from 4513fb2b83 where `wgpu_render_pass_set_index_buffer` and `wgpu_render_bundle_set_index_buffer` receive an `index_format` and `VertexStateDescriptor`'s `index_format` is an `Option`. The examples were updated accordingly.

Co-authored-by: kejor <kevinoviedorueda@gmail.com>
2020-12-05 02:14:38 +00:00
kejor
fe1a76dee7 [rs] API and examples update for index_format 2020-12-04 20:29:42 -05:00
Dzmitry Malyshau
5fe9429a63 Terminator processor, used in WGSL and GLSL frontends 2020-12-04 17:23:13 -05:00
Dzmitry Malyshau
f18443a79d Validate builtin types 2020-12-04 16:13:14 -05:00
Dzmitry Malyshau
92de5851d0 [wgsl] update builtin names, have implicit function return type 2020-12-04 16:09:57 -05:00
Dzmitry Malyshau
0d81b1f78c [msl] add TranslationInfo struct 2020-12-04 10:40:13 -05:00
Dzmitry Malyshau
d190c6441f Add spv::write_vec helper. 2020-12-04 10:40:13 -05:00
Dzmitry Malyshau
d164b0dbc6 Add license to big-picture.xml 2020-12-03 14:52:38 -05:00
Dzmitry Malyshau
41c658df7a [rs] Fix map_extent_3d in the Web backend 2020-12-02 17:32:36 -05:00
bors[bot]
4b7a0161a3 [rs] Merge #659
659: Temporarily skip debug labels for web backend r=kvark a=grovesNL

Debug labels aren't currently supported by gecko. We can re-enable these later.

Co-authored-by: Joshua Groves <josh@joshgroves.com>
2020-12-02 04:12:45 +00:00
Joshua Groves
1431e7f9d1 [rs] Temporarily skip debug labels for web backend
Debug labels aren't currently supported by gecko
2020-12-02 00:32:55 -03:30
bors[bot]
ab3d514677 Merge #1019
1019: Match upstream API changes for IndexFormat r=kvark a=kejor

**Connections**
#978 

**Description**
Match upstream API changes for IndexFormat.

- `index_format` from `VertexStateDescriptor` is now a `Option`
- `RenderCommand::SetIndexBuffer` now has a `index_format` attribute
- The index format for execution is now set when matched both `RenderCommand::SetPipeline` and `RenderCommand::SetIndexBuffer`.

**Testing**
Tested with the examples of e5f82a2197

---

Should I implement this?0855ad9b97/spec/index.bs (L3703)

Co-authored-by: kejor <kevinoviedorueda@gmail.com>
2020-12-02 03:03:46 +00:00
Joshua Groves
b278dd2c64 [rs] Specify version for wasm-bindgen-cli 2020-12-01 21:41:46 -03:30
bors[bot]
3c401d2468 [rs] Merge #657
657: Add EGL to docs action r=kvark a=grovesNL

Looks like we need to install EGL for the docs action to match the regular CI action, see https://github.com/gfx-rs/wgpu-rs/runs/1478040907

Co-authored-by: Joshua Groves <josh@joshgroves.com>
2020-12-02 00:54:29 +00:00
Joshua Groves
3fd6320df9 [rs] Add EGL to docs action 2020-12-01 21:18:16 -03:30
Joshua Groves
6ec1d27ac6 [rs] Publish examples to subdirectory 2020-12-01 21:09:53 -03:30
kejor
4513fb2b83 Match upstream API changes for IndexFormat 2020-12-01 19:19:41 -05:00
Dzmitry Malyshau
265c99c1d7 [rs] Create CHANGELOG.md 2020-12-01 09:25:15 -05:00
bors[bot]
8e0ead1b77 [rs] Merge #655
655: Update to gfx from master r=kvark a=kvark

Depends on https://github.com/gfx-rs/wgpu/pull/1057
Expect the unexpected wrt the gpu-descriptor, which hasn't been tested much!

Also refactors the CI a bit to reduce the number of jobs by moving out `wasm` into a separate job.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-01 04:47:39 +00:00
Dzmitry Malyshau
adbf0c719f [rs] Update to gfx from master 2020-11-30 23:45:56 -05:00
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]
bc9648a44c [rs] Merge #649
649: Adopt the updated bind group entry API r=kvark a=kvark

Depends on https://github.com/gfx-rs/wgpu/pull/1047

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-01 03:45:56 +00:00
Dzmitry Malyshau
c9a718d689 [rs] Adopt the updated bind group entry API 2020-11-30 22:31:31 -05:00
bors[bot]
1eaed5e448 [rs] Merge #654
654: Use web-sys release instead of patch r=kvark a=grovesNL

`patch` isn't necessary anymore because there's a new release of web-sys and wasm-bindgen

Fixes #637

Co-authored-by: Joshua Groves <josh@joshgroves.com>
2020-12-01 02:49:48 +00: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
Joshua Groves
80ab100020 [rs] Use web-sys release instead of patch 2020-11-30 22:26:40 -03:30
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]
2fe96fdab2 [rs] Merge #653
653: Print chosen adapter when running examples r=kvark a=Diggsey



Co-authored-by: Diggory Blake <diggsey@googlemail.com>
2020-11-30 18:41:44 +00:00
Diggory Blake
b046340a57 [rs] Print chosen adapter when running examples 2020-11-30 18:33:51 +00:00