Commit Graph

242 Commits

Author SHA1 Message Date
Atul Bhosale
3330509678
Remove wgpu_buffer_set_sub_data function 2019-05-03 07:01:59 +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
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
Serhii Plyhun
092bcc4afb Scissor test 2019-04-28 00:45:37 +02: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
Atul Bhosale
af38d79d79
Format code using 'cargo fmt' 2019-04-26 22:01:47 +05:30
bors[bot]
993293f709 Merge #127
127: Track async mapping properly r=grovesNL,swiftcoder a=kvark

Fixes #117, fixes #95, fixes #132 

The change can be logically split into 3 parts:
  1. when `ActiveSubmission` is retired, we now move the mapped buffers into the "ready to map" vector. This was the missing bit that caused mapping to not work previously.
  2. mapping callbacks in Rust wrapper are refactored and they `unmap()` automatically now on users behalf
  3. we wait for idle before destroying the device, which allows us to process all the pending callbacks. This fix gets rid of the dummy submission our compute example used to do.

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-04-25 13:36:59 +00:00
Dzmitry Malyshau
8578643f38 Rename DestroyedResources to PendingResources 2019-04-25 08:29:40 -04:00
Dzmitry Malyshau
41141b1ae0 Wait for fences instead of device idle 2019-04-24 22:42:49 -04:00
Dzmitry Malyshau
aa1f876de3 Assert on a mapping buffer being used 2019-04-23 17:26:31 -04:00
Dzmitry Malyshau
326af8cce6 Do mapping transitions earlier. 2019-04-23 17:22:53 -04:00
Dzmitry Malyshau
7200f727e2 Expose device polling 2019-04-23 16:56:17 -04:00
Dzmitry Malyshau
e2dcac91d2 Round up mappable buffer size to non-coherent atom, if needed 2019-04-23 16:27:39 -04:00
Dzmitry Malyshau
1f4d67aeb2 Track async mapping properly 2019-04-22 13:57:35 -04:00
Markus Ginthör
89c5564133 Configure Swapchain with supported composite_alpha 2019-04-12 17:44:44 +02:00
Joshua Groves
7f7bdd1ba1 Implement index formats 2019-04-07 08:15:05 -02:30
Dzmitry Malyshau
83a83f33e7 Track epochs of the frame semaphores to wait for 2019-04-03 17:48:26 -04:00
Dzmitry Malyshau
c283a8b115 Update changelog and versions 2019-03-31 20:04:39 -04:00
Dzmitry Malyshau
a8a6b45c9a Rename expectation to LayoutChange 2019-03-31 20:00:52 -04:00
Dzmitry Malyshau
5e041ab239 Validate resource types against the bind group layout 2019-03-31 19:59:34 -04:00
Dzmitry Malyshau
b96983a56b Fix submission tracking 2019-03-31 19:59:21 -04:00
Dzmitry Malyshau
006d40a4b5 Track bind group compatibility across the whole pipeline 2019-03-31 16:04:37 -04:00
Dzmitry Malyshau
5923deff6e Validate bind group compatibility 2019-03-31 16:03:08 -04:00
Dzmitry Malyshau
332305012c Blend color and the first bits of validation 2019-03-31 15:52:32 -04:00
bors[bot]
dfa126cf47 Merge #112
112: Correctness fixes from 0.2, plus a lot of goodies r=kvark a=kvark

These are changes from #110 back-ported to master.

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2019-03-24 00:56:28 +00:00
bors[bot]
cf521d6074 Merge #96
96: Add the static lifetime bound to async buffer mapping callbacks r=kvark a=aloucks

These callbacks are executed outside of the mapping function and could previously reference data that had been dropped. Related #95.

