Commit Graph

8393 Commits

Author SHA1 Message Date
bors[bot]
65a2351886 Merge #147 #171
147: Merge '.rustfmt.toml' into 'rustfmt.toml' r=kvark a=Atul9



171: Handle resize in the triangle example r=kvark a=rukai

Handle window resize in the C triangle example.

This fixes https://github.com/gfx-rs/wgpu/issues/166.
The reason it was failing immediately on my machine, is because my window manager was automatically resizing the window.

If I resize the window reallly fast, I still get a few:
```
[2019-05-13T11:00:23Z ERROR gfx_backend_vulkan] [Validation]  [ VUID-VkSwapchainCreateInfoKHR-imageExtent-01274 ] Object: 0x5650f23f2510 (Type = 3) | vkCreateSwapchainKHR() called with imageExtent = (798,615), which is outside the bounds returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR(): currentExtent = (590,498), minImageExtent = (590,498), maxImageExtent = (590,498). The Vulkan spec states: imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-imageExtent-01274)
```

It can be merged as is. (Its certainly an improvement)
But if you know how to fix this last validation error, i would love to add it.

Co-authored-by: Atul Bhosale <atul1bhosale@gmail.com>
Co-authored-by: Rukai <rubickent@gmail.com>
2019-05-13 15:50:22 +00:00
bors[bot]
965d24245c Merge #172
172: Update to gfx-hal 0.2 r=kvark a=kvark



Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-13 15:11:16 +00:00
Dzmitry Malyshau
5597846018 Update to gfx-hal 0.2 2019-05-13 11:07:28 -04:00
Rukai
cd9b7b8606 Document how to run example in readme 2019-05-13 21:47:36 +10:00
Rukai
637a0883e7 Handle resize in the triangle example 2019-05-13 20:57:49 +10:00
bors[bot]
7b0217d51c Merge #163
163: Remove Rust wrapper and examples r=kvark a=kvark

Fixes #160 
Closes #60

Everything specific to Rust API is about to be moved to https://github.com/gfx-rs/wgpu-rs
It would let this project to be a proper mirror of mozilla-central piece, and it would encourage other authors to experiment with different approaches to Rust wrappers (i.e. borrowing versus non-borrowing).

cc @jdashg

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-11 01:57:01 +00:00
Dzmitry Malyshau
540451a66d Fix cbindgen macro expansion and CI 2019-05-10 21:55:09 -04:00
Dzmitry Malyshau
2c1bdbd40f [rs] Add readme and screenshots 2019-05-10 21:51:55 -04:00
Dzmitry Malyshau
5eda162748 Readme update 2019-05-10 20:40:42 -04:00
Dzmitry Malyshau
6ce9cbd679 Remove Rust wrapper and examples 2019-05-10 20:40:42 -04:00
bors[bot]
97d1ba345e Merge #164
164: Fix locking order in texture view creation and destruction r=kvark a=kvark

Fixes #161
Essentially, this is another case that would solved by #66. At least we can use the library in the mean time before it's implemented.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-10 19:59:26 +00:00
Dzmitry Malyshau
8c75f35948 Fix locking order in texture view creation and destruction 2019-05-10 15:57:25 -04:00
Dzmitry Malyshau
d8b3372250 [rs] Move the library and examples from the original repo 2019-05-10 13:19:33 -04:00
Dzmitry Malyshau
d47f7e5bde Initial commit 2019-05-10 10:36:31 -04:00
bors[bot]
0edf927e5b Merge #159
159: Add GPU timeout, fix active submission processing order r=kvark a=kvark

Fixes #156 

The timeouts are going to be configurable later down the road.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-10 12:00:47 +00:00
bors[bot]
d1d37df383 Merge #154
154: Move callbacks out of the locking path r=kvark a=kvark

Fixes #152 
This change fixes the deadlocks discovered by @rukai . It enforces the following invariants through the code:
  1. if we enter Rust code from FFI, we assume nothing is locked. The invariant was previously not true when we unmapped a buffer in a mapping callback.
  2. the HUB storages are always locked in the same order. This was not followed in a few places, but still needs to be enforced by #66 later down the road.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-10 11:42:11 +00:00
Dzmitry Malyshau
664fcdc1fa Add GPU timeout, fix active submission processing order 2019-05-09 14:59:28 -04:00
bors[bot]
aec590735b Merge #157
157: Add multithreaded_compute test r=kvark a=rukai

As requested in https://github.com/gfx-rs/wgpu/issues/152 I have opened a PR to add the repro as a test case.

