Commit Graph

260 Commits

Author SHA1 Message Date
Tristam MacDonald
6ef53d7705 Convert shadow sample to map_async 2019-03-05 19:04:21 -08:00
bors[bot]
1faba3c265 Merge #91
91: Better resize support on D3D and Vulkan r=swiftcoder a=kvark



Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2019-03-05 21:08:06 +00:00
Dzmitry Malyshau
ecaacfa20e Force wait for GPU before releasing the old swapchain 2019-03-05 14:14:28 -05:00
bors[bot]
564070b56c Merge #90
90: Basic render pipeline compatibility check r=grovesNL a=kvark

A bit of refactoring for nicer code, and now we are matching the attachment formats of pipelines bound to passes.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-03-05 06:03:27 +00:00
Dzmitry Malyshau
650bbaeb42 Basic render pipeline compatibility check 2019-03-03 22:09:20 -05:00
bors[bot]
152fad43c3 Merge #84 #85
84: Create buffer mapped r=kvark a=swiftcoder

I haven't really taken a swing at error handling here, posting it up early for feedback on the API.

85: Unpin nightly date for bindings generation r=kvark a=grovesNL

rust-lang/rust#57915 allows us to run bindings generation with nightly again, so we shouldn't have to pin to an older nightly date anymore (assuming everyone has a recent nightly).

Co-authored-by: Tristam MacDonald <tristam@trist.am>
Co-authored-by: Joshua Groves <josh@joshgroves.com>
2019-03-01 18:42:35 +00:00
bors[bot]
7f9ab97f77 Merge #86
86: Add vertex formats r=kvark a=unconed

Add the vertex formats from: https://github.com/gpuweb/gpuweb/blob/master/design/sketch.webidl



Co-authored-by: Steven Wittens <steven@acko.net>
2019-03-01 18:35:02 +00:00
Steven Wittens
cf3e1a5ac6 Add vertex formats 2019-03-01 10:48:12 +01:00
Joshua Groves
af58884952 Unpin nightly date 2019-02-28 21:18:16 -07:00
Tristam MacDonald
d179b5a85c Create buffer mapped 2019-02-28 20:11:29 -08:00
bors[bot]
22143f31fa Merge #83
83: Screenshots in the README r=pretty a=kvark



Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2019-02-28 22:21:07 +00:00
Dzmitry Malyshau
e6aa37630a Screenshots in the README 2019-02-28 17:20:09 -05:00
bors[bot]
2d166d2155 Merge #80
80: Typed mapping of buffers r=kvark a=swiftcoder

Add a sprinkling of generics to remove the need for unsafe code to typecast slices resulting from mapping buffers.

Co-authored-by: Tristam MacDonald <tristam@trist.am>
2019-02-28 15:26:21 +00:00
Tristam MacDonald
524ff72fd3 Typed mapping of buffers
Add a sprinkling of generics to remove the need for unsafe
code to typecast slices resulting from mapping buffers.
2019-02-28 06:56:47 -08:00
bors[bot]
370236330f Merge #82
82: Add updated texture formats r=kvark a=unconed

Adds the texture formats from:
https://github.com/gpuweb/gpuweb/blob/master/design/sketch.webidl


Co-authored-by: Steven Wittens <steven@acko.net>
2019-02-28 14:50:35 +00:00
bors[bot]
193eec694e Merge #81
81: Buffer tracking and unmapping r=kvark a=swiftcoder

