Commit Graph

9013 Commits

Author SHA1 Message Date
Andreas Reich
4f5acba5fb Fixed too eager lock usage, fixed O(N²) buffer range collapse 2021-01-31 21:56:31 +01:00
Andreas Reich
a8460b438c MemoryInitTracker drain is now O(N) 2021-01-31 21:56:31 +01:00
Andreas Reich
018ad05f56 memory init tracker check (previous is_initialized) clamps range now
and is O(log n)!
2021-01-31 21:56:31 +01:00
Andreas Reich
31d292b169 added clear helper method to memory_init_tracker, renamed drain 2021-01-31 21:56:31 +01:00
Andreas Reich
da86b3f401 Cleanup, better use of some rust std lib functions 2021-01-31 21:56:31 +01:00
Andreas Reich
cc183c885f Added player test for buffer-zero-init 2021-01-31 21:56:31 +01:00
Andreas Reich
216dcf949b MemoryInitTracker has now a custom impl that doesn't depend on range-alloc 2021-01-31 21:56:31 +01:00
Andreas Reich
32b4e32ac6 MemoryInitTracker tests and interface adjustments 2021-01-31 21:56:31 +01:00
Andreas Reich
492027fe6e command buffer buffer memory init tracking is only filled if necessary now 2021-01-31 21:56:22 +01:00
Andreas Reich
22fb9ab1eb buffer zero init on queue_submit emits correct barriers now
refactored this zero init into separate method
2021-01-31 21:55:49 +01:00
Andreas Reich
5d2afa52c1 Fix zero init for buffers mapped at cration that are not mappable 2021-01-31 21:55:49 +01:00
Andreas Reich
1efdc2b229 Queue_submit zeros out uninitialized buffer regions now
again but with fine grained scheme now
2021-01-31 21:55:49 +01:00
Andreas Reich
9595b39bb3 Fine grained tracking of buffer init requirements 2021-01-31 21:55:49 +01:00
Andreas Reich
5133b0da94 Introduced separate MemoryInitTracker 2021-01-31 21:55:49 +01:00
Andreas Reich
076aecd150 buffer map permeates zero init now in any case 2021-01-31 21:55:49 +01:00
Andreas Reich
a51b4f9232 buffer zero initialization prior to use in submit 2021-01-31 21:55:49 +01:00
Andreas Reich
875cfb5961 buffers are now zero initialized for mappings
queue_write_buffer marks as initialized
2021-01-31 21:55:49 +01:00
bors[bot]
1668bb2451 Merge #1180
1180: Add dummy structs for indirect command buffers r=cwfitzgerald,kvark a=Wumpf

**Connections**
Review of #1159 which could make more use of this expressiveness patch of having the buffers spelled out.

**Description**
Add dummy structs for indirect command buffers and (bonus!) fix missing IndirectBufferOverrun error for IndirectDispatch.

**Testing**
squinting at it only 👁️👁️

Co-authored-by: Andreas Reich <r_andreas2@web.de>
2021-01-31 20:41:22 +00:00
Andreas Reich
6b51328b2e Add public structs for indirect command buffers
and fix missing IndirectBufferOverrun error for IndirectDispatch
2021-01-31 21:32:33 +01:00
João Capucho
b55aa51f65 Add support for function declarations with arguments
Change ParseError to be public
Change globals to default to private instead of throwing error
2021-01-30 13:44:39 -05:00
Dzmitry Malyshau
be86f5b7cf Update README table 2021-01-30 11:54:15 -05:00
Dzmitry Malyshau
40974d503c Bump version to 0.3 and update changelog naga-v0.3.0 2021-01-30 11:48:37 -05:00
Dzmitry Malyshau
b8e9c209b0 [mtl] fix unsigned constants, comparison level option 2021-01-30 15:14:38 +01:00
Dzmitry Malyshau
0bbeec7d55 Add shadow snapshot shader 2021-01-30 15:14:38 +01:00
Dzmitry Malyshau
3b9f517446 [mtl] implement continuing, fix Greater op and scoping 2021-01-30 15:14:38 +01:00
bors[bot]
1e3eac2352 [rs] Merge #679
679: WGSL shader conversion for the examples r=grovesNL a=kvark

Blocked on:
  - ~~https://github.com/gfx-rs/naga/issues/335~~
  - ~~https://github.com/gfx-rs/naga/issues/336~~
  - ~~https://github.com/gfx-rs/wgpu/issues/1095~~
  - ~~https://github.com/gfx-rs/naga/pull/360~~
  - https://github.com/gfx-rs/gfx/pull/3622
  - ~~GL backend doing the program link check earlier~~

