Commit Graph

2761 Commits

Author SHA1 Message Date
Svenn-Arne Dragly
92288e2988 Add support for indirect drawing 2019-07-30 09:18:54 +02:00
Dzmitry Malyshau
ff3ae67f3d [rs] Switch msaa example samples to 4 2019-07-29 19:59:39 -04:00
bors[bot]
c492540f6b Merge #264
264: update README.md r=kvark a=Napokue

Changes:
- Add supported platforms table
- Remove example docs here, and referencing the user to the wiki


Co-authored-by: Timo de Kort <dekort.timo@gmail.com>
2019-07-29 22:08:05 +00:00
Timo de Kort
939ed8dc7a update README.md 2019-07-29 23:27:30 +02:00
Dzmitry Malyshau
3a8b78ae43 [rs] Update README with some development instructions 2019-07-29 17:13:31 -04:00
bors[bot]
881b7b284f Merge #261
261: streamline Makefile r=kvark a=Napokue

Changes:
- Streamlining the Make commands to make it look better
- Introduced two new variables: `WILDCARD_WGPU_NATIVE` & `WILDCARD_WGPU_NATIVE_AND_REMOTE` to reduce duplicate code. Will continue to reduce duplicate after my compute example is merged, to avoid unnecessary merge conflicts

Maybe I am not too familiar with the concept FFI, but wouldn't it be easier to understand that we just generate headers and not foreign function interfaces. Basically the same, but the latter one sounds a lot more complex. We want to reach as much as possible people, so maybe renaming this would be beneficial?

So I was thinking to have the commands: `header-wgpu` and `header-wgpu-remote`, instead of `ffi-wgpu` and `ffi-wgpu-remote`.


Co-authored-by: Timo de Kort <dekort.timo@gmail.com>
2019-07-29 20:54:36 +00:00
Seivan Heidari
ca74b3fbac [rs] Exposing set_viewport() on RenderPass. 2019-07-29 22:52:08 +02:00
Timo de Kort
e091420a90 streamline Makefile 2019-07-29 22:40:25 +02:00
bors[bot]
50454d43df Merge #203
203: Add compute example r=kvark a=Napokue



Co-authored-by: Timo de Kort <dekort.timo@gmail.com>
2019-07-29 19:38:56 +00:00
bors[bot]
c3c197a8d5 [rs] Merge #46
46: Replace Pod using zerocopy crate r=kvark a=paulkernfeld

See https://github.com/gfx-rs/wgpu/pull/256#issuecomment-515277497

Co-authored-by: Paul Kernfeld <paulkernfeld@gmail.com>
2019-07-29 16:54:24 +00:00
Paul Kernfeld
ece89ddb09 [rs] Replace Pod using zerocopy crate
See https://github.com/gfx-rs/wgpu/pull/256#issuecomment-515277497
2019-07-27 13:58:31 -04:00
Timo de Kort
842809bc0b add framework files 2019-07-27 14:30:20 +02:00
Timo de Kort
d759da409f add compute example 2019-07-27 14:26:06 +02:00
bors[bot]
8bb84c2769 [rs] Merge #45
45: Update to latest wgpu commit r=kvark a=rukai

Nothing really interesting in between these commits.

Co-authored-by: Lucas Kent <rubickent@gmail.com>
2019-07-26 16:00:45 +00:00
Lucas Kent
5cea0fc14b [rs] Update to latest wgpu commit 2019-07-26 18:17:50 +10:00
bors[bot]
5224bb8124 Merge #258
258: Run-time lock protection against double root r=grovesNL a=kvark

Fixes https://github.com/gfx-rs/wgpu-rs/issues/42
cc @paulkernfeld 

We didn't handle a case where the root locking token would get dropped (while some children are borrowed), and a new one is created. This was the case in `wgpu_device_poll`, which ended up trying to unmap the buffers.

This PR brings a relatively simple run-time check for this. It could *probably* be done at the type level, but I'm going to leave it for any follow ups (help is welcome!), because:
  1. we'll still have a run-time check for the simple case where 2 or more root tokens are created
  2. I spent 20 minutes trying and wasn't able to get this going

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-07-25 01:21:17 +00:00
bors[bot]
e2e89c8f23 [rs] Merge #43
43: Remove unneeded TextureUsage r=kvark a=rukai

Just a small issue that was missed in review.

Co-authored-by: Rukai <rubickent@gmail.com>
2019-07-24 15:37:34 +00:00
Rukai
f9797fa3dd [rs] Remove unneeded TextureUsage 2019-07-24 21:37:15 +10:00
Dzmitry Malyshau
e42fb0ed44 Run-time lock protection against double root 2019-07-23 23:46:32 -04:00
bors[bot]
4a6c1fb84b [rs] Merge #38
38: Add an example showing how to capture a render r=kvark a=paulkernfeld

I had wanted to use wgpu-rs to generate `.png` images rather than displaying to the screen, so I coded up this prototype as an example to others who might want to do something similar.

Possible changes:
- Create an actual `.png` or other image
- Convert this into a unit test

I'm happy to make other modifications to this as well.

Co-authored-by: Paul Kernfeld <paulkernfeld@gmail.com>
2019-07-24 02:18:27 +00:00
Paul Kernfeld
153a373fe9 [rs] Add an example showing how to capture a render 2019-07-23 22:14:27 -04:00
bors[bot]
66eb63fe20 Merge #254
254: Rebind with proper dynamic offsets r=grovesNL a=kvark

~~The change fixed a bug found by @kocsis1david : when we re-bind the higher bind groups we aren't currently considering their dynamic offsets.~
Fixes #255 

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-07-23 11:38:29 +00:00
bors[bot]
2550a5129d [rs] Merge #40
40: Update running an example documentation r=kvark a=Napokue

- Removed link to gfx getting started
- Created our own getting started (with examples)
- Updated syntax

Motivation: I always forget how to run the examples, gfx getting started is not the same as the wgpu-rs one. So I found the correct usage of the syntax to run examples. I am noticing in the Gitter channel that many people are struggling with running the examples, maybe this will clear it up a little. 

This is the beginning, I will continue to expand the documentation in the future.

Co-authored-by: Timo de Kort <dekort.timo@gmail.com>
2019-07-22 20:29:00 +00:00
Timo de Kort
9bc69d3068 [rs] update running an example 2019-07-22 22:22:37 +02:00
Dzmitry Malyshau
41d0ce14d6 Rebind with proper dynamic offsets 2019-07-22 00:16:29 -04:00
bors[bot]
7314eaf636 Merge #251
251: Update parking_lot version r=kvark a=rukai

No breaking changes we need to worry about https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md

Co-authored-by: Lucas Kent <rubickent@gmail.com>
2019-07-19 14:23:14 +00:00
Lucas Kent
1c88c3469d Update parking_lot version 2019-07-19 18:13:07 +10:00
bors[bot]
dc9f64b42c [rs] Merge #33
33: Make `PresentMode` configurable. r=kvark a=Yatekii

See: https://github.com/gfx-rs/wgpu/pull/245

Co-authored-by: Noah Hüsser <yatekii@yatekii.ch>
2019-07-17 19:31:28 +00:00
Noah Hüsser
66702bdc15 [rs] Adapt to changes in wgpu for a configurable PresentMode.
Gl fixes.

Try fix this mess ..

GL fixess

Revert intermediate wgpu branch

Set proper wgpu-native commit ref

Adapt examples to the new features.
2019-07-17 21:27:32 +02:00
bors[bot]
32399cff8a Merge #245
245: Make `PresentMode` configurable. r=kvark a=Yatekii



Co-authored-by: Noah Hüsser <yatekii@yatekii.ch>
2019-07-17 00:47:08 +00:00
Noah Hüsser
c5c7092d9c Make PresentMode configurable
Disable vsync

Revert accidential hardcode of num_frames

Make the PresentMode configurable

Adapt examples
+ adjust style according to @kvrak

Adher to @kvarks wishes for style.

Examples build.

Fix unnecessary ampersand.
2019-07-11 18:58:44 +02:00
bors[bot]
acf6e5b570 [rs] Merge #35
35: Add the possibility to set a stencil on a renderpass. r=kvark a=Yatekii



Co-authored-by: Noah Huesser <yatekii@yatekii.ch>
2019-07-11 13:42:21 +00:00
Noah Huesser
416a9d36b5 [rs] Add the possibility to set a stencil on a renderpass. 2019-07-11 10:37:05 +02:00
bors[bot]
00f7dfa9e8 [rs] Merge #32
32: Add conversion matrix from OpenGL to wgpu r=kvark a=dragly

The matrices in the examples are given in an OpenGL-like coordinate system,
while a Vulkan-like coordinate system is used by wgpu. This was previously
partially corrected in the shader and by flipping the up axis of the camera,
but left the x-axis mirrored in the final result.

This change adds a conversion matrix to framework.rs that can be used
to convert from OpenGL to wgpu. This also allows us to set the
winding-order to counter-clockwise, which matches the ordering in the data.

Co-authored-by: Svenn-Arne Dragly <dragly@cognite.com>
Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
2019-07-08 13:11:07 +00:00
Svenn-Arne Dragly
a4b500ff4b [rs] Make opengl_to_wgpu_matrix into a constant 2019-07-08 10:36:25 +02:00
Dzmitry Malyshau
8cf1dff41f [rs] Use the correction matrix in shadow baking 2019-07-05 13:43:57 -04:00
Svenn-Arne Dragly
f76b41420e [rs] Add conversion matrix from OpenGL to wgpu
The matrices in the examples are given in an OpenGL-like coordinate system,
while a Vulkan-like coordinate system is used by wgpu. This was previously
partially corrected in the shader and by flipping the up axis of the camera,
but left the x-axis mirrored in the final result.

