You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently brush model loading consists of the following steps:
Go through all its surfaces and compute counts of each type of surface.
Load regular brush model. This also iterates through all surfaces, gets their type, etc etc. Also determines and handles whether that surface is emissive.
Load water and water sides model. Does some of that processing too.
There's a bunch of duplicate code, and unnatural similar argument passing around.
At this scale it would make sense to consolidate surface processing:
Do specific handling based on type, e.g.: regular types go to regular submodel, water/sides go to water submodels, etc.
When done with surfaces, finalize each submodel: create render models, upload geometries, etc.
Note that for efficient model loading we might need to compute vertices+indices count before allocating geometry buffers. That might either need a second pass over loaded surfaces for each submodel type, or using dynamic arrays for temp data.
Doing an explicit finalization step could also allow for more natural extended geometry processing, e.g.:
Implements new totally automatic barrier placement. Also, staging is refactored.
- [x] image staging
- [x] some images are corrupted
- ~~[ ] #745~~ -- postponed until next time we'd need to touch images; current code works good enough for now.
- [x] use combuf auto barriers everywhere where it makes sense
- [x] corrupted geometry in playdemo ...
- [x] buffer staging
- [x] #743
- [x] track copied staging regions: i.e. staging must know that it has been drained fully
- [x] RT-trad dynamic toggle
- [x] push-pull staging boundary
- [x] frame dependency tracking: automatically free/flip buffers when frame using them is done
- [x] replace ALL barriers with combuf ones
- [x] buffers in rtx/resources
- [x] images
- [x] track images sync state inline where possible
- [x] find other uses
- [x] improve staging
- [x] track staging users explicitly
- [x] per-user stats: sizes, allocations, etc
- [x] push remaining data for stale users
- [x] use ring buffer directly, track frame boundaries externally in fctl
- [x] crash in `buildBlases()`:
1. load map with rt disabled
2. change to another map
3. enable rt
4. 💥
- [x] suboptimal barrier, see comment #742 (comment)
- [x] simplify creating and building TLAS
- [x] Run rendering tests
- [x] missing emissive toxic waters
- Leave as a known problem: it's due to inadvertently skipping some water surfaces when looking for emissive ones, see:
- #56
- #752
- [x] slightly different indirect blur
- Assuming that this is due to Á-Trous filtering, which could've sneaked through before the gold images were set. Not going to investigate, as we're about to submit a big change to the denoiser.
Currently brush model loading consists of the following steps:
There's a bunch of duplicate code, and unnatural similar argument passing around.
At this scale it would make sense to consolidate surface processing:
!water
textures does not work #56.Note that for efficient model loading we might need to compute vertices+indices count before allocating geometry buffers. That might either need a second pass over loaded surfaces for each submodel type, or using dynamic arrays for temp data.
Doing an explicit finalization step could also allow for more natural extended geometry processing, e.g.:
The text was updated successfully, but these errors were encountered: