Skip to content

Releases: NotAPenguin0/phobos-rs

v0.10.0

06 Jul 11:03
Compare
Choose a tag to compare

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

10 Jun 13:37
Compare
Choose a tag to compare

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

24 May 23:09
Compare
Choose a tag to compare

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 from FrameManager::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

21 Apr 18:53
Compare
Choose a tag to compare

Fix final missing docs

v0.7.2

21 Apr 11:21
Compare
Choose a tag to compare

This release adds missing documentation for added features in v0.7.0

v0.7.1

20 Apr 10:18
Compare
Choose a tag to compare

Changes

  • c9f471e: Move domain to sync
  • 3f850b9: Export RayTracingPipelineBuilder in prelude
  • 455e2ec: Do not save graph svg in raytracing sample

Fixes

  • 3d0ae3d: Fix missing allocator generic in graph record
  • e2d6b29: Fix wrong source stage in graph causing sync bugs
  • Add implementations for Send and Sync for Image, ImageView and Device

v0.7.0

19 Apr 20:38
Compare
Choose a tag to compare

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 all vkCreate... and vkDestroy... calls
  • Major simplifications to library initialization with helper methods.

Changes

Breaking

  • Extract pass executor type into a trait
  • Rename PassBuilder::execute to PassBuilder::execute_fn, the old method still exists but now takes any PassExecutor 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 an Allocator 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 and read_storage_image to pass builder
  • Implement Send and Sync for PipelineCache
  • Add IncompleteCommandBuffer::push_constant to upload a single value instead of a slice

v0.6.1

02 Apr 13:46
Compare
Choose a tag to compare
  • 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

26 Mar 12:01
Compare
Choose a tag to compare
  • 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

17 Mar 00:35
3bcaa36
Compare
Choose a tag to compare

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)