This change adds a conversion matrix to framework.rs that can be used
to convert from OpenGL to wgpu. This also allows us to set the
winding-order to counter-clockwise, which matches the ordering in the data.
2019-07-05 17:47:37 +02:00
bors[bot]
183058d618 Merge #237
237: Enforce the HUB lock order r=grovesNL a=kvark

Fixes #66
cc @jrmuizel @m4b

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-07-05 03:27:11 +00:00
Dzmitry Malyshau
1ed15f94dc Add some more comments about Access and Token' 2019-07-04 23:02:22 -04:00
bors[bot]
a63bca6822 Merge #223
223: Derive Debug for All Remaining Public Types r=kvark a=arashikou

With gfx-hal 0.2.1 and the various backend releases on 2019-06-28, all of the gfx-hal types that wgpu depends on implement `Debug`. Thus, some types that could not derive `Debug` in #216 can now derive `Debug`.

This patch also adds `Debug` implementations for a few types that were recently added to wgpu.

Fixes #76.

Co-authored-by: John W. Bruce <arashikou@gmail.com>
2019-07-05 02:45:04 +00:00
John W. Bruce
25834b0312 Derive Debug for All Remaining Types
With gfx-hal 0.2.1 and the various backend releases on 2019-06-28, all
of the gfx-hal types that wgpu depends on implement Debug. Thus, some
types that could not derive Debug in #216 can now derive Debug.

This patch also adds Debug implementations for a few types that were
recently added to wgpu.

Fixes #76.
2019-07-04 17:49:21 -07:00
Dzmitry Malyshau
6085dcf33b Enforce the HUB lock order 2019-07-04 14:43:54 -04:00
bors[bot]
8af0fa824b Merge #244
244: Fix bind groups set on a compute encoder r=kvark a=kvark

Fixes #243

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-07-03 14:23:42 +00:00
bors[bot]
662f9567d7 Merge #242
242: Add logic to pick highest performance GPU on DirectX 12 r=kvark a=AndrewGaspar

I was having an issue on my Surface Book where my Intel's integrated GPU is always selected instead of my Nvidia discrete GPU when querying for `HighPerformance`. It turns out the Intel GPU is reported as a `DistcreteGPU` by `gfx` (in fact `gfx` has no logic for reporting `IntegratedGPU`s for DX12). However, it also turns out that `dx12::Instance::enumerate_adapters` returns adapters in descending order of performance, at least on Windows 10 > 1803. Therefore, we should use the _first_ GPU in each category, at least for `HighPerformance`. With this fix, `LowPower` selects my Intel GPU and `HighPerformance` and `Default` select my Nvidia GPU.

I'm not so sure `LowPower` = `IntegratedGPU` and `HighPerformance` = `DiscreteGPU` is the quite correct mapping, so I filed an issue on gfx to improve the ability for querying for power/performance preference: https://github.com/gfx-rs/gfx/issues/2879

Anyway, let me know if you have a different fix you'd prefer.

Co-authored-by: Andrew Gaspar <andrew.gaspar@outlook.com>
2019-07-02 17:16:19 +00:00
Dzmitry Malyshau
14d0a24f81 Fix bind groups set on a compute encoder 2019-07-02 13:11:02 -04:00
Andrew Gaspar
b47f01ea17 Address code review comments 2019-07-01 21:13:26 -06:00
Andrew Gaspar
0d555fb688 Add logic to pick highest performance GPU on DirectX 12
Always select the first GPU in Integrated-Low/Discrete-High category,
except when querying `LowPower`, in which case the last Discrete GPU
is used.
2019-06-29 16:50:41 -06:00
bors[bot]
a70eab2e3b [rs] Merge #30
30: Add Pod trait bound for all BufferMapAsyncResult data r=kvark a=paulkernfeld



Co-authored-by: Paul Kernfeld <paulkernfeld@gmail.com>
2019-06-24 14:59:18 +00:00
bors[bot]
4e33716df3 [rs] Merge #28
28: msaa-line example fixes r=kvark a=rukai

This PR fixes the msaa-line example in addition to the fixes in https://github.com/gfx-rs/wgpu/pull/235

If https://github.com/gfx-rs/gfx/pull/2853 is merged first we can remove the crates.io patch.

Co-authored-by: Rukai <rubickent@gmail.com>
2019-06-24 14:34:19 +00:00
Rukai
4e9aa5b2d3 [rs] msaa-line example fixes 2019-06-24 21:59:42 +10:00