Commit Graph

9013 Commits

Author SHA1 Message Date
bors[bot]
118f29fa36 [rs] Merge #433
433: make env_logger a dev dependency r=kvark a=cart

env_logger is only used in examples and adds a good number of dependencies to the build tree that arent needed

Co-authored-by: Carter Anderson <mcanders1@gmail.com>
2020-07-11 02:27:02 +00:00
Carter Anderson
d28787f1d2 [rs] make env_logger a dev dependency 2020-07-10 12:34:03 -07:00
Gabriel Majeri
98e4f73a10 Error handling for data transfer API 2020-07-10 21:50:22 +03:00
Kunal Mohan
26dcdaae59 Add Error State to Storages (#776)
* Add Error State to Storages
fix #772

* use resize function in insert

* address review comments
2020-07-10 14:29:22 -04:00
Kristoffer Søholm
6c062087fa Initial GLSL constant evaluation implementation (#94)
Adds constant evaluation for addition, and uses it for globals and array
specifiers.
2020-07-09 20:52:13 -04:00
bors[bot]
2cd37d3fda [rs] Merge #428
428: Split render pass docs into multiple sections, divided by feature r=cwfitzgerald a=lachlansneff

This does not affect usage at all.

Here's what the docs look like:

<img width="1012" alt="Screen Shot 2020-07-09 at 11 11 30 AM" src="https://user-images.githubusercontent.com/31360811/87057532-fd974c00-c1d4-11ea-8c7f-913a893bcdef.png">


Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2020-07-09 19:01:07 +00:00
Lachlan Sneff
e5dc716a6f [rs] Split render pass docs into multiple sections, divided by feature 2020-07-09 11:06:09 -04:00
bors[bot]
68471acf56 Merge #770
770: Rename bindings to entries r=trivial a=kvark

**Connections**
Upstream https://github.com/gpuweb/gpuweb/pull/611

**Description**
Trivial rename of fields

**Testing**
Needs no test!

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2020-07-09 03:43:04 +00:00
Dzmitry Malyshau
e693170aef Rename bindings to entries 2020-07-08 23:41:09 -04:00
Pelle Johnsen
c9fea37430 Add inital ast for glsl-new (#107)
* Add inital ast for glsl-new

* Fix clippy for glsl-new

Deref instead of cloning
2020-07-08 08:46:31 -04:00
bors[bot]
d3e204127c Merge #769
769: Implement and Validate all WebGPU Limits r=kvark a=cwfitzgerald

**Connections**

None?

**Description**

This adds all the limits that webgpu has currently. It also validates the values.

The main piece of code here is `BindingTypeMaxCountValidator` and `PerStageBindingTypeCounter` which provides the interface for figuring out the maximum per-stage counts in the pipeline. For each `BindGroupLayout` a `BindingTypeMaxCountValidator`is put together during creation using all of the bindings. Then the `BindingTypeMaxCountValidator`s are combined into a single max. This is then validated against the max limits.

Each commit should be independently testable and are grouped by responsibility.

**Testing**

I modified the wgpu-rs example framework to ask for extremely reduced limits and then tested various examples to verify it properly accepted/rejected based on the actual limit.

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2020-07-08 03:29:51 +00:00
Connor Fitzgerald
36fa3b81b4 Validate BindGroup based limits 2020-07-07 23:27:42 -04:00
Connor Fitzgerald
1d5d7ddc40 Validate PipelineLayout based limits 2020-07-07 23:26:23 -04:00
bors[bot]
b288ce0a64 [rs] Merge #426
426: wgpu dependency update with memory fixes r=trivial a=kvark

Fixes #423 (mostly!)

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2020-07-07 21:30:21 +00:00
Dzmitry Malyshau
8ffbcadcde [rs] wgpu dependency update with memory fixes 2020-07-07 17:29:03 -04:00
bors[bot]
01cf22c25a Merge #768
768: Update gfx-extras for the memory changes r=trivial a=kvark

**Connections**
Helps https://github.com/gfx-rs/wgpu-rs/issues/423 quite a bit
Includes https://github.com/gfx-rs/gfx-extras/pull/24

**Description**
Just an update

**Testing**
wgpu-rs examples, internal fuzzying

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2020-07-07 20:43:06 +00:00
Dzmitry Malyshau
7686bb5cad Update gfx-extras for the memory changes 2020-07-07 16:41:26 -04:00
Connor Fitzgerald
238e6b74ee Populate limits struct 2020-07-07 16:12:03 -04:00
bors[bot]
362cde96a7 [rs] Merge #425
425: Update to new `wgpu-core` render pipeline API r=kvark a=GabrielMajeri

Picks up the changes from https://github.com/gfx-rs/wgpu/pull/763

Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-07 19:31:35 +00:00
bors[bot]
7c71de35da Merge #766
766: Validate set_bind_group is within bounds of limit r=kvark a=cwfitzgerald

**Connections**

~~Don't think there are any.~~ Would provide a nicer error message for https://github.com/gfx-rs/wgpu-rs/issues/411.

**Description**

Implements checks related to our only limit.

**Testing**

Untested


Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2020-07-07 19:26:07 +00:00
Connor Fitzgerald
f76b631961 Validate set_bind_group is within bounds of limit 2020-07-07 14:41:54 -04:00
Gabriel Majeri
54d4532dae [rs] Update to new wgpu-core render pipeline API 2020-07-07 21:02:11 +03:00
bors[bot]
cfd21d4913 Merge #763
763: Remove raw pointers from the render pipelines API r=kvark a=GabrielMajeri

**Connections**
Rust-ification of API, as part of #689

**Description**
The objective is to get rid of raw pointers in the render pipeline descriptor and associated structures.

**Testing**
Checked with `player` and the `trace` feature, and with `wgpu-rs` with the changes in https://github.com/gfx-rs/wgpu-rs/pull/425

Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
2020-07-07 17:29:37 +00:00
Gabriel Majeri
d4eeea8118 Remove pointers from pipelines API 2020-07-07 19:37:04 +03:00
bors[bot]
2810498605 Merge #24
24: One big cleanup for the 0.3.1 release r=kvark a=kvark

Closes #10 

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2020-07-07 14:48:45 +00:00
Dzmitry Malyshau
416fb75e65 Bump version, add changelog d3d12-v0.3.1 2020-07-07 10:44:00 -04:00
Dzmitry Malyshau
5bf5f258e7 Debug implementations for root descriptors 2020-07-07 10:43:30 -04:00
Dzmitry Malyshau
9a2b5bdb00 Convert to Rust2018 2020-07-07 10:43:26 -04:00
Dzmitry Malyshau
9017c8db01 Rustfmt pass 2020-07-07 10:39:39 -04:00
bors[bot]
438ac00115 Merge #764
764: Remove UnsafeFeatures as we decided the top level guard is not useful r=cwfitzgerald a=kvark

**Connections**
Reverts part of #691 about unsafe extensions

**Description**
Top-level unsafe is not sound. We still need unsafety close to the spot where it's triggered.

**Testing**
untested

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-07-07 13:05:22 +00:00
Dzmitry Malyshau
46230720b5 Remove UnsafeFeatures as we decided the top level guard is not useful 2020-07-06 23:46:46 -04:00
Oskar Nehlin
8a51f4bc7f Return result instead of panicking when requesting device. (#762)
* Return Result instead of panic for recoverable errors

* Update LimitsExceeded error variant

* Update LimitsExceeded error message
2020-07-06 16:45:11 -04:00
Oskar Nehlin
5b4b695ad3 Check parent adaptor limits instead of physical device limits (#761)
* Check parent adaptor limits instead of physical device limits

* Fix pr comment
2020-07-06 14:14:09 -04:00
Dzmitry Malyshau
28f22810a0 [spv] first steps in control flow graph 2020-07-06 14:10:38 -04:00
Dzmitry Malyshau
39998a4c38 Differenciate between local and external function calls at IR level 2020-07-06 14:10:38 -04:00
Paul Kernfeld
ec52598d61 Deny on panics with clippy 2020-07-06 00:13:51 -04:00
LaughingMan
106cd6d188 WGSL front end: Add basic lexer tests 2020-07-06 00:12:26 -04:00
LaughingMan
1acd12334a WGSL front end: Only accept ASCII chars in identifiers
Previously the lexer would accept any alphanumeric character as part of an
identifier. The spec only allowes identifiers to consist of ASCII alphanumeric
characters though.
2020-07-06 00:12:26 -04:00
Pelle Johnsen
cf62dc3d8c Glsl new multi line comments (#103)
* Add multi line comment support to glsl-new

* Fix glsl-new TokenMetadata for multi line comments
2020-07-05 09:35:20 -04:00
Dzmitry Malyshau
4a769c10b5 [spv] remove the pointer indirection to variables 2020-07-05 09:33:07 -04:00
bors[bot]
35481a5615 Merge #759
759: Bump the maximum bind groups to 8 r=kvark a=kvark

**Connections**
https://github.com/gfx-rs/wgpu-rs/issues/411#issuecomment-653756154

**Description**
This is the hard upper bound. It can be 4, technically, but it would make sense to raise it to at least 8.

**Testing**
Untested, should work still.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-07-04 15:23:56 +00:00
Dzmitry Malyshau
15f3db7d83 Bump the maximum bind groups to 8 2020-07-04 11:17:51 -04:00
Dzmitry Malyshau
33fe3a3dba Struct member origin enum 2020-07-04 11:10:37 -04:00
Dzmitry Malyshau
5d6406b018 Add DepthImage IR type.
Fix all the usage of Bytes type to really mean bytes.
Have logic in the SPIR-V front-end to detect the comparison properties of samplers and images.
2020-07-04 11:10:37 -04:00
Pelle Johnsen
2ffbeba8c6 Fix illegal chars in identifier for glsl-new 2020-07-04 10:58:29 -04:00
Pelle Johnsen
8759572530 Add glsl-new lexer line comment support
- Includes test
2020-07-03 10:05:12 -04:00
LaughingMan
dff3111485 WGSL front end: Fix panic on invalid input
Until now the WGSL parser would interpret a character index as a byte index.
This could lead to a panic on invalid input strings like "\"\u{2}ПЀ\u{0}\"",
because it would use that index to slice a string without ensuring the slicing
happens on a character boundary.

One possible fix would have been to call `str::find` instead of `position`,
however by relying on `splitn` instead of slicing a str manually it is
easier to convince ourselves that this code can no longer panic.

Fixes https://github.com/gfx-rs/naga/issues/90
2020-07-03 10:01:38 -04:00
Pelle Johnsen
aa70703fee Add simple test for glsl-new lexer 2020-07-02 10:06:45 -04:00
Pelle Johnsen
7d5bc0b2e2 Make glsl dep more specific
- Require 4.1 as 4.0 now gives compile errors
2020-07-02 00:20:00 -04:00
Pelle Johnsen
1a9f34ecf2 Handle glsl_new parser errors 2020-07-01 15:20:16 -04:00