Commit Graph

751 Commits

Author SHA1 Message Date
Dzmitry Malyshau
cf687604b9 Fix compute pass resource binding 2019-10-22 09:09:53 -04:00
Terrence Cole
78fbbba5e9 Support Limits::max_bind_groups (#348)
* Pass max_bind_count down into Binder.
* Use the existing hub.
* Remove accidental newline.
2019-10-14 21:57:05 -04:00
bors[bot]
5ba923c79f
Merge #344
344: Update deps r=kvark a=rukai

We should wait for https://github.com/rust-windowing/winit/pull/1191 to find its way into a winit release before merging this PR.

Co-authored-by: Rukai <rubickent@gmail.com>
2019-10-06 02:05:41 +00:00
Rukai
31ef688213 Updated deps 2019-10-06 11:17:57 +11:00
bors[bot]
33aee5250e
Merge #347
347: Add license headers to all Rust sources r=imnotalawyer a=kvark

Fixes #346 
the header is fairly small, so it shouldn't be in the way of editing files

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-10-04 19:31:03 +00:00
Dzmitry Malyshau
9c58a5d11a Add license headers to all Rust sources 2019-10-04 15:24:17 -04:00
bors[bot]
d79b279156
Merge #343
343: Document primary/secondary backend bit r=kvark a=rukai

Happy to add more detail, but this should be sufficient for the user to understand what PRIMARY/SECONDARY mean.

Co-authored-by: Rukai <rubickent@gmail.com>
2019-09-30 15:52:26 +00:00
bors[bot]
f523f2e36c
Merge #342
342: Fallback to D32 when D24 isn't available r=kvark a=grovesNL

The rationale is that D32 seems to be supported on more devices. Using D24 could be a future memory/performance optimization instead.

Otherwise if it's fairly trivial I could add the fallback path for D32 here instead, but I'm not sure how we intend for values in the `D24Unorm` depth range to work in general (i.e. compared to `D32Sfloat`). Maybe I missed some discussion about this, but I don't see it in the minutes.

cc @Yatekii 

Co-authored-by: Joshua Groves <josh@joshgroves.com>
2019-09-28 16:40:13 +00:00
Joshua Groves
5080a20cb6 Disallow copying for D24Plus textures 2019-09-28 00:32:00 -06:00
Joshua Groves
e430a4cf40 Fallback to D32 when D24 isn't available 2019-09-27 23:44:26 -06:00
Rukai
194a155cae Document primary/secondary backend bit 2019-09-28 08:30:51 +10:00
bors[bot]
cbe197eb44
Merge #341
341: Track and destroy samplers r=kvark a=yanchith

This PR adds `ResourceId::Sampler`, `NativeResource::Sampler` and
`TrackerSet::samplers`. Samplers are (similarly to bind groups)
created with their own life guard and a device id to keep the device
ref count alive. Also added are `extern wgpu_sampler_destroy` and
`sampler_destroy`.

The rest of the implementation was guided by compiler errors, so there
is a good chance I didn't find something crucial that also needed
doing. Please check :)

I also imagine we might want to add the `Drop` impl for sampler in wgpu-rs.

Fixes: #231 

Co-authored-by: yanchith <yanchi.toth@gmail.com>
2019-09-24 17:11:49 +00:00
yanchith
758bb16d01 Make sure submissions are tracked 2019-09-24 19:04:35 +02:00
yanchith
ed8503ed6c Track and destroy samplers
This PR adds `ResourceId::Sampler`, `NativeResource::Sampler` and
`TrackerSet::samplers`. Samplers are (similarly to bind groups)
created with their own life guard and a device id to keep the device
ref count alive. Also added are `extern wgpu_sampler_destroy` and
`sampler_destroy`.

The rest of the implementation was guided by compiler errors, so there
is a good chance I didn't find something crucial that also needed
doing. Please check :)
2019-09-23 12:13:18 +02:00
bors[bot]
ac16063c60
Merge #340
340: print usage required during usage validation r=kvark a=m4b

