Commit Graph

130 Commits

Author SHA1 Message Date
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
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
41141b1ae0 Wait for fences instead of device idle 2019-04-24 22:42:49 -04:00
psincf
e70b01ccc0
Fix winit event loop in the triangle example 2019-04-22 22:59:25 +02:00
Dzmitry Malyshau
1f4d67aeb2 Track async mapping properly 2019-04-22 13:57:35 -04:00
Dzmitry Malyshau
a3ffa7072a Fix the triangle examples 2019-03-31 20:03:24 -04:00
Dzmitry Malyshau
2ca7fd5077 Fix winit swapchain sizes in examples 2019-03-24 23:50:26 -04: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
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
Aaron Loucks
86e1249949 Add the static lifetime bound to async buffer mapping callbacks
These callbacks are executed outside of the mapping function and could
previously reference data that had been dropped. This fixes the
soundness issues described in #95, but not the buggy mapping
behavior.
2019-03-11 17:11:29 -04:00
Joshua Groves
5322f3c610 Reduce left indentation for nested structs 2019-03-08 07:15:36 -07:00
Joshua Groves
b2c58c7791 Add nested designated initialization 2019-03-07 20:48:37 -07:00
Joshua Groves
580e49f2cf Start rendering C example again 2019-03-07 20:15:12 -07:00
Joshua Groves
510865dd27 Restore GLFW for macOS 2019-03-07 19:19:10 -07:00
Joshua Groves
75ac875902 Start to update C example 2019-03-07 07:43:19 -07:00
Joshua Groves
fa2c2d7457 Combine Apple with other targets 2019-03-07 07:34:27 -07: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
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
Steven Wittens
b74b7fdd8c Update textureformats in examples 2019-02-28 06:36:45 +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
d631b2c6f2 Fix depth clamping semantics 2019-02-26 22:36:58 -05:00
Tristam MacDonald
8431da80ed Implement map read/write async 2019-02-26 06:45:07 -08:00
Dzmitry Malyshau
056cc64eb4 Shadow example shaders and improvements 2019-02-22 12:59:29 -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
bors[bot]
3274fc92f5 Merge #54
54: Document how to run examples r=grovesNL a=rukai

I had assumed the triangle example wasn't functional yet, because I didn't realize I had to specify a feature. I only realized it was supposed to work when I saw a screenshot of the cube example.

I'm not sure what the future is of the triangle example? Will it remain outside of the gfx-examples folder?

Co-authored-by: Rukai <rubickent@gmail.com>
2019-02-12 14:30:30 +00:00
Rukai
9374d52272 Document how to run examples 2019-02-12 22:01:49 +11:00
Tristam MacDonald
5f0df67dcc Initial compute pipeline support 2019-02-11 19:02:18 -08:00
Dzmitry Malyshau
3ec4ff99b0 Vertex buffer description in the pipelines 2019-02-03 20:39:13 -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
e8e5938e06 Linux support for GLFW example 2019-01-24 12:33:34 -05:00
Joshua Groves
3d98457eb9 Add support for GLFW on Windows 2019-01-24 12:08:32 -05:00
Joshua Groves
26f965cfbb Use CMake and update triangle example 2019-01-24 12:08:32 -05:00
Dzmitry Malyshau
edf269dbed Remove the non-winit path from the example 2019-01-22 17:10:08 -08:00
Dzmitry Malyshau
2ec9d05074 Triangle example, minor corrections 2019-01-21 19:20:09 -05:00
Joshua Groves
6cb9806408 Remove glfw submodule 2019-01-21 02:57:04 -07:00
Joshua Groves
f647fd8030 Regenerate bindings 2019-01-20 16:25:49 -07:00
Dzmitry Malyshau
5deb6e2047 DX11 support 2019-01-17 23:03:11 -05:00
Dzmitry Malyshau
2221b112c7 Fix command buffer recycling 2019-01-17 21:11:01 -05:00
Dzmitry Malyshau
c868db2cc7 Windowing in the triangle example, more presentation bits 2019-01-17 09:42:59 -05:00
porky11
a5a5b88014 use rustfmt for formatting after edits 2019-01-12 19:15:48 +01:00
Dzmitry Malyshau
f4bb1903bf Fix deadlock in barrier insertion 2018-12-01 22:53:21 -05:00
Dzmitry Malyshau
9aa5977c22 Bindings update with the new cbindgen 0.6.7 2018-10-30 22:02:07 -04:00
Dzmitry Malyshau
fee276afa5 Cache render passes on Device level 2018-10-30 16:37:36 -04:00
Dzmitry Malyshau
879cd64b30 Texture view creation in Rust and the example 2018-10-26 12:04:20 -04:00
Dzmitry Malyshau
de4f2b70eb Framebuffer creation and actual begin_render_pass 2018-10-25 22:29:27 -04:00
Dzmitry Malyshau
32b92afa5c Root Makefile 2018-10-22 12:01:42 -04:00
Joshua Groves
90e04cbe75 c: Update signatures 2018-10-11 23:45:24 -06:00
Joshua Groves
7575652545 rust: Update signatures 2018-10-11 23:45:00 -06:00
Joshua Groves
897c5b9e86 Add texture creation to C example 2018-10-07 09:22:24 -06:00
Dzmitry Malyshau
da95fe6b1e Rust side render pass begin/end 2018-10-01 10:11:44 -04:00
Dzmitry Malyshau
62f5fc480d Render pipeline states for Rust layer and example 2018-09-28 21:57:49 -04:00
Dzmitry Malyshau
47edd4564a Begin and finish command buffers 2018-09-28 11:35:31 -04:00
Joshua Groves
3975320543 Run cargo fmt 2018-09-28 07:21:07 -06:00
Joshua Groves
241aef131a Move register inside guard 2018-09-28 07:16:42 -06:00
Joshua Groves
eb80057e11 Fix C example name 2018-09-28 00:35:41 -06:00
Joshua Groves
e3d7fda9c7 Simplify registry access 2018-09-28 00:13:11 -06:00
Joshua Groves
aab17db5a1 Map rest of render pipeline descriptor 2018-09-28 00:08:44 -06:00
Dzmitry Malyshau
92c16a193e Rust wrapper update the command buffers and queues 2018-09-27 23:34:37 -04:00
Dzmitry Malyshau
c013fc9498 C example update, header, and better travis tests 2018-09-27 19:04:17 -04:00
Dzmitry Malyshau
3c583160d4 Port hello_triangle_rust example to use the new Rust wrapper 2018-09-26 14:31:06 -04:00
Dzmitry Malyshau
53c75d6aed First bits of wgpu-rs 2018-09-26 14:31:03 -04:00
Joshua Groves
7d35607ec1 Add remote feature to control ID type 2018-09-23 23:05:12 -06:00
Joshua Groves
211189a090 Create shader modules from C 2018-09-23 19:29:44 -06:00
Joshua Groves
08ad0f40ed Create C example 2018-09-23 13:25:05 -06:00
grovesNL
105a71d19a Format all files 2018-09-22 16:55:01 -06:00
grovesNL
5759f769b0 Add initial bindings 2018-09-22 16:54:19 -06:00
Dzmitry Malyshau
9ecc25e907 Restructure the repo to host multiple crates 2018-09-18 21:48:18 -04:00
grovesNL
76af247a51 Create shader modules 2018-09-16 00:40:42 -06:00
Dzmitry Malyshau
72dc47aba3 Hook up gfx-backend-empty 2018-09-14 09:16:30 -04:00
Dzmitry Malyshau
edc8980a9a Add a simple example 2018-09-14 09:08:23 -04:00