Commit Graph

381 Commits

Author SHA1 Message Date
bors[bot]
dd61d12203 Merge #178
178: Fix RenderPassColorAttachmentDescriptor r=kyren a=kvark



Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-16 05:46:12 +00:00
Dzmitry Malyshau
a9063ce3eb Fix RenderPassColorAttachmentDescriptor 2019-05-15 22:38:59 -07:00
bors[bot]
a056d2478a Merge #175
175: API update with naming, formats, and extra fields  r=grovesNL a=kvark



Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-15 07:31:42 +00:00
bors[bot]
8dc23d72be Merge #176
176: Fix command buffer and surface locking order r=grovesNL a=kvark

As with all the other locking problems, we just ensure that the locks are in the same order as the fields are in `Hub` structure. This is to be enforced at compile time with #66 
Fixes #174 

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-15 03:05:45 +00:00
Dzmitry Malyshau
1875523a6a Rust formatting pass 2019-05-14 13:00:00 -04:00
Dzmitry Malyshau
48e74e77d7 Add set_viewport 2019-05-14 12:57:03 -04:00
Dzmitry Malyshau
a6f3637c0c Debug labels 2019-05-14 12:49:10 -04:00
Dzmitry Malyshau
f024758e07 Track stencil reference 2019-05-14 11:58:10 -04:00
Dzmitry Malyshau
40ec1ac4c1 Fix command buffer and surface locking order 2019-05-14 11:13:08 -04:00
Dzmitry Malyshau
6a1dcb9565 API update with naming, formats, and extra fields 2019-05-14 10:31:25 -04:00
bors[bot]
75201773a7 Merge #165
165: Document how to run example in readme r=kvark a=rukai

This took me a while to figure out, I'm sure others would find it useful in the readme.

Co-authored-by: Rukai <rubickent@gmail.com>
2019-05-14 01:22:00 +00:00
bors[bot]
b436a411c7 Merge #173
173: Fix lock order on the identity manager r=kvark a=kvark

Fixes #161 
cc @rukai 

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-13 16:26:33 +00:00
Dzmitry Malyshau
278016d711 Fix lock order on the identity manager 2019-05-13 11:55:19 -04:00
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
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
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