bevyengine / bevyengine/bevy

Bevy rendering panics are arcane

Open
#9,019 1 comment 2 reactions 0 assignees View on GitHub
A-Rendering C-Feature C-Usability
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

Panics caused by rendering errors are almost impossible to debug in bevy.

Try loading a glTF model where one of the texture is formatted with 16bits color depth, and tell me how someone will find by themselves what the issue is exactly.

This also makes it extremely burdensome and tedious to develop rendering features for bevy. Fixing this will widen the potential contributor pool.

The only saving grace is the `label` set in descriptors. Thankfully, bevy always sets a label.

However, with pipeline specialization, the pipeline label might not even be that helpful. Since different entities might get different shaders.

Furthermore, when bevy is compiled in release mode, the label is somehow discarded and replaced by something completely incomprehensible:

```
note: render pipeline = ``
```

I suggest the following:

- Do not discard pipeline info in release mode. Or at least use a feature gate rather than release/debug (right now I can't find the code where this is set conditionally)
- Keep track of entity `Name`s in the render world, name specialized pipelines after the entity they specialize (maybe swapping to a different data structure for name could help reduce the `Extract` churn)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.