Commit Graph

178 Commits

Author SHA1 Message Date
Dzmitry Malyshau
5953098461 Implement render bundle freeing 2021-01-04 09:30:10 -05:00
Dzmitry Malyshau
ab10d36ac0 Rename get_encoder to get_encoder_mut 2020-12-23 11:20:08 -05:00
Dzmitry Malyshau
a7587b41e6 Move the render pass setup logic into a separate method/struct 2020-12-22 22:30:27 -05:00
Dzmitry Malyshau
35b163ebc8 Encode render passes while command buffer is only read-locked 2020-12-22 13:48:18 -05:00
Connor Fitzgerald
1da153f3bd Improve vertex state error messages 2020-12-21 23:13:34 -05:00
Connor Fitzgerald
94579d8125 Properly validate vertex buffer state 2020-12-21 23:10:53 -05:00
Dzmitry Malyshau
cb67ef6542 Clean up render pass labels 2020-12-15 17:28:24 -05:00
Dzmitry Malyshau
394135f725 Fix and improve object labels and command markers 2020-12-15 11:28:11 -05:00
bors[bot]
69196d85a3 Merge #1077
1077: Remove extern "C" from set_index_buffer r=kvark a=DevOrc

**Connections**
Fixes an issue that is blocking gfx-rs/wgpu-native#61

**Description**
Moves the ffi definition of wgpu_render_bundle_set_index_buffer / wgpu_render_pass_set_index_buffer to wgpu-native. This is needed because wgpu-native has its own version of IndexFormat that is different than the wgpu_types version. 

**Testing**
My projects with wgpu-native work


Co-authored-by: Noah Charlton <ncharlton002@gmail.com>
2020-12-08 15:45:00 +00:00
Noah Charlton
b71c47a064 Remove extern "C" from set_index_buffer 2020-12-07 17:03:54 -05:00
Capucho
713c23bc42 Grow the VertexState inputs in SetPipeline 2020-12-07 15:45:20 +00:00
Connor Fitzgerald
19fb491262 Fix validation of compressed mipmaps 2020-12-05 19:30:26 -05:00
Connor Fitzgerald
8f430ab1ef Implement ETC2 and ASTC textures 2020-12-05 19:30:26 -05:00
Dzmitry Malyshau
749f737c89 Add pervasive Naga support to shader module loading
The purpose of the PR is to support Naga modules everywhere.
As a requirement, it updates the gfx-rs version used.
Most of the logic is dedicated towards building a shader interface,
where previously we just used naga's IR. Now we have our own mini-IR.
2020-12-05 11:31:03 -05:00
kejor
4513fb2b83 Match upstream API changes for IndexFormat 2020-12-01 19:19:41 -05:00
Dzmitry Malyshau
9e2f6c2f01 Move to gfx master 2020-11-30 22:50:13 -05:00
Dzmitry Malyshau
c6bc37dbde [error] render bundles 2020-11-23 12:00:47 -05:00
Mikko Lehtonen
459e835250 Add Ids to PassErrorScope
Also makes it pub, and the places it is used.
Tweak some error messages.
2020-11-21 23:39:05 +02:00
Dzmitry Malyshau
46b87e220c Stop using Borrow<RefCount> 2020-11-21 10:38:20 -05:00
Mikko Lehtonen
a41f7ea78f Make inner errors pub 2020-11-19 23:37:36 +02:00
Mikko Lehtonen
4498f172cc Retain labels for resources
As a braking api change, adds also label for the error id generation,
for labeling invalid ids too.

Also adds query methods the label.
2020-11-19 00:09:21 +02:00
Marvin Löbel
8723a8379a Annotate all commands of {Compute,Render}Passes with error context informations 2020-11-12 23:05:10 +01:00
Zsolt Bölöny
a493ed06d8 Rename OutputAttachment helper struct to RenderAttachment too to avoid confusion 2020-11-08 14:27:44 +01:00
Zsolt Bölöny
2151a252ad Rename TextureUsage::OUTPUT_ATTACHMENT to RENDER_ATTACHMENT 2020-11-08 14:24:39 +01:00
Dzmitry Malyshau
a168886497 Add helpers to convert passes to serialized forms 2020-10-27 13:19:05 -04:00
Marvin Löbel
752c1aad33 Elide redundant set_pipeline calls.
Add a small abstraction over state changes

Deduplicate redundant pipeline state checking
2020-10-21 19:25:21 +02:00
Dzmitry Malyshau
150ee25c01 Align stencil reference flags between pipeline creation and setting 2020-10-14 16:54:15 -04:00
James Gilles
05c58e805b Fix garbled debug markers in render passes 2020-10-13 17:34:25 -04:00
bors[bot]
f963193be1 Merge #966
966: Immediate resource destruction and freeing r=cwfitzgerald a=kvark

