Commit Graph

9013 Commits

Author SHA1 Message Date
bors[bot]
6a746ac540 [rs] Merge #154
154: Use exact version for winit alpha r=kvark a=grovesNL

Use exact version for winit alpha to avoid issues when new alphas are published (rust-windowing/winit#1362)

Co-authored-by: Joshua Groves <josh@joshgroves.com>
2020-01-05 21:51:55 +00:00
Joshua Groves
efb1d56dfe [rs] Use exact version for winit alpha 2020-01-05 10:06:18 -03:30
bors[bot]
9497bac0e1 [rs] Merge #152
152: Update to latest winit (0.20.0-alpha6) r=kvark a=grovesNL

Updated to latest winit to fix examples:
- `RedrawRequested` is now used for rendering
- `EventsCleared` replaced by `MainEventsCleared` which requests redraw
- Removed Metal auto-capture and escape key handling from hello-triangle to simplify the example slightly (it doesn't use `framework`, so we should try to make it as simple as possible IMO)

Should we also remove the `feature = gl` parts of the examples to simplify them until GL is reenabled?

Co-authored-by: Joshua Groves <josh@joshgroves.com>
2020-01-05 03:03:37 +00:00
Joshua Groves
17b82f6d01 [rs] Disable Travis cache 2020-01-04 23:10:28 -03:30
Joshua Groves
aa623f842b [rs] Update to latest winit (0.20.0-alpha6)
- `RedrawRequested` is now used for rendering
- `EventsCleared` replaced by `MainEventsCleared` which requests redraw
- Removed capture from hello-triangle to simplify it slightly
2020-01-04 18:33:33 -03:30
bors[bot]
39bf5a587e Merge #433
433: Fix clippy warnings and errors r=trivial a=kvark



Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-01-04 18:21:33 +00:00
Dzmitry Malyshau
7be921495d Fix clippy warnings and errors 2020-01-04 13:20:28 -05:00
bors[bot]
98660cda1b Merge #432
432: New deploy credentials r=grovesNL a=kvark

Also filters the tags to only start with "v"

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-01-04 15:39:19 +00:00
Dzmitry Malyshau
1d7ca0f20b New deploy credentials 2020-01-04 01:24:11 -05:00
Dzmitry Malyshau
33033e8be5 Add wgpu-py 2020-01-03 01:21:40 -05:00
bors[bot]
60476974b4 Merge #431
431: Expose FFI for creating wayland surface on wgpu-native r=kvark a=segfault87

* Added `wgpu_create_surface_from_wayland()` for creating Wayland surface from C side.
* Updated FFI header and `examples/triangle` example accordingly.

Co-authored-by: Park Joon-Kyu <segfault87@gmail.com>
2020-01-02 17:57:25 +00:00
Park Joon-Kyu
e91cfa4dc3 Enable wayland support for examples/triangle 2020-01-02 17:10:45 +09:00
Park Joon-Kyu
fc85128c41 Expose FFI for Wayland 2020-01-02 17:10:04 +09:00
Dzmitry Malyshau
f8f3c8daa3 [rs] Update to latest wgpu c293d6dcea 2020-01-02 01:21:08 -05:00
bors[bot]
c293d6dcea Merge #429
429: Defer command buffer recycling until allocate r=kvark a=LaylConway

As discussed on Matrix, this change defers command buffer recycling until allocation.
This lets a rendering thread clean up its own command buffers, making sure only the owning thread accesses anything from its command pool.

I have also added a TODO comment about cleaning up thread pools, which currently isn't happening as far as I can tell. This previously was an issue as well but now is a slightly bigger one as the command buffer wouldn't get recycled either.

I figured that, for now, fixing that issue is out of the scope of this PR. This PR focuses only on resolving the race condition causing the validation error.

This fixes #423

Co-authored-by: Layl <2385329-layl@users.noreply.gitlab.com>
2020-01-02 04:55:21 +00:00
Layl
ac8f75288f Use current active list instead of storing last done 2020-01-02 01:33:45 +01:00
Layl
b55cd162bf Defer command buffer recycling until allocate 2020-01-02 01:33:45 +01:00
bors[bot]
e51f96d9c5 [rs] Merge #151
151: Add Lyon to the friends list r=kvark a=Veykril

Closes #84

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-01-01 23:04:55 +00:00
bors[bot]
4f1542f3c9 Merge #430
430: Switch XlibHandle window to c_ulong r=kvark a=MarkSwanson



Co-authored-by: Mark Swanson <mark.swanson.sw@gmail.com>
2020-01-01 22:44:14 +00:00
Mark Swanson
c757ba827b Switch XlibHandle window to c_ulong 2020-01-01 10:49:00 -05:00
Lukas Wirth
87e34f8af8 [rs] add lyon to friends 2020-01-01 15:01:24 +01:00
bors[bot]
9153741476 [rs] Merge #113
113: build: exclude necessities for packaging, fixes #112 r=kvark a=m4b

I believe this is the minimal set required as an external dep, e.g., don't need tests, etc., and other folders. I can't seem to find any explicit recommendations here though: https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields-optional


Co-authored-by: m4b <m4b.github.io@gmail.com>
2019-12-31 17:00:35 +00:00
bors[bot]
4ceb122388 [rs] Merge #148
148: Change Queue::submit to take &self r=kvark a=LaylConway

This small change allows multiple threads to submit buffers slightly more efficiently, by being able to do it concurrently without a lock on Queue.

In practice currently `Queue::submit` does a lot of locking internally for most of the function's duration, so it's only a small performance win right now, but it opens up the road for more improvements.

Co-authored-by: Layl <2385329-layl@users.noreply.gitlab.com>
2019-12-31 16:32:52 +00:00
Layl
1c764215a8 [rs] Change Queue::submit to take &self 2019-12-31 16:24:49 +01:00
bors[bot]
2a2ab3dc2a Merge #418
418: Hotfix deadlocks on resource cleanup r=kvark a=LaylConway

This resolves resource cleanup causing deadlocks with `maintain`, because of `Device::pending` being locked in reverse order.

I'm calling this a "hotfix" because I don't think this is a scaleable approach to resolve how the issue happened in the first place, but it alleviates current deadlocking isssues.

I'm not quite sure how `Token` works, so I don't know if I used that right here.

This fixes #417

Co-authored-by: Layl <2385329-layl@users.noreply.gitlab.com>
2019-12-31 06:07:35 +00:00
bors[bot]
8f42ba6676 Merge #412
412: Another big tracking refactor r=later a=kvark

Fixes #409
Note: there is way more code that had to be thrown out in the process of this PR than there is in the PR itself.
Also fixes [this comment](04e17b3f4f/wgpu-core/src/track/texture.rs (L29)):
> //TODO: make this less awkward!

## Logic
Instead of having a run-time per-operation control over what state is being used for stitching (with `Stitch` enum), we are now deriving this automatically on a per-subresource level. Whenever we are detecting a transition for a sub-resource, and we know there wasn't any "first" state associated with it in the current tracker, we are saving this "first" state. Unlike previous code, where it was confusing what of `Unit` fields (`init`, `last`) are valid, now `first` is `Option<>`, so we know we should be using it if it's there.

This allows us to have this hybrid tracking state of a render pass, where all resources are immutable (and their usage is extended), except for the output attachments. This, together with a whole lot of refactoring, gets us #409.

I'm actually quite happy with the tracking code now. It's finally taking shape we aren't afraid to tell others about :)

Note: this was tested on wgpu-rs examples and vange-rs.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-12-30 23:11:52 +00:00
bors[bot]
890bbcfbed Merge #416 #420 #424
416: Makefile package command and travis github releases r=kvark a=Korijn

Closes #414

Approach mostly mimicked from [gfx-portability](https://github.com/gfx-rs/portability) as recommended to me by @kvark. I needed a number of commits to iron out some kinks for the Windows builds, so I would recommend using squash merge when accepting this PR.

Note that the Windows rust=nightly build fails, but it's also broken on master, so it's unrelated to the changes in this PR.

/cc @almarklein

# Questions

- [x] Would it make sense to also regenerate the `ffi/wgpu.h` and `wgpu-remote.h` header files and include them in the zip archive?

# Todo for maintainers

- [x] Configure encrypted `api_key`
As in [gfx-portability](https://github.com/gfx-rs/portability/blob/master/.travis.yml#L61) you will need to create an API key and commit it to the `.travis.yml` file. I've checked "allow edits from maintainers" so you should be able to commit to this branch directly. You may want to reference the [Travis instructions](https://docs.travis-ci.com/user/deployment/releases/#authenticating-with-an-oauth-token) as well.

- [ ] Tag revisions
Previous versions (`v0.1` - `v0.4`) have not been tagged on the master branch, you will want to do so retroactively. Also, when releasing in the future, make sure to tag the commit before pushing. Alternatively, you can schedule a travis build manually after applying the tag retroactively.

420: Make Origin3d::{x,y,z} all have type u32 r=kvark a=fintelia

Fixes #419 

424: swapchain creation: check if selected present mode is supported r=kvark a=Veykril

Implements a simple check as talked about in #350 to fallback to `FIFO` should the selected present mode not be available on the system.

Co-authored-by: Korijn van Golen <k.vangolen@clinicalgraphics.com>
Co-authored-by: Korijn van Golen <korijn@gmail.com>
Co-authored-by: Jonathan Behrens <fintelia@gmail.com>
Co-authored-by: Veykril <lukastw97@gmail.com>
2019-12-30 19:26:21 +00:00
bors[bot]
7d8a1d550c Merge #426
426: configure rust msvc toolchain on windows on travis r=kvark a=Korijn

Closes #425 

@LaylConway's [proposal](https://github.com/gfx-rs/wgpu/issues/425#issuecomment-569737145) was right.

Apparently Travis configures the non-standard GNU toolchain on Windows by default; it's unclear why and kind of defeats the point of Windows CI for this project, so we reconfigure it to use the MSVC toolchain manually in the `before_install` stage.

/cc @kvark

Co-authored-by: Korijn van Golen <k.vangolen@clinicalgraphics.com>
2019-12-30 19:09:18 +00:00
Korijn van Golen
9e7c2da298 configure rust msvc toolchain on windows on travis 2019-12-30 19:40:03 +01:00
Korijn van Golen
52de829094 Copy API key from gfx-portability
Usage OK'd by @grovesNL
2019-12-30 17:31:15 +01:00
bors[bot]
619770473c [rs] Merge #144
144: Adds compute-boids example from gpuweb demos r=kvark a=masonblier

Port of the computeBoids.ts demo from https://github.com/austinEng/webgpu-samples/blob/master/src/examples/computeBoids.ts  using separate compute and render passes with shared buffers bound by layout location. 

![Screen Shot 2019-12-27 at 9 53 17 PM](https://user-images.githubusercontent.com/677787/71539722-7a2ba280-28f5-11ea-9643-d1633ae06d75.png)

I'm happy to receive any feedback related to these changes and if there's any interest in merging it to the main repository.

Thanks,
Mason

Co-authored-by: Mason <mason.blier@gmail.com>
2019-12-29 20:36:49 +00:00
Mason
3b1ed05338 [rs] Adds compute-boids example from gpuweb demos
Updates for boids example

Rename example folder
Use chunks_muts when creating initial_particles data
No need for depth
Syntax and minor changes

calculate multiple particles in single compute unit

updates boids example to use framework impl

removed code

fix gpu invocations constants
2019-12-29 12:17:14 -08:00
bors[bot]
c204a17ca8 [rs] Merge #145
145: Mark CommandEncoder as !Send !Sync r=kvark a=LaylConway

These depend on the thread-specific command pool they're allocated from, which requires only one thread accessing them at a time, so they can't be moved to other threads without additional synchronization.

Co-authored-by: Layl <2385329-layl@users.noreply.gitlab.com>
2019-12-29 16:39:25 +00:00
m4b
5c472228a9 [rs] build: exclude necessities for packaging, fixes #112 2019-12-28 12:11:14 -08:00
Layl
8638a86d48 [rs] Mark CommandEncoder as !Send !Sync 2019-12-28 18:38:30 +01:00
Veykril
9eab6fc19e swapchain check present mode, default to vsync if selection is unsupported 2019-12-28 13:34:07 +01:00
Layl
9065e4c1cb Hotfix deadlocks on resource cleanup 2019-12-28 12:38:17 +01:00
Korijn van Golen
2beaaafc6b Update Makefile
Correct filename expression for binaries on Windows
2019-12-28 10:30:32 +01:00
Korijn van Golen
62175d5c26 include FFI header files in package 2019-12-27 22:04:03 +01:00
Korijn van Golen
bf65d6dc8e Don't release lib-remote 2019-12-27 22:01:17 +01:00
Jonathan Behrens
461f114ad5 Make Origin3d::{x,y,z} all have type u32 2019-12-25 21:42:49 -05:00
Korijn van Golen
539751dc51 explicitly set -tzip for 7z 2019-12-24 14:54:51 +01:00
Korijn van Golen
0a30650d0d only make packages for rust stable 2019-12-24 14:52:19 +01:00
Korijn van Golen
7b93bf1557 support 7z for travis windows environment (its preinstalled) 2019-12-24 14:52:06 +01:00
Korijn van Golen
e434aeddfb make package command repeatable (useful outside of CI) 2019-12-24 14:33:11 +01:00
Korijn van Golen
ad797cbd81 makefile package command and travis deploy step 2019-12-24 14:19:43 +01:00
Dzmitry Malyshau
6b8914791f [rs] Add more friends! 2019-12-17 20:16:21 -05:00
bors[bot]
6a963892b5 Merge #400
400: Validate bind group layouts by value r=kvark a=yanchith

This PR widens the comparisons done between two bind group layouts to also consider them equivalent if their vectors of `BindGroupLayoutBinding`s are equal. 

Tested on various modifications of the cube example from wgpu-rs. https://gist.github.com/yanchith/56e15fe35658b14587ff9bfcbd53116f

Fixes #335 

Co-authored-by: yanchith <yanchi.toth@gmail.com>
2019-12-17 17:37:39 +00:00
yanchith
e9545c93ed Deduplicate Bind Group Layouts on creation
To make later bind group layout compatibility checks simpler (and
cheaper), deduplicate them on creation. If two bind group layouts with
same descriptors are requested, only one is created and the same id is
returned for both.
2019-12-17 18:32:33 +01:00
Dzmitry Malyshau
c0d6cf18e1 Refactor tracker initializers 2019-12-17 00:19:39 -05:00