Releases: NotAPenguin0/phobos-rs
Releases · NotAPenguin0/phobos-rs
v0.10.0
Changes
- Phobos no longer requires Rust nightly to compile, except when using FSR2.
- change: don't poll in fence implementation by @pac85 in #56
- Implement VK_EXT_debug_utils naming by @DannyLeWasTaken in #58
- Add
blend_attachment
to set more options for blending. - Optimize dependencies
- Add function to get device address of a
BufferView
- Add nontrivial constructors to
TransformMatrix
- Remove buffer usage flags, merging all scratch allocators into one
Upgrade guide
The major breaking change is the removal of buffer usage flags. To upgrade, remove this parameter in all Buffer
constructors and replace calls to allocate_scratch_xxx()
with allocate_scratch_buffer
. This might lead to a need for larger scratch allocators.
Full Changelog: v0.9.0...v0.10.0
v0.9.0
Changes
- Automatically pool created fences to reuse objects.
- Add resource pools to allocate reusable objects from
- Move allocators to resource pool
- Add
LocalPool
, a scoped pool object that returns allocated items to the global resource pool once it is dropped. - Simplify
InFlightContext
- Add shortcut functions for defining attachments
- Optimize virtual resource version tracking
- Make
DescriptorBuilder
private
Fixes
- Fix FSR2 type exports
Full Changelog: v0.8.0...v0.9.0
v0.8.0
Major features
- Native FSR2 support for temporal upscaling. Available under the
fsr2
feature flag. - Huge debug performance improvements.
Changes
Breaking
SubmitBatch
is now used to submit frame commands fromFrameManager::new_frame()
. This allows submitting multiple command buffers in a frame easily while also making the API more similar to out of frame submits.
Non breaking
- Remove unnecessary unstable features.
- Add support for resolving multisampled depth images.
Bugfixes
- Fix bug where
DescriptorPool
tried to allocate space for acceleration structure descriptors with ray tracing extensions disabled. - Various fixes to example code.
- Fix bug where
BufferViewOutOfRange
was returned when creating a buffer view that touches the end of the buffer. - Fix render graph sync bug if one resource has its last usage in multiple different stages.
Full Changelog: v0.7.3...v0.8.0
v0.7.3
Fix final missing docs
v0.7.2
This release adds missing documentation for added features in v0.7.0
v0.7.1
v0.7.0
Major features
- Add first-class support for
VK_KHR_acceleration_structure
- Add first-class support for
VK_KHR_ray_tracing_pipeline
- Add first-class support for
VkQueryPool
objects and a couple common queries. - Implement the
log-objects
feature to log allvkCreate...
andvkDestroy...
calls - Major simplifications to library initialization with helper methods.
Changes
Breaking
- Extract pass executor type into a trait
- Rename
PassBuilder::execute
toPassBuilder::execute_fn
, the old method still exists but now takes anyPassExecutor
instead of a function type. - Pass executors now get a mutable reference to some user data passed in at record time
- Simplify lifetime of pass executor callback
PipelineCache
now takes anAllocator
to construct (this is necessary to create a shader binding table for RT pipelines).
Non breaking
- Add
resolve_and_bind_storage_image
to command buffer - Add
write_storage_image
andread_storage_image
to pass builder - Implement
Send
andSync
forPipelineCache
- Add
IncompleteCommandBuffer::push_constant
to upload a single value instead of a slice
v0.6.1
- Support for storage images
- All cloneable caches and vulkan types now have their
Arc<Mutex<T>>
internalized - Fix clippy warnings around codebase
v0.5.2
- Support for compute shaders
- Now supports proper device initialization on integrated GPUs by multiplexing physical queues
- Batch submits together with automatic semaphores inserted
- Major improvements to example framework
- Minor API improvements.
v0.5.0
This release comes with a lot of API breaks, but also a bunch of new features.
From here on, API breaks should start to become less and less major (but will still happen on each release until 1.0 most likely)