I used [rusty fork](https://github.com/AltSysrq/rusty-fork) to allow setting a timeout.
Rusty fork also runs each test in a separate process.

Open to any suggestions on how to organize tests etc.
I could add https://github.com/gfx-rs/wgpu/issues/156 if you want?
Maybe name the tests by issue number?
If we add a test for every issue, breaking changes would become really annoying :/

Co-authored-by: Rukai <rubickent@gmail.com>
2019-05-09 13:21:50 +00:00
Rukai
5cce1a2edb Add multithreaded_compute test 2019-05-09 12:17:40 +10:00
Dzmitry Malyshau
3f1e9ab03b Move callbacks out of the locking path 2019-05-07 11:07:55 -04:00
bors[bot]
455f0456c0 Merge #153
153: Update deps + upgrade examples to rust 2018 r=kvark a=rukai

Things to note:
*   I removed the Cargo.lock - I assume it was only accidentally checked in?
*   I dont know what `wgpu-remote` is for, so I haven't tested it beyond compiling it.

Co-authored-by: Rukai <rubickent@gmail.com>
2019-05-07 12:40:26 +00:00
Rukai
16cc03be31 Update deps + upgrade examples to rust 2018 2019-05-07 22:38:41 +10:00
bors[bot]
6b92c37fa0 Merge #151
151: Assert on swapchain output usage before presenting r=grovesNL a=kvark

Fixes #148 

There is no "fix" for the case on our side. The PR brings stronger requirements on the swapchain outputs: they have to be used and submitted before dropped.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-06 11:40:18 +00:00
Dzmitry Malyshau
31d11be058 Install cbindgen on CI 2019-05-04 10:38:58 -04:00
bors[bot]
b12b4c135e Merge #136
136: Use strongly typed Ids r=kvark a=psincf

fixes #61 

Co-authored-by: psincf <44228825+psincf@users.noreply.github.com>
2019-05-04 02:44:24 +00:00
bors[bot]
f722a8f631 Merge #140
140: Creating buffers with size 0 actually creates them with size 1 r=kvark a=rukai

closes https://github.com/gfx-rs/wgpu/issues/135

One concern I have is if the buffer is uninitialized before the call to `self.data.copy_from_slice(slice);`
If that is the case, my new `fill_from_slice` implementation will leave memory uninitialized when the user tries to create an empty buffer.

Co-authored-by: Rukai <rubickent@gmail.com>
2019-05-04 02:31:29 +00:00
psincf
64d1250bfa fixes hub.rs 2019-05-04 02:03:37 +02:00
Rukai
3662987220 Creating buffers with size 0 actually creates them with size 1 2019-05-04 09:46:46 +10:00
psincf
2e30c611ae Make IdentityManager strongly typed 2019-05-04 01:20:56 +02:00
Dzmitry Malyshau
1c350cc4af Assert on swapchain output usage before presenting 2019-05-03 10:45:39 -04:00
bors[bot]
f015eb22d8 Merge #149
149: Remove wgpu_buffer_set_sub_data function r=kvark a=Atul9

closes #145 

Co-authored-by: Atul Bhosale <atul1bhosale@gmail.com>
2019-05-03 13:50:39 +00:00
Atul Bhosale
3330509678
Remove wgpu_buffer_set_sub_data function 2019-05-03 07:01:59 +05:30
Atul Bhosale
3585c4481c Merge '.rustfmt.toml' into 'rustfmt.toml' 2019-05-01 23:06:36 +05:30
psincf
10547b937f add serde into scope and fix wgpu-remote 2019-05-01 13:31:56 +02:00
psincf
565e5fdfeb make trait TypedId:From<Id> 2019-05-01 12:15:23 +02:00
psincf
f7794fd82b change PhantomData syntax 2019-05-01 12:11:20 +02:00
psincf
bbef2b7622 Put new_id! in define_id! 2019-05-01 11:55:28 +02:00
psincf
bfc983a8cc Clean code 2019-05-01 11:55:28 +02:00
psincf
44cf64495a Use strong type 2019-05-01 11:55:28 +02:00
bors[bot]
1e177d0813 Merge #144
144: Rewrite bindings generation r=grovesNL a=kvark

This PR is shaping wgpu-remote to become distantly usable, introduces an example that tests it on CI.

It also rewrites our binding generation to use `cbindgen.toml` configuration, which goes in line with Gecko use case (even though they are going to have a separate configuration).

The `ClientFactory` is introduced so that we can have multiple clients (say, one page per client) talking to the same server on a dedicated thread within the GPU process.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-01 02:14:57 +00:00
Dzmitry Malyshau
6ac666a5aa Introduce ClientFactory 2019-04-30 15:37:46 -04:00
Dzmitry Malyshau
61fca00f34 Remove wgpu-bindings in favor of configuration scripts 2019-04-30 12:45:05 -04:00
Dzmitry Malyshau
0011d9f4ff Global manager for instance names on the remote client 2019-04-30 09:19:40 -04:00
Dzmitry Malyshau
52ee3e019c Remote example and improved header, tested on CI 2019-04-29 22:41:09 -04:00
bors[bot]
5ec6f35368 Merge #139
139: Scissors test r=kvark a=snuk182

Closes #138 

Co-authored-by: Serhii Plyhun <snuk188@gmail.com>
2019-04-28 02:28:16 +00:00
bors[bot]
a1908c1873 Merge #142
142: Correct Link r=kvark a=ShalokShalom



Co-authored-by: ShalokShalom <shalokshalom@protonmail.ch>
2019-04-28 02:14:02 +00:00
Serhii Plyhun
092bcc4afb Scissor test 2019-04-28 00:45:37 +02:00
ShalokShalom
3c12edd0b7
Correct Link 2019-04-27 21:05:39 +02:00
bors[bot]
6f810f4f23 Merge #131
131: Support dynamic offsets r=kvark a=cloudhead

Closes #125

Adds support for dynamic offsets when setting a bind group.

I haven't actually tried if this works with my use-case, but it's fairly straight forward. 😅 

Co-authored-by: Alexis Sellier <alexis@monadic.xyz>
2019-04-26 22:34:55 +00:00
Alexis Sellier
c468840eee
Support dynamic offsets
Closes #125

* Add support for dynamic offsets when setting a bind group.
* Add new binding types: `UniformBufferDynamic` and `StorageBufferDynamic`
2019-04-26 22:20:54 +02:00