Commit Graph

338 Commits

Author SHA1 Message Date
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
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
bors[bot]
a1908c1873 Merge #142
142: Correct Link r=kvark a=ShalokShalom



Co-authored-by: ShalokShalom <shalokshalom@protonmail.ch>
2019-04-28 02:14:02 +00:00
Serhii Plyhun
092bcc4afb Scissor test 2019-04-28 00:45:37 +02:00
ShalokShalom
3c12edd0b7
Correct Link 2019-04-27 21:05:39 +02:00
bors[bot]
6f810f4f23 Merge #131
131: Support dynamic offsets r=kvark a=cloudhead

Closes #125

Adds support for dynamic offsets when setting a bind group.

I haven't actually tried if this works with my use-case, but it's fairly straight forward. 😅 

Co-authored-by: Alexis Sellier <alexis@monadic.xyz>
2019-04-26 22:34:55 +00: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
bors[bot]
ee3025c4d8 Merge #130
130: Format code using 'cargo fmt' r=kvark a=Atul9



Co-authored-by: Atul Bhosale <atul1bhosale@gmail.com>
2019-04-26 16:59:20 +00: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
06d34830d4 Update OSX CI version to 9.4 2019-04-25 08:29:53 -04: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
bors[bot]
0a60c82c43 Merge #128
128: Fix winit event loop in the triangle example r=kvark a=psincf

It's the refactored https://github.com/gfx-rs/wgpu/pull/122 PR

Co-authored-by: psincf <44228825+psincf@users.noreply.github.com>
2019-04-22 21:13:09 +00: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
bors[bot]
4431df63d8 Merge #124
124: Configure Swapchain with supported composite_alpha r=kvark a=silphendio

CompositeAlpha::Inherit (default) is not supported on every graphics card.
Relevant : https://github.com/gfx-rs/gfx/issues/2507

Co-authored-by: Markus Ginthör <markus.ginthoer@gmx.at>
2019-04-22 16:35:17 +00:00
Markus Ginthör
89c5564133 Configure Swapchain with supported composite_alpha 2019-04-12 17:44:44 +02:00
bors[bot]
f5ad76726b Merge #121
121: Implement index formats r=kvark a=grovesNL

I decided to implement index formats to try to catch up on some of the recent changes. The idea is to either source the index format from the last bound pipeline, or switch the index format based on a newly bound pipeline, through the following:

- During `set_index_buffer`, use the index format from the render pass, and cache the bound index buffer ID and offset
- During `set_pipeline`, check if the index format has changed from the previous pipeline, and rebind the index buffer using the new index format if necessary

Some things I wasn't sure about:

- Is the usage of `get_with_extended_usage` correct here?
- Are the caches located in the correct place (i.e. `RenderPassContext`)?

Co-authored-by: Joshua Groves <josh@joshgroves.com>
2019-04-07 11:29:41 +00:00
Joshua Groves
7f7bdd1ba1 Implement index formats 2019-04-07 08:15:05 -02:30
bors[bot]
20841859d1 Merge #119
119: Fix waiting on frame semaphores, plus check the epochs r=grovesNL a=kvark

Fixes #88 

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2019-04-04 12:32:19 +00:00
Dzmitry Malyshau
83a83f33e7 Track epochs of the frame semaphores to wait for 2019-04-03 17:48:26 -04:00
bors[bot]
3bf6992e75 Merge #118
118: readme: revise supported platforms r=kvark a=nathany

Should this say D3D11?

Co-authored-by: Nathan Youngman <4566+nathany@users.noreply.github.com>
2019-04-02 16:31:36 +00:00
Nathan Youngman
acc8443b5e readme: revise supported platforms 2019-04-02 08:35:39 -06:00
bors[bot]
81ff6fac05 Merge #116
116: Validation bits from 0.2 r=kvark a=kvark

Sibling of #114 

Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2019-04-01 00:08:02 +00:00
Dzmitry Malyshau
c283a8b115 Update changelog and versions 2019-03-31 20:04:39 -04:00
Dzmitry Malyshau
a3ffa7072a Fix the triangle examples 2019-03-31 20:03:24 -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
Dzmitry Malyshau
2ca7fd5077 Fix winit swapchain sizes in examples 2019-03-24 23:50:26 -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