Skip to content

Commit

Permalink
Backfill/prepare CHANGELOG.md for imminent 0.4.0 release.
Browse files Browse the repository at this point in the history
  • Loading branch information
eddyb committed Oct 4, 2024
1 parent 13e47a1 commit e62d4e3
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased] - ReleaseDate

### Changed 🛠
- [PR#4](https://github.com/Rust-GPU/spirt/pull/4) updated `SPIRV-Headers`
to match Vulkan SDK 1.3.290

### Fixed 🩹
- [PR#2](https://github.com/Rust-GPU/spirt/pull/2) included a combination of control-flow (restructurization) refactors and fixes:
- fixed rewrites of chains of `OpPhi`s (for e.g. Rust-GPU's non-minimal SSA form)
- isolated the `ControlRegion`s of unstructured SPIR-T CFGs from eachother
- i.e. removed the implicit dominance-based (SSA-style) "value visibility" semantics
- explicit (phi-like) propagation of *all* values across CFG edges required
- structured control-flow, however, retained its more flexible "value visibility"
- (re)structurization "fuses" away the massively redundant dataflow *when sound*
- fixed SSA dominance issues (introduced by [PR#48 "minimal loops"](https://github.com/EmbarkStudios/spirt/pull/48)) using the above
- i.e. opportunistically simplify conservative (maximally redundant) dataflow
- could be expanded on in the future, moving towards hermetic (RVSDG-like) regions
- fixed issues with `ExitInvocation`s, by supporting them in structured SPIR-T
- e.g. this includes terminators like `OpKill`, `OpEmitMeshTasksEXT`, etc.
- also enables (very hacky) "abort" via `ExitInvocation(OpReturn)` from entry-point
- optimized common cases of divergent (`unreachable`/`ExitInvocation`) control-flow
- e.g. `if cond { abort() } else { foo() }` -> `if cond { abort() } else {} foo()`
- effectively flattens chains of checks (w/ the `abort() = ExitInvocation(OpReturn)` hack)

---

### ⬆️ *above entries after repository move (to [`Rust-GPU/spirt`](https://github.com/Rust-GPU/spirt)*)
*See also [the transition announcement blog post](https://rust-gpu.github.io/blog/transition-announcement/).*
### ⬇️ *below entries before repository move (from [`EmbarkStudios/spirt`](https://github.com/EmbarkStudios/spirt))*

---

### Changed 🛠
- [PR#61](https://github.com/EmbarkStudios/spirt/pull/61) updated `SPIRV-Headers`
to match Vulkan SDK 1.3.275
Expand Down

0 comments on commit e62d4e3

Please sign in to comment.