fixes #339

Co-authored-by: m4b <m4b.github.io@gmail.com>
2019-09-16 14:44:32 +00:00
m4b
46501f296a print usage required during device usage validation
fixes #339
2019-09-15 22:27:25 -07:00
bors[bot]
c3609d71c9
Merge #331
331: Add a function to describe a device r=kvark a=paulkernfeld

This is for https://github.com/gfx-rs/wgpu-rs/pull/29

This successfully describes the device on my machine. I think I may have done the imports wrong. If so, apologies.

Co-authored-by: Paul Kernfeld <paulkernfeld@gmail.com>
2019-09-12 01:42:08 +00:00
bors[bot]
b045e7ea13
Merge #337
337: Fix life cycle of swap chain framebuffers r=grovesNL a=kvark

Fixes #78 

The new swapchain model requires framebuffers to be destroyed right after presentation.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-09-11 23:18:40 +00:00
bors[bot]
7ef8665ea3
Merge #338
338: Prefer the specific number of frames in a swap chain r=kvark a=kvark

Fixes https://github.com/gfx-rs/wgpu-rs/issues/72

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-09-11 17:26:44 +00:00
Dzmitry Malyshau
9c32dd57b1 Prefer the specific number of frames in a swap chain 2019-09-11 13:23:51 -04:00
Dzmitry Malyshau
050b716aef Fix life cycle of swap chain framebuffers 2019-09-10 09:16:51 -04:00
bors[bot]
499bf1d268
Merge #330
330: New swapchain model r=grovesNL a=kvark

Fixes #322
TODO:
- [x] Test on Metal
- [x] Test on DX12
- [x] Test on Vulkan
- [x] Try embedding the backend information into `SwapChainId`
- [x] Wait for https://github.com/amethyst/rendy/pull/202

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-09-10 00:55:24 +00:00
Dzmitry Malyshau
5f1c432706 New swapchain model 2019-09-09 20:53:35 -04:00
Paul Kernfeld
36cccb827d Add a way to describe an adapter 2019-09-09 20:28:30 -04:00
bors[bot]
510a23f2fa
Merge #332
332: Validate resource usage flags when used r=kvark a=yanchith

This PR adds usage flag validations to the functions discussed in https://github.com/gfx-rs/wgpu/issues/228#issuecomment-528949445 and https://github.com/gfx-rs/wgpu/issues/228#issuecomment-528953096

I added `usage` fields to `Buffer` and `Texture` for convenience.

The validations themselves are run before much else happens (seemed clearer that way). This means certain `VecMap`s and `FastHashMap`s might be queried more than necessary, though. 

I also left one TODO in, which I'd like to resolve: With what usage flags should the swapchain textures be created? Currently it initializes the texture resource trackers with `UNINITIALIZED`, so I just copied the same flag for the texture. This just happens to work (that is not trigger the validations I added), because its value, `UNINITIALIZED`, pretends to be every usage flag by having all bits set. Is that by design?

Closes #228 ~(except for `BufferUsage::INDIRECT`, for which I can create another issue)~

Co-authored-by: yanchith <yanchi.toth@gmail.com>
2019-09-09 14:36:59 +00:00
yanchith
141f4f71eb Validate resource usage flags when used 2019-09-09 15:44:15 +02:00
bors[bot]
5512c03a09
Merge #333
333: Make Vulkan optional on Apple r=grovesnL a=kvark

Fixes #321

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-09-09 01:07:58 +00:00
Dzmitry Malyshau
fe89c52834 Make Vulkan optional on Apple 2019-09-07 21:51:34 -04:00
bors[bot]
88204b9d86
Merge #329
329: Export function wgpu_render_pass_set_index_buffer r=kvark a=alichay

The function didn't have the `#[no_mangle]` flag, that's all.