Adds preliminary transitioning of buffers to mapped state.
Adds buffer unmapping to the cube sample.
Modifies wgpu_queue_submit to not hold a write lock on the device during callbacks (this could definitely be cleaner, but I'm not sure which direction to take refactoring here).

Co-authored-by: Tristam MacDonald <tristam@trist.am>
2019-02-28 14:18:16 +00:00
Steven Wittens
b74b7fdd8c Update textureformats in examples 2019-02-28 06:36:45 +01:00
Steven Wittens
9151510b24 Add updated texture formats 2019-02-28 06:32:26 +01:00
Tristam MacDonald
0f85eb86a1 Buffer tracking and unmapping
Adds preliminary transitioning of buffers to mapped state.
Adds buffer unmapping to the cube sample.
Modifies wgpu_queue_submit to not hold a write lock on the device during callbacks.
2019-02-27 21:15:47 -08:00
bors[bot]
26bc6955f8 Merge #77
77: Storage indexing, framebuffer tracking, and a bunch of validation fixes r=grovesNL a=kvark

Closes #73
Closes #75
Closes #79

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2019-02-27 13:34:12 +00:00
Dzmitry Malyshau
8ad1476872 Fix tracking of the set_sub_data service command buffer 2019-02-27 08:31:38 -05:00
Dzmitry Malyshau
76473bb38a Stitch mode for insert_barriers 2019-02-26 23:56:38 -05:00
Dzmitry Malyshau
cc5900b160 Refactor the view tracker 2019-02-26 23:05:36 -05:00
Dzmitry Malyshau
0d59c16f16 Refactor insert_barriers 2019-02-26 22:55:04 -05:00
Dzmitry Malyshau
d631b2c6f2 Fix depth clamping semantics 2019-02-26 22:36:58 -05:00
Dzmitry Malyshau
cdc9d65395 Free memory objects 2019-02-26 15:10:43 -05:00
Dzmitry Malyshau
f0e245e4dc Cleanup unused framebuffers 2019-02-26 11:21:31 -05:00
Dzmitry Malyshau
f2365ea71e Unify the texture view creation 2019-02-26 10:28:08 -05:00
Dzmitry Malyshau
5b129704a0 Storage indexing 2019-02-26 10:27:51 -05:00
bors[bot]
dd73675868 Merge #65
65: First bits of wgpu-remote r=grovesNL a=kvark



Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-02-26 15:13:14 +00:00
Dzmitry Malyshau
ce08429729 Make Id serializable 2019-02-26 10:12:11 -05:00
Dzmitry Malyshau
e16ceafb81 Epoch tracking of indices 2019-02-26 10:12:11 -05:00
Dzmitry Malyshau
ea18c8fa85 Generate remote header 2019-02-26 10:10:07 -05:00
Dzmitry Malyshau
bd0de53f8e First bits of wgpu-remote 2019-02-26 10:10:07 -05:00
bors[bot]
1504542019 Merge #59
59: Map buffers async r=kvark a=swiftcoder

This is not ready to merge. It works well enough for the example, but looking for some early feedback.

In particular:
- It's not really async, since gfx-hal's mapping APIs seem to all be immediate.
- Async callbacks in Rust are really unpleasant due to lifetimes, so maybe it's just as well they aren't async.
- There is no validation and no real error handling here yet.

Co-authored-by: Tristam MacDonald <swiftcoder@gmail.com>
2019-02-26 15:02:46 +00:00
Tristam MacDonald
8431da80ed Implement map read/write async 2019-02-26 06:45:07 -08:00
bors[bot]
b2f58d0975 Merge #71
71: Shadow example r=grovesNL a=kvark

~~I believe all the nuts and bolts are in place, just figuring out some details of making the shadow match between the rendering and sampling (hence the WIP).~~

Most importantly, this PR includes crucial fixes and improvements of our resource tracking, plus a few fixes in the bind group and texture creation code.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-02-23 07:50:17 +00:00
Dzmitry Malyshau
616a3dd849 Fix leaking swapchain textures 2019-02-22 22:23:52 -05:00
Dzmitry Malyshau
cfe3da1c6f Remove the outdated frame concept in favor of aggressive swapchain re-creation 2019-02-22 18:43:19 -05:00
Dzmitry Malyshau
9df7cc4a8e Fix depth projection in the examples, add some rotation to the shadow 2019-02-22 18:43:06 -05:00
Dzmitry Malyshau
5ada8d9943 Fix full_range of arrays 2019-02-22 13:53:28 -05:00
Dzmitry Malyshau
c21420399a Refactored tracking, now includes the views 2019-02-22 12:59:29 -05:00
Dzmitry Malyshau
7386a05a0d Shadow shaders 2019-02-22 12:59:29 -05:00
Dzmitry Malyshau
056cc64eb4 Shadow example shaders and improvements 2019-02-22 12:59:29 -05:00
Dzmitry Malyshau
957a5b57dd Rust side of the shadow example 2019-02-22 12:59:29 -05:00
bors[bot]
022087b0b8 Merge #69
69: Swapchain resize r=kvark a=kvark

Based on #67 

Here are the steps (as outlined on Gitter) that this PR follows:
  1. create a dummy frame in the swapchain (`SwapChain::outdated`). We return it when we aren't able to acquire a real frame. No synchronization is done atm, but shouldn't be anything critical there.
  2. handle the errors on acquire and present, use the dummy frame where needed. Presentation errors are just ignored, while acquiring errors are forcing the dummy frame. The idea is that the user would know about a swapchain resize from some kind of event loop / WSI, and thus they'd know when they should actually re-create it.
  3. associate surface with a swapchain. We merge the IDs since there can't be multiple swapchains on the same surface in the near future. Merging simplifies a lot of things in the implementation, but this is to be revised for sure once we get a better look on the browser integration.
  4. when the swapchain is re-created, consume the old one associated with a surface.


Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-02-22 17:37:28 +00:00
Dzmitry Malyshau
59fe349633 Resize support for gfx-cube and framework 2019-02-21 15:59:24 -05:00
Dzmitry Malyshau
14ee80f463 Update the trackers on resource destruction 2019-02-21 15:59:24 -05:00
Dzmitry Malyshau
28551103c2 Fix old outdated frame cleanup 2019-02-21 15:59:24 -05:00
Dzmitry Malyshau
f2a0e6fe15 Swapchain resize, merged with the surface 2019-02-21 15:59:24 -05:00