**Connections**
Fixes #964

**Description**
We are making it so a buffer or a texture can have their native resources freed while they are still referenced, so without waiting for GC.

In addition, the PR adds a few missing cases where error IDs should have been handled, like at render pass encoding.

**Testing**
Tested on wgpu-rs examples, see https://github.com/gfx-rs/wgpu-rs/pull/591

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-10-11 17:10:42 +00:00
Dzmitry Malyshau
c87a94f976 Early texture destruction 2020-10-08 23:21:11 -04:00
PENGUINLIONG
6f4508523a Pass [u8] instead of [u32] for push constants (#918)
* Pass [u8] instead of [u32] for push constants

Use 2-instruction aligner

Fixed alignment

Fixed offsets

Added alignment checks and fixed size

Use semantic constants

* Replaced all magic number with constant

* Fixed type cast
2020-10-08 23:13:18 -04:00
Dzmitry Malyshau
0a7d81351c Handle cases where buffer contents are destroyed 2020-10-08 12:57:17 -04:00
lberrymage
41228ef1a4 Fix clippy warnings about using if-let over match
The specific lint triggered was
https://rust-lang.github.io/rust-clippy/master/index.html#single_match.
2020-09-25 23:02:51 -08:00
Adam Nemecek
db1870e7fc use self 2020-09-25 19:11:46 -07:00
Dzmitry Malyshau
0345c56758 Properly implement compute pass usage scopes 2020-09-23 19:01:47 -04:00
Dzmitry Malyshau
1886149cae Don't bind groups that aren't expected by the layout 2020-09-04 23:47:24 -04:00
Maximilian Lupke
5d50b2ac24 Allow copying from depth textures (#901)
* Allow copying from depth textures

* Rename TextureFormat::is_depth_format to just is_depth

* Only allow Depth32Float format for copying, and only as source
2020-08-28 10:58:48 -04:00
Mikko Lehtonen
5fab78e175 Address nits in #897 2020-08-27 22:11:42 +03:00
Mikko Lehtonen
dbd6081a8e Improve diagnostics of incompatible attachments 2020-08-26 10:03:44 +03:00
bors[bot]
59f0996eab Merge #895
895: Improve validation in B2B copies and RenderCommands r=kvark a=kunalmohan

**Connections**
_Link to the issues addressed by this PR, or dependent PRs in other repositories_

**Description**
_Describe what problem this is solving, and how it's solved._
Validation for the following have been added-
- Validate all parameters in B2B copy even if `copy_size == 0`.
- Check for copy operations issued within same buffer.
- `RenderPass.setViewport()`
- `RenderPass.setScissorRect()`

**Testing**
_Explain how this change is tested._
Tested with CTS in Servo. More tests pass now. Will test on wgpu-rs now.
<!--
Non-trivial functional changes would need to be tested through:
  - [wgpu-rs](https://github.com/gfx-rs/wgpu-rs) - test the examples.
  - [wgpu-native](https://github.com/gfx-rs/wgpu-native/) - check the generated C header for sanity.

Ideally, a PR needs to link to the draft PRs in these projects with relevant modifications.
See https://github.com/gfx-rs/wgpu/pull/666 for an example.
If you can add a unit/integration test here in `wgpu`, that would be best.
-->


Co-authored-by: Kunal Mohan <kunalmohan99@gmail.com>
2020-08-24 18:00:47 +00:00
Kunal Mohan
a10e5cdb53 Check whether attachments are of same size or not 2020-08-24 23:02:04 +05:30
Dzmitry Malyshau
b8b7561796 Improve texture creation validation 2020-08-24 13:00:34 -04:00
Kunal Mohan
f266431f24 Improve validation in b2b copies and RenderCommands 2020-08-24 21:14:07 +05:30
Connor Fitzgerald
f9265bccd2 Improve buffer and texture overrun error messages 2020-08-19 11:44:54 -04:00
Dzmitry Malyshau
d1da6d8106 Switch gfx-hal to 0.6 2020-08-17 10:34:50 -04:00
Dzmitry Malyshau
a0711cf9b2 Move the RenderCommand into the shared draw module 2020-08-12 14:33:42 -04:00
Dzmitry Malyshau
9d8dc0b04d Grand cleanup and refactor of the descriptors in the API 2020-08-12 14:13:32 -04:00
Dzmitry Malyshau
dbd7e2c579 Separate valid internal IDs from external ones 2020-08-04 11:16:59 -04:00
Dzmitry Malyshau
3291b72368 Update naga and fix type widths 2020-07-31 23:46:19 -04:00
Connor Fitzgerald
00a5be7f7b Fix multi-layer copies 2020-07-30 16:58:29 -04:00