Co-authored-by: Alichay <allisonalichay@gmail.com>
2019-09-07 02:31:04 +00:00
Alichay
306dd09626 Exported function wgpu_render_pass_set_index_buffer 2019-09-06 20:49:11 -05:00
bors[bot]
412198d829
Merge #328
328: Switch to use gfx-rs latest and greatest master r=kvark a=kvark

I'm going to implement #322 as a follow-up commit, but this one is already standalone and mergeable.
Closes #320 

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-09-06 14:07:47 +00:00
Dzmitry Malyshau
988d78435a Switch to use gfx-rs latest and greatest master 2019-09-06 10:05:53 -04:00
bors[bot]
aa316279dc
Merge #327
327: Select virtual GPU last in all power preferences r=kvark a=danaugrs



Co-authored-by: Daniel Salvadori <danaugrs@gmail.com>
2019-09-06 00:06:10 +00:00
Daniel Salvadori
05b68bbee6 Select virtual GPU last in all power preferences 2019-09-05 20:10:39 -03:00
bors[bot]
8d2a82cc38
Merge #316
316: Testing adding iOS matrix. r=kvark a=seivan

I'm not sure `GLFW3` would work for iOS, but lets see what Travis says?

Co-authored-by: Seivan Heidari <seivan.heidari@icloud.com>
2019-09-05 14:44:51 +00:00
Seivan Heidari
18b790fba8 Adding iOS matrix for CI. 2019-09-05 11:45:47 +02:00
bors[bot]
a2956c0d42
Merge #325
325: Create vulkan instance on windows r=kvark a=danaugrs



Co-authored-by: Daniel Salvadori <danaugrs@gmail.com>
2019-09-03 21:33:33 +00:00
Daniel Salvadori
443a0d661f Create vulkan instance on windows 2019-09-03 17:41:52 -03:00
bors[bot]
40fb3fcdfd
Merge #319
319: Multiple binding fixes r=kvark a=kvark

Could be related to #315 (haven't confirmed)

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-09-01 04:22:59 +00:00
Dzmitry Malyshau
cc16b4b65a Fix binding compatibility checks 2019-08-31 00:56:05 -04:00
Dzmitry Malyshau
e97e54e4a3 Stop rebinding descriptors on the first incompatible 2019-08-31 00:56:05 -04:00
Dzmitry Malyshau
872bf21a9b Fix descriptor set offsets binding on pipeline change 2019-08-31 00:56:05 -04:00
bors[bot]
2acc0ebb62
Merge #314
314: Handle frame acquisition failure internally r=grovesNL a=kvark

Fixes #313, which is critical to get us running on Metal today.
In the nearest future, all that code will be removed in favour of using the alternative swapchain model.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-08-31 04:55:14 +00:00
bors[bot]
0f26def66f
Merge #317
317: Fix building on ios r=grovesNL a=kvark

Fixes #315 

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-08-31 04:29:41 +00:00
Dzmitry Malyshau
86bb809c39 Fix building on ios 2019-08-30 09:07:21 -04:00
Dzmitry Malyshau
d37ecdf248 Handle frame acquisition failure internally 2019-08-29 22:27:21 -04:00
bors[bot]
b58c96e4a6
Merge #311
311: Feature-less backend selection r=grovesNL a=kvark

Fixes #252 
Notes:
- ~~only Vulkan and Metal atm, not tested.~~
- GL is removed (for now)
- the gfx backends appear in public dependencies (for now)

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2019-08-29 13:45:11 +00:00
Dzmitry Malyshau
175e992149 DX12/DX11 hookup, improved adapter selection 2019-08-29 09:44:34 -04:00
Dzmitry Malyshau
b414b9f373 Formatting pass 2019-08-27 21:11:07 -04:00
Dzmitry Malyshau
26e5b4258d Add a mask of backends for local adapter selection 2019-08-27 21:08:13 -04:00