Converted:
- [x] boids
- [x] cube
- [x] mipmap
- [x] msaa-line
- [x] shadow
- [x] skybox
- [ ] texture-array
- [ ] water

Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
2021-01-30 06:05:49 +00:00
Dzmitry Malyshau
41a1c0e46f [rs] Convert cube, skybox, msaa-line, and mipmap, to WGSL
Validate example shaders in tests

Support WGSL on the Web via Naga

Port the shadow WGSL partially

Convert hello-compute and boids to WGSL

Conver the shadow's fragment shader to WGSL

Shader entry point refactor
2021-01-30 01:02:04 -05:00
bors[bot]
89284e07a4 [rs] Merge #734
734: Update wgpu to the new render pipeline descriptor API r=grovesNL a=kvark

MAJOR API BREAKING CHANGE
Gets us https://github.com/gfx-rs/wgpu/pull/1176

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-30 02:44:01 +00:00
Baptiste Manson
0c725c0837 added function pow from spirv backend 2021-01-29 17:38:41 -05:00
Dzmitry Malyshau
ea64ab0431 Check host shared decorations in the validator 2021-01-29 21:22:04 +01:00
Dzmitry Malyshau
0c5db60d69 [spv] fix depth sampler type 2021-01-29 21:05:15 +01:00
Dzmitry Malyshau
edb342cffe [rs] Update wgpu to the new render pipeline descriptor API 2021-01-29 00:51:44 -05:00
bors[bot]
ac81f3e756 Merge #1179
1179: Fix depth bias documentation r=kvark a=kvark

**Connections**
Follow-up to #1178

**Description**
Clippy complained...

**Testing**
No need

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-29 05:27:29 +00:00
Dzmitry Malyshau
4099c2ca8e Fix depth bias documentation 2021-01-29 00:25:54 -05:00
bors[bot]
513c08ecbb Merge #1178
1178: Add DepthBiasState, rename StencilStateFace r=kvark a=kvark

**Connections**
None

**Description**
Found the error in the `StencilStateFace` name and fixed it here.
Also identified that depth bias is a noticeable ergonomic offender, so moving it out into a struct, similar to what we have with stencil.

**Testing**
tested on wgpu-rs examples.

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-29 05:09:44 +00:00
Dzmitry Malyshau
14eb99da87 Add DepthBiasState, rename StencilStateFace 2021-01-29 00:07:46 -05:00
bors[bot]
6c0e652f86 Merge #1177
1177: Update gfx with the new iterator API r=kvark a=kvark

**Connections**
Gets https://github.com/gfx-rs/gfx/pull/3615 and https://github.com/gfx-rs/gfx/pull/3619

**Description**
Avoids a few `collect()` calls when talking to gfx.

**Testing**
just local playtests

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2021-01-28 17:42:08 +00:00
Dzmitry Malyshau
4764ff21e9 Update gfx with the new iterator API 2021-01-28 12:40:24 -05:00
Dzmitry Malyshau
4a13ce022b [spv] debug labels for types, local variables, and struct members 2021-01-28 17:28:48 +01:00
Dzmitry Malyshau
089a5597c6 [spv] implement the rest of binary operators 2021-01-28 17:28:48 +01:00
Dzmitry Malyshau
20b9aa6835 Address clippy issues 2021-01-28 17:28:48 +01:00
Dzmitry Malyshau
162079c160 Enable collatz and boids testing for spv-out 2021-01-28 17:28:48 +01:00
Dzmitry Malyshau
194a67edda [spv] separate block ID creation from contents writing 2021-01-28 17:28:48 +01:00
Dzmitry Malyshau
7d3342f2c9 [spv] Implement math comparison functions 2021-01-28 17:28:48 +01:00
Dzmitry Malyshau
b9cc890ca6 [spv] implement loops 2021-01-28 17:28:48 +01:00
Dzmitry Malyshau
16521a94d0 [spv] implement trigonometry math functions 2021-01-28 17:28:48 +01:00
Dzmitry Malyshau
3177df2188 [spv] refactor the return statement handling 2021-01-28 17:28:48 +01:00
Dzmitry Malyshau
e3328773d0 [spv] Refactor struct Block, implement Statement::Block 2021-01-28 17:28:48 +01:00
Timo de Kort
88f118a07d Working prototype 2021-01-28 17:28:48 +01:00
Dzmitry Malyshau
dc98305bb8 Print out detailed WGSL errors 2021-01-28 01:22:10 -05:00