Co-authored-by: Aaron Loucks <aloucks@cofront.net>
2019-03-23 02:21:03 +00:00
Dzmitry Malyshau
0b51c8a9d2 Clean up use statements.
Use copyless::VecHelper and ArrayVec for some things.
Refactor map_buffer internals.
2019-03-21 12:05:53 -04:00
Dzmitry Malyshau
dc31e4bdd0 Fix descriptor size, bump versions 2019-03-20 14:52:59 -04:00
Dzmitry Malyshau
81114a8ca2 Bump the descriptor pool size 2019-03-20 14:52:38 -04:00
Dzmitry Malyshau
451489025c Validate uniform buffer alignments, enforce map alignment 2019-03-20 14:43:25 -04:00
Dzmitry Malyshau
485894ca81 Enable windows in Travis 2019-03-19 10:49:30 -04:00
Dzmitry Malyshau
508b724dd7 Helpful error message on empty backend 2019-03-19 09:20:34 -04:00
Aaron Loucks
e0811db8d4 Triage buffers prior to overwriting the submission index
This allows async buffer mapping to function when a renderpass
is also submitted on the queue. The state transition and fencing
still needs work, however.
2019-03-12 22:15:37 -04:00
Lain-dono
c0b84b3e15
Fix vertex format mapping 2019-03-11 04:44:54 +03:00
Joshua Groves
e921b59298 Use repr(C) for Id 2019-03-07 19:04:01 -07:00
Joshua Groves
a55502c1e2 Remove winit from bindings generation 2019-03-07 12:37:50 -07:00
Dzmitry Malyshau
0bb4daa696 Version bumps to 0.2.0 2019-03-06 10:02:43 -05:00
Tristam MacDonald
1fe59e71db run cargo fmt 2019-03-05 20:41:24 -08:00
Tristam MacDonald
6ef53d7705 Convert shadow sample to map_async 2019-03-05 19:04:21 -08:00
Dzmitry Malyshau
ecaacfa20e Force wait for GPU before releasing the old swapchain 2019-03-05 14:14:28 -05: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
Steven Wittens
cf3e1a5ac6 Add vertex formats 2019-03-01 10:48:12 +01:00
Tristam MacDonald
d179b5a85c Create buffer mapped 2019-02-28 20:11:29 -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
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
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
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
bd0de53f8e First bits of wgpu-remote 2019-02-26 10:10:07 -05:00
Tristam MacDonald
8431da80ed Implement map read/write async 2019-02-26 06:45:07 -08: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
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
957a5b57dd Rust side of the shadow example 2019-02-22 12:59:29 -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
Dzmitry Malyshau
5b509692d1 Outdated frame for the swapchain 2019-02-21 15:59:24 -05:00
Dzmitry Malyshau
855bcfe176 Resource destruction refactoring, hook up to rust 2019-02-21 08:42:57 -05:00
Dzmitry Malyshau
00e0347b8c Renamed the impl methods, switched structure argumetns from references to contained items 2019-02-15 10:13:04 -05:00
Dzmitry Malyshau
2e21285434 Separate object identity from storage 2019-02-14 14:28:55 -05:00
Dzmitry Malyshau
844d371989 Command encoder interface 2019-02-12 16:48:56 -05:00
Tristam MacDonald
5f0df67dcc Initial compute pipeline support 2019-02-11 19:02:18 -08:00
Dzmitry Malyshau
8b6eafcdca Rust and C API for transfers 2019-02-07 08:17:13 -05:00
Dzmitry Malyshau
901463d7ce native: copy_texture_to_texture 2019-02-06 09:29:21 -05:00
Dzmitry Malyshau
1b76b2b96c native: copy_texture_to_buffer 2019-02-06 09:21:12 -05:00
Dzmitry Malyshau
dc7bf3404e Refactor get_with_usage for better ergonomics 2019-02-06 09:15:57 -05:00
Dzmitry Malyshau
2f0601c92c native: implement copy buffer to buffer 2019-02-06 09:04:31 -05:00
Dzmitry Malyshau
4b1897b254 Separate module for transfer functions 2019-02-06 08:55:21 -05:00
Dzmitry Malyshau
1c95eef7a3 Depenency gfx update to 0.1.1 2019-02-05 09:45:52 -05:00
Dzmitry Malyshau
c74f8e8db8 Cube cleanup and the new generated texture 2019-02-04 09:55:32 -05:00
Dzmitry Malyshau
d50f8199dd Buffer to texture copies 2019-02-03 21:59:35 -05:00
Dzmitry Malyshau
3ec4ff99b0 Vertex buffer description in the pipelines 2019-02-03 20:39:13 -05:00
Dzmitry Malyshau
3d47436129 rust: vertex/index binding 2019-02-03 15:51:54 -05:00
Dzmitry Malyshau
d4c8c881d0 gfx framework GLSL reading, most of the cube example 2019-02-02 22:48:53 -05:00
Dzmitry Malyshau
a735eddf81 Sampler creation support 2019-02-02 22:37:51 -05:00
Dzmitry Malyshau
afe00aa90f Borrow temporary queus and frames on Rust side 2019-02-02 21:02:33 -05:00
Dzmitry Malyshau
57f0cd184f native: basic support for pipeine stages in barriers 2019-01-31 21:42:35 -05:00
Dzmitry Malyshau
55c22a0d9a Implement basic set_buffer_data 2019-01-30 15:31:06 -05:00
Dzmitry Malyshau
e8e5938e06 Linux support for GLFW example 2019-01-24 12:33:34 -05:00