Commit Graph

791 Commits

Author SHA1 Message Date
Joshua Groves
8b19724364 Update logo and move bindings section 2020-03-03 00:10:04 -03:30
bors[bot]
3d896d4ce1
Merge #506
506: Bug 1614702 - WebGPU textures, texture views, and samplers r=gecko a=kvark

This is a commit cherry-picked from #504


Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2020-02-28 03:09:13 +00:00
Dzmitry Malyshau
7f3036449b Bug 1614702 - WebGPU textures, texture views, and samplers r=jgilbert,webidl,smaug
this change adds an ability to create WebGPU textures, views, and samplers

Differential Revision: https://phabricator.services.mozilla.com/D63595

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/7d59549f2fda3aed3927ab49b940d9024e161798
2020-02-27 12:50:54 -05:00
bors[bot]
429ca1d446
Merge #505
505: Expose `Global::enumerate_adapters`. r=kvark a=daxpedda

Expose `enumerate_adapters` to use it in `wgpu-rs`.
Issue was that directly accessing `wgpu-core` wasn't possible because an instantiation of `Global` was needed.

Co-authored-by: daxpedda <daxpedda@gmail.com>
2020-02-26 22:34:40 +00:00
daxpedda
498176a8a0
Expose Global::enumerate_adapters. 2020-02-26 16:30:29 +01:00
bors[bot]
153c7f3f08
Merge #501
501: Update WebGPU to mozilla-central from hg rev 0f1a8e4c6a76b3b0b16902c7fdfe2356c60ca351 r=kvark a=staktrace

This merge commit should get tagged as `mozilla-0f1a8e4c6a76b3b0b16902c7fdfe2356c60ca351`.

Co-authored-by: Kartikaya Gupta <kgupta@mozilla.com>
2020-02-20 20:53:27 +00:00
Kartikaya Gupta
b5ba17012a Update WebGPU to mozilla-central from hg rev 0f1a8e4c6a76b3b0b16902c7fdfe2356c60ca351 2020-02-20 15:49:32 -05:00
bors[bot]
4f937c04e1
Merge #497
497: Catch swapchain output being dropped too early r=kvark a=kvark

Prevents a common case where the swapchain frame is dropped before the submission. This is not comprehensive yet, but it should be helpful.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-02-19 03:58:24 +00:00
Dzmitry Malyshau
023ce7f6c8 Catch swapchain output being dropped too early 2020-02-18 22:57:12 -05:00
bors[bot]
f2323f2b23
Merge #495
495: Fix binding compatibility of an absent group r=kvark a=kvark

Fixes #494 

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-02-17 01:21:22 +00:00
Dzmitry Malyshau
a0759b983d Fix binding compatibility of an absent group 2020-02-16 20:17:53 -05:00
bors[bot]
a048f5e5d5
Merge #492
492: Encode render targets into the render pass blob r=grovesNL a=kvark

Fixes #454

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-02-11 12:58:14 +00:00
bors[bot]
73374021d7
Merge #480
480: Implement `enumerate_adapters`. r=kvark a=daxpedda

This is take two of #478, it's a much smaller change with less abstraction.

-  implement `internal_enumerate_adapters`, which refactors `instance.{BACKEND}.enumerate_adapters()` out of `pick_adapter`
-  implement `enumerate_adapters`, which just returns a vector of all GPUs in the form of `AdapterId`

Co-authored-by: daxpedda <daxpedda@gmail.com>
2020-02-10 19:01:20 +00:00
daxpedda
eb6eec5c95
Implement enumerate_adapters. 2020-02-10 19:54:36 +01:00
Dzmitry Malyshau
e05471ad6d Encode render targets into the render pass blob 2020-02-10 12:44:44 -05:00
bors[bot]
557ed0674c
Merge #489
489: All the missing Gecko fixes r=grovesNL a=kvark

Last auto-integration in #474 got borked, partially because of the original change being reverted in mozilla-central. This is the manual sync-up from m-c. Hopefully it doesn't break anything new we got here.

Fixes #457 
Fixes #463

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-02-10 13:48:33 +00:00
Dzmitry Malyshau
ab416bcc68 All the missing Gecko fixes 2020-02-09 20:15:55 -05:00
bors[bot]
d4a46cb60e
Merge #479
479: Serialize BindGroupBinding r=kvark a=imiklos



