Skip to content

librashader 0.4.2

Compare
Choose a tag to compare
@chyyran chyyran released this 13 Sep 21:50
· 164 commits to master since this release

Version 0.4.2 has the canonical C ABI version 1, and API version 1.

This is a bugfix release to address a long standing issue with PassFeedback0, Metal runtime improvements, and an accidental violation of librashader's C versioning guarantees in an edge case.

Notable Changes

  • #117 Runtimes: draw PassFeedback0 to internal feedback buffers

    • This makes shader presets relying on PassFeedback0 display properly. Previously as librashader only drew the final pass to the supplied output texture, the final pass would never be available for feedback. This did not seem to be an issue on most shaders, except those that only have one pass and rely on PassFeedback0. We now draw the final pass twice, once to the internal buffers, and again to the output texture. In the future, this may be reduced to a blit from the internal buffer to the output.
  • 22b2118 Metal: don't resize internal buffers if unneeded.

    • This fixes a long-standing bug with the Metal runtime where history and feedback buffers would always be cleared each frame, breaking some shader presets.
  • 98d8d91 capi: Undo const qualification of chain in _filter_chain_get_param and _filter_chain_get_active_pass_count

    • While the include headers were not changed, const qualifying the parameters caused the output of librashader-build-script to require code changes without an ABI bump. This was unintended and only affected packagers using the output of librashader-build-script rather than the included headers, but such changes should not be made without a bump in ABI version. This will be postponed to 0.5.x as per the versioning policy.

ABI Changes Incoming

The next release in the 0.5.x series will be C ABI-incompatible to clean up some inconsistencies in the C ABI.

See #102 for more details.