librashader 0.4.2
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 onPassFeedback0
. 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.
- This makes shader presets relying on
-
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 oflibrashader-build-script
to require code changes without an ABI bump. This was unintended and only affected packagers using the output oflibrashader-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.
- While the
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.