Co-authored-by: Istvan Miklos <istvan.miklos@h-lab.eu>
2020-01-28 12:41:08 +00:00
Istvan Miklos
38ba0e625a Serialize BindGroupBinding 2020-01-28 12:47:23 +01:00
bors[bot]
9d12a30918
Merge #475
475: Return custom `AdapterInfo` that contains backend. r=kvark a=daxpedda

When requesting an `Adapter` in combination with `BackendBit::all()`, there was no way to determine what backend was ultimately chosen.

This change implements a custom `AdapterInfo` that contains a field with `Backend`, it does otherwise not differ from `gfx_hal::adapter::AdapterInfo`.

The only question I have is about `serde` implementation, currently I can't derive de/serialization from it because of `DeviceType`. This could be fixed by activating the `serde` feature in `gfx-hal`, which isn't possible (as far as i know) without renaming our current `serde` feature.

Co-authored-by: daxpedda <daxpedda@gmail.com>
2020-01-28 11:00:11 +00:00
Dzmitry Malyshau
43f48c85db Readme update with a new logo 2020-01-27 17:05:26 -05:00
daxpedda
cd8e2a30b2
Duplicate DeviceType from gfx-hal. 2020-01-26 23:09:58 +01:00
daxpedda
8c80557dd6
Return custom AdapterInfo that contains backend. 2020-01-25 18:22:34 +01:00
bors[bot]
009bde0f90
Merge #468
468: Switch value of BufferUsage's INDIRECT and STORAGE_READ fields r=kvark a=almarklein

Closes #467. This makes the value of `INDIRECT` equal to it's value in the IDL spec. (`STORAGE_READ` is not present in the IDL spec.)

I changed the value in `resource.rs` and then ran `make ffi/wgpu.h`.


Co-authored-by: Almar Klein <almar.klein@gmail.com>
2020-01-23 16:26:53 +00:00
bors[bot]
b7cdf90cbe
Merge #471
471: Run clippy only when not on nightly r=kvark a=yanchith

... otherwise run `check`

https://github.com/gfx-rs/wgpu/pull/468#issuecomment-577451412

Co-authored-by: yanchith <yanchi.toth@gmail.com>
2020-01-23 15:54:16 +00:00
yanchith
dca7d54fd3 Run clippy only when not on nightly 2020-01-23 16:05:44 +01:00
bors[bot]
61d9e87c6b
Merge #470
470: Fix building on Rust 1.37 r=kvark a=kvark

It doesn't like by-move pattern with an `if`

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-01-23 05:52:38 +00:00
Dzmitry Malyshau
b9e7449b43 Fix building on Rust 1.37
It doesn't like by-move pattern with an `if`
2020-01-23 00:52:04 -05:00
Almar Klein
299a051db1 Switch value of BufferUsage's INDIRECT and STORAGE_READ fields
This makes the value of INDIRECT equal to it's value in the IDL spec.
(STORAGE_READ is not present in the IDL spec).
2020-01-22 08:07:07 +01:00
bors[bot]
c59e35e9cb
Merge #466
466: Refactored swapchain tracking r=sibling a=kvark

This is a sibling of #465 for master.
Fixes #227

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-01-21 19:27:06 +00:00
Dzmitry Malyshau
8a5de68aab Refactor the swap chain frame tracking 2020-01-21 14:24:45 -05:00
Dzmitry Malyshau
ec54038e7c Improve STORAGE_READ support for buffers 2020-01-21 14:13:27 -05:00
Dzmitry Malyshau
ad7045455c Optionally request vertex shader stores and atomics 2020-01-21 14:12:08 -05:00
bors[bot]
5e6eba05bb
Merge #462
462: Using default nsview if not provided by raw-window-handle r=kvark a=lmcgrath

Per #453 I've added some native code to get the default `NSView` if it's not provided by `RawWindowHandle`. This is to support libraries like SDL2 which expose an `NSWindow` but no `NSView`. I'm using the [`[NSWindow contentView]`](https://developer.apple.com/documentation/appkit/nswindow/1419160-contentview) property to get the `NSView`.

