Releases: SnowflakePowered/librashader
librashader 0.1.1
librashader 0.1.0
librashader 0.1.0 is a promotion of RC 7 to versioned status.
With the release of 0.1.0, librashader adopts the versioning policy stated here.
Version 0.1.0 has the canonical C ABI version 1
, and API version 0
.
Notable Changes since Beta
- Direct3D 12 runtime
- Multithreaded preset compilation.
- #10 Shader and pipeline state object caching
- 07fac4d LUTs are now loaded with multiple threads
- e2e6357 Parse preset
#reference
s depth first, fixes most presets that override default presets - b81f415 Vulkan: Fix lifetime leakage soundness issues with
build
when usingash
in the Vulkan runtime.
dffea95
The restriction on only allowing a uniform to be bound to either the UBO or push constants has been lifted. This was causing problems for shaders that bound a uniform to the UBO in the vertex shader, but a push constant in the fragment shader, causing inaccurate rendering or just refusing to load.92caad2
Output framebuffers were not correctly scaled and caused a lot of shaders to have incorrect output if the source image size was different from the output image size.5ffcf00
D3D11: The blend state wasn't set properly in Direct3D 11 so some shaders would just render a black texture.- Direct3D 11, 12, and Vulkan now use the identity MVP with to render intermediate passes.
43b7d6f
Some shaders in the slang-shaders repository are saved as Latin-1/Windows-1252 encoding rather than UTF-8, this change adds support for reading those shaders.3db89e5
The quad VBO is bound only once per frame rather than per-pass for improved performance.48a1b28
Path resolution logic in the preset parser was fixed and a bunch of hacks were added to better support poorly written presets.c5b2b50
D3D11: Disable CPU access by default on textures to improve performance.fb827b7
Vulkan environments without dynamic rendering are now supported.- 6cb2859 Presets now default to nearest neighbour rather than linear scaling when unspecified.
librashader v0.1.0-rc.7
Couple of micro-optimizations and tweaks that should help performance. Also marked Rust filter chain APIs as explicitly unsafe.
If no further issues are found, this release will be promoted to 0.1.0 on 2023/2/18.
Full Changelog: https://github.com/SnowflakePowered/librashader/commits/librashader-v0.1.0-rc.7
librashader 0.1.0-rc.6
RC 4 skips a release due to a soundness issue discovered in the Vulkan runtime that needed a hotfix in RC 5. RC 6 is a pure documentation release to fix building docs on docs.rs and has no other visible changes compared to RC5.
Notable Changes since RC 3
- #10 Shader and pipeline state object caching (API breaking, because we're still in RC)
- 07fac4d LUTs are now loaded with multiple threads
- e2e6357 Parse preset
#reference
s depth first, fixes most presets that override default presets - b81f415 Vulkan: Fix lifetime leakage soundness issues with
build
when usingash
in the Vulkan runtime.
librashader v0.1.0-rc.3
Starting with RC 3, librashader distributions come in two flavours
debug
optimized
The debug
build comes with debug symbols in the binary. optimized
should be used for distribution.
This release does not have an optimized
build because Vulkan builds were broken with LTO on until b81f415.
Notable changes since RC 2
Mostly bug fixes and ABI-breaking QOL improvements in the C API before releasing a numbered release, and improved multithreaded capabilities to allow asynchronous filter chain creation. D3D12 mipmap fixes bring the D3D12 runtime to rendering parity with the rest of the runtimes.
The D3D11 API had to be broken to allow this, and no longer keeps an internal deferred context. The new API is more like the Vulkan or D3D12 implementations where a ID3D11DeviceContext
can be passed to frame
. If NULL
is passed, then it defaults to the immediate context for the old default behaviour.
- 0cb6f6a d3d11: Be deferred context agnostic in
frame
- 55e800b d3d12: Fix mipmaps of intermediate passes
- f2357f9 d3d12: Fix format fallback when mipmaps are needed
- abadfb3 d3d12: Compile the mipmap shader with Dxc
- 3c15a3a Fix calculation of required history framebuffers
- 009e740 vk: Use gpu-allocator for memory management
- fa6cd87 vk/d3d11/d3d12: Allow deferring GPU-side initialization of filter chains
- bc45729 Replace
cargo post
with a custom build script - QOL improvements in the C API
v0.1.0-rc.2
Notable changes since beta
- Direct3D 12 runtime
- Multithreaded preset compilation.
dffea95
The restriction on only allowing a uniform to be bound to either the UBO or push constants has been lifted. This was causing problems for shaders that bound a uniform to the UBO in the vertex shader, but a push constant in the fragment shader, causing inaccurate rendering or just refusing to load.92caad2
Output framebuffers were not correctly scaled and caused a lot of shaders to have incorrect output if the source image size was different from the output image size.5ffcf00
D3D11: The blend state wasn't set properly in Direct3D 11 so some shaders would just render a black texture.- Direct3D 11, 12, and Vulkan now use the identity MVP with to render intermediate passes.
43b7d6f
Some shaders in the slang-shaders repository are saved as Latin-1/Windows-1252 encoding rather than UTF-8, this change adds support for reading those shaders.3db89e5
The quad VBO is bound only once per frame rather than per-pass for improved performance.48a1b28
Path resolution logic in the preset parser was fixed and a bunch of hacks were added to better support poorly written presets.c5b2b50
D3D11: Disable CPU access by default on textures to improve performance.fb827b7
Vulkan environments without dynamic rendering are now supported.- 6cb2859 Presets now default to nearest neighbour rather than linear scaling when unspecified.