Commit Graph

400 Commits

Author SHA1 Message Date
Timo de Kort
7bb528186f add DX11 support 2019-05-26 19:46:43 +02:00
Timo de Kort
9b0607973e resolve PR comments
- pass backends from the Makefile to the CMakeLists file
- add check to see if the BACKEND argument is set
- add dbghelp lib file
2019-05-26 18:23:19 +02:00
Timo de Kort
747defd01b add necessary windows lib files for vulkan/dx12
introduce new argument feature-native to specify the back-end framework
2019-05-25 18:42:59 +02:00
bors[bot]
925718ff6d Merge #183
183: Add gfx-backend-gl support r=kvark a=kyren

Also adds glutin-specific support methods to wgpu-native

Co-authored-by: kyren <kerriganw@gmail.com>
2019-05-24 18:58:09 +00:00
kyren
0fe94fc439 Only test building the gfx-backend-gl feature for now 2019-05-24 14:40:19 -04:00
bors[bot]
f6360326dd Merge #189
189: Fix typos. r=kvark a=waywardmonkeys



Co-authored-by: Bruce Mitchener <bruce.mitchener@gmail.com>
2019-05-24 14:17:36 +00:00
bors[bot]
4613275f74 Merge #190
190: Remove unused variable on Metal code path. r=kvark a=waywardmonkeys



Co-authored-by: Bruce Mitchener <bruce.mitchener@gmail.com>
2019-05-24 13:59:14 +00:00
Bruce Mitchener
1155479247 Fix typos. 2019-05-24 14:46:37 +07:00
Bruce Mitchener
b21a0c12af Remove unused variable on Metal code path. 2019-05-24 14:46:11 +07:00
bors[bot]
81b6f42941 Merge #186
186: Fix clear value filtering and integer support r=grovesNL a=kvark



Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-24 01:22:15 +00:00
bors[bot]
6d074b54e6 Merge #187
187: Change dynamic and vertex buffer offsets to u64 r=cormac-obrien a=kvark

This change makes offsets consistent across the board.

cc @cormac-obrien


Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-05-23 19:09:35 +00:00
Dzmitry Malyshau
2564332f3d Change dynamic and vertex buffer offsets to u64 2019-05-23 11:25:10 -04:00
Dzmitry Malyshau
9eddc296c3 Fix clear value filtering and integer support 2019-05-23 10:03:11 -04:00
bors[bot]
55fb05fe35 Merge #182
182: Update Makefile r=kvark a=Napokue

More Windows compliant and change "wgpu-bindings" directory to the newly named directory "ffi". Also added some variables.

Co-authored-by: Timo de Kort <tdk@quadira.com>
2019-05-22 19:39:58 +00:00
Timo de Kort
3f385a56dd update Makefile 2019-05-22 21:05:22 +02:00
kyren
af9aa78e3a Try to keep the API slightly closer to the standard API
by making InstanceId a type alias to SurfaceId
2019-05-21 17:40:41 -04:00
kyren
8680195c91 Add gfx-backend-gl support
Also adds glutin-specific support methods to wgpu-native
2019-05-19 15:10:52 -04:00
bors[bot]
5b6549febc Merge #179
179: Fix semaphore iteration on submit r=kvark a=kvark

Fixes #167 

It's a bit silly: we used to do important work in a generated iterator, but the implementation of dx12 isn't complete enough and doesn't use our iterator at all. It should be fixed on both sides.

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2019-05-17 05:36:15 +00:00
Dzmitry Malyshau
bd167f8fc5 Fix semaphore iteration on submit 2019-05-17 01:31:51 -04:00
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