Co-authored-by: Logan McGrath <1755866+lmcgrath@users.noreply.github.com>
2020-01-18 18:17:23 +00:00
Logan McGrath
7927f4cb2b Using default nsview if not provided by raw-window-handle 2020-01-18 10:06:10 -08:00
bors[bot]
7387bd1a4d
Merge #461
461: Add Clippy to CI, fix errors and most warnings r=kvark a=yanchith

A quick rundown of changes:

- Fixed instances of clippy error [not_unsafe_ptr_arg_deref](https://rust-lang.github.io/rust-clippy/master/index.html#not_unsafe_ptr_arg_deref): Some extern functions in wgpu-remote are now marked unsafe, as they accessed data behind raw pointer via `Box::from_raw` and `slice::from_raw_parts` (commit 741844cc2b)

- Fixed clippy warning [or_fun_call](https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call) by changing `unwrap_or` to `unwrap_or_else`

- Added `#[allow(clippy::range_plus_one)]` in places where ranges are constructed along with TODOs to fix upstream in gfx. The rule [range_plus_one](https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one) is great if you have everything in one crate, but the gfx hal structs expect `Range` instead of the more generic `RangeBounds` trait.

- Fixed quite a few clippy warnings [missing_safety_doc](https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc) in the trivial cases (`Box::from_raw` and `slice::from_raw_parts`).

There's still a few `missing_safety_doc` warnings left. They all have in common the usage of the unsafe functions `RawPass::encode` and `RawPass::encode_slice`. I think these could potentially be made safe - it seems like `RawPass` manages its invariants internally, but I might be missing something.

I didn't add CI code that posts the warnings to github PR comments, but if anyone is willing to pick that up, this could help: https://github.com/dpobel/damien.pobel.fr/pull/62/files

Fixes: #422

Co-authored-by: yanchith <yanchi.toth@gmail.com>
2020-01-18 16:08:33 +00:00
yanchith
cd114e780a Don't forget to install clippy 2020-01-17 17:58:42 +01:00
yanchith
b6215db57d Modify CI script to run clippy instead of check 2020-01-17 16:30:12 +01:00
yanchith
ab205b042c Add # Safery docs to wgpu-core 2020-01-17 16:15:05 +01:00
yanchith
d24d7157cf Add # Safety docs to wgpu-native 2020-01-17 15:18:35 +01:00
yanchith
8414b01403 Add # Safety docs to wgpu-remote
Only two unsafe functions were used internally:

- `slice::from_raw_parts`
- `Box::from_raw`

The safety messages are adapted from the safety messages of these functions.
2020-01-17 15:04:57 +01:00
yanchith
0d9ad70468 Add TODOs for range_plus_one clippy warnings 2020-01-17 14:44:17 +01:00
yanchith
53b9a01b2f Resolve trivial clippy warning 2020-01-17 14:44:02 +01:00
yanchith
741844cc2b Fix clippy errors
In wgpu-remote, some functions are now marked `unsafe` on the outside,
because they dereferenced a raw pointer they couldn't have checked
themselves.
2020-01-17 14:20:20 +01:00
bors[bot]
3a41272cba
Merge #448
448: Fix framebuffers not always being cleaned up if invalid r=kvark a=LaylConway

This changes framebuffers to be cleaned up if only one view is cleaned up, instead of if all views are cleaned up. This is necessary because currently, at least for me, swapchain images will have a different view every frame. This means that if other views continue to exist between frames, the resulting framebuffers will never be cleaned up.

Fixes #447

Co-authored-by: Layl <2385329-layl@users.noreply.gitlab.com>
2020-01-15 14:24:19 +00:00
Layl
6202d5ddad Fix framebuffers not always being cleaned up if invalid 2020-01-15 15:11:16 +01:00
bors[bot]
881222a947
Merge #451
451: Make BindGroupLayoutBinding Serializable r=kvark a=imiklos

cc @kvark @zakorgy

Co-authored-by: Istvan Miklos <istvan.miklos@h-lab.eu>
2020-01-14 20:04:21 +00:00
bors[bot]
a72574ae0f
Merge #440
440: Stand-alone passes r=me,grovesNL a=kvark

Fixes #438 

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-01-14 15:20:16 +00:00
Istvan Miklos
0fdf77feb5 Make BindGroupLayoutBinding Serializable 2020-01-14 12:43:58 +01:00
Dzmitry Malyshau
a51019795e Switch to a custom fork of peek-poke 2020-01-13 16:52:59 -05:00