565: Add context to errors r=kvark a=scoopr
ContextError is just a simple wrapper that contains a string and the original error, and it is used to decorate the error to give it more context.
Co-authored-by: Mikko Lehtonen <scoopr@iki.fi>
928: Reverts the addition of LabeledContextError r=kvark a=scoopr
Removed as discussed, moving them to wgpu-rs side
Co-authored-by: Mikko Lehtonen <scoopr@iki.fi>
* Fix lexer operator issues (with tests)
* [glsl-in] Don't convet to string in lexer tests
* [glsl-in] cleanup lexer tests further
- Consolidate use statements
- Iterate lex directly, check for None at end
* [glsl-in] Add gl_VertexIndex
Refactor variable handling out of parser.rs
* [glsl-in] Fixes for gl_VertexIndex
- Make lookup_variable a method of Program
- Try to cleanup conditional logic
* [glsl-in] Error on gl_ builtin in wrong stage
Wrapped in glsl-validate feature
* Allow dropping of error resources
* Unregister error resources without panic
Panic when removing Vacant element or when index is out of range
* address review comments
562: More errorsinkifying r=kvark a=scoopr
Continuing on with errorsinkifying more places, these wrap Buffer, Texture and CommandEncoder with a struct that includes the `error_sink`, and uses it for the error handling.
I think most of the apis are errorsinkified with this. The remaining ones may need some more thinking.
Queue would be wrapped mostly for the submit, the write_ stuff could in theory piggyback on the texture/buffer error-sink.
Others like swapchain, some mapping stuff, etc. needs some discussion or other implementation work.
Co-authored-by: Mikko Lehtonen <scoopr@iki.fi>
563: Document bind buffer alignment r=kvark a=kvark
Fixes #561
Also updates wgpu dependency to latest, and our exampels are now fully validated for the shader interface 🎉 .
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
557: Pin web-sys version r=grovesNL a=rukai
As mentioned in https://github.com/gfx-rs/wgpu-rs/pull/553 this will prevent the wasm build from breaking.
@grovesNL Is pinning just web-sys and wasm-bindgen sufficient?
Co-authored-by: Rukai <rubickent@gmail.com>
* Added generation of the texture mappings to the glsl backend
* Added a temporary workaround for the spirv shaders
Fixed some parts that were using vulkan glsl
* Made texture mapping not require a sampler
* Used interface to build the texture map
* Made global names mandatory except for sampler ones
* Addressed more comments
* Removed the temp fix for the spirv frontend
* Addressed the comments
555: Update to latest web-sys r=kvark a=grovesNL
Cherry-pick #497 into `master` now that new versions of web-sys/wasm-bindgen/js-sys/wasm-bindgen-futures are published.
We could also do this for `v0.6` too if we want CI to succeed there, or alternatively consider disabling CI for wasm builds on `v0.6`.
Co-authored-by: Joshua Groves <josh@joshgroves.com>
921: add `polygon_mode: PolyonMode` to `RasterizationStateDescriptor` to allow drawing wireframes r=kvark a=manuel-woelker
**Description**
This adds `polygon_mode: PolyonMode` to `RasterizationStateDescriptor` to allow drawing in wireframes and point mode
I added `hal::Features::NON_FILL_POLYGON_MODE` to the `wishful_features` in `instance.rs`. I don't know what side effects this might have.
**Testing**
Tested locally on my Windows machine with Vulkan backend.
Co-authored-by: Manuel Woelker <github@manuel.woelker.org>
922: Add LabeledContextError r=kvark a=scoopr
Purpose for this is to add more context to an error.
create_render_pipeline error is improved, by showing the action
(creating render pipeline) and the user provided label, to aid with
the investigation.
Example error
before:
```
wgpu error: Validation error
Caused by:
error in stage VERTEX: unable to find an entry point matching the Vertex execution model
thread 'main' panicked at 'Handling wgpu errors as fatal by default', src/backend/direct.rs:1457:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```
after:
```
wgpu error: Validation error
Caused by:
Creating render pipeline (label: Some("hello-triangle pipeline"))
error in stage VERTEX
unable to find an entry point matching the Vertex execution model
thread 'main' panicked at 'Handling wgpu errors as fatal by default', src/backend/direct.rs:1457:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```
Co-authored-by: Mikko Lehtonen <scoopr@iki.fi>
Purpose for this is to add more context to an error.
create_render_pipeline error is improved, by showing the action
(creating render pipeline) and the user provided label, to aid with
the investigation.
551: Replace unsafe impl Pod with safe derive r=kvark a=rukai
bytemuck now includes derives that will implement the Pod trait, failing to compile if the struct cannot safely be a Pod.
Lets use it to remove most of the unsafe usage from the examples.
closes https://github.com/gfx-rs/wgpu-rs/issues/190
Co-authored-by: Rukai <rubickent@gmail.com>
923: Fix invalid mip level count check r=kvark a=benfrankel
**Connections**
Fixes https://github.com/gfx-rs/wgpu/issues/894
Continues from https://github.com/gfx-rs/wgpu/pull/893
**Description**
Invalid mip level counts are allowed through `Device::create_texture`, triggering Vulkan validation errors. A fix was applied in https://github.com/gfx-rs/wgpu/pull/893, but the fix needs a minor correction to work properly.
Also added back the `MAX_MIP_LEVELS` check, because it's technically possible for `MAX_MIP_LEVELS` to be less than `kind.compute_num_levels()`, e.g. if one of the given dimensions is very big (2^16).
Error message is updated to reflect the change in behavior: there are now three ways for a mip level count to be invalid: it's equal to zero; it's greater than `MAX_MIP_LEVELS`; or it's greater than the largest mip level count allowed for the given size.
**Testing**
Tested by manually modifying the `mipmap` example in `wgpu-rs` to pass various edge case values for `size` and `mip_level_count`.
Co-authored-by: Ben Frankel <ben.frankel7@gmail.com>