Releases: SnowflakePowered/librashader
librashader 0.2.4
Version 0.2.4 has the canonical C ABI version 1
, and API version 1
.
This is a bugfix release to fix building the librashader-reflect
crate standalone. There were some minor optimizations to the Vulkan and Direct3D 12 runtimes.
Notable Changes
- f61bed3 vulkan: remove unneeded
Arc<ash::Device>
handles - 752417f vulkan: switch from an
RwLock
to aMutex
for holding the allocator lock - 10ad2d9 d3d12: make the descriptor heap allocator lock free
- 7719b93 d3d11: upgrade to windows 0.52.0
- 8a9adeb d3d12: upgrade to windows 0.52.0
Full Changelog: librashader-v0.2.3...librashader-v0.2.4
librashader 0.2.3
Version 0.2.3 has the canonical C ABI version 1
, and API version 1
.
This is a bugfix release to re-export MSL targets in the librashader
crate. There were some minor micro-optimizations to the vertex input attributes that should not affect runtime performance in a noticeable way.
This is a source-only release due to changes not affecting runtime performance in any noticeable way.
Notable Changes
Full Changelog: librashader-v0.2.2...librashader-v0.2.3
librashader 0.2.2
Version 0.2.2 has the canonical C ABI version 1
, and API version 1
.
This is a bugfix release that allows the D3D12 runtime to work without dxil.dll
. Starting from this release, unused inputs are trimmed to help with compatibility across different shader runtimes.
Notable Changees
- 50aa582 d3d12: fakesign compiled shaders to work without dxil.dll
- e8eee02 reflect: always trim unused inputs from fragment shader
Full Changelog: librashader-v0.2.1...librashader-v0.2.2
librashader 0.2.1
Version 0.2.1 has the canonical C ABI version 1
, and API version 1
.
This is a bugfix release that addressed a viewport bug in wgpu as well as aligning offscreen pass behaviour for OpenGL with other runtimes.
Notable changes
- fe84e6a gl: use the identity matrix for intermediate passes to align behaviour with other runtimes
- 913ede3 wgpu: properly set the viewport depth minimum
Notable changes from 0.2.0
- #24 wgpu: add a wgpu runtime by @chyyran
- #24 metal: add a Metal runtime by @chyyran
- #37 presets: add support for preset path wildcards by @chyyran
- #43 reflect: support
scale = "original"
,Rotation
,FinalSubFrame
,CurrentSubFrame
shader semantics by @chyyran - #44 reflect(glsl): don't unset vertex input positions (fixes OpenGL on macOS) by @chyyran
- #36 build: update build-script to support macOS and non-linux unixes by @LukeUsher
- #34 reflect: replace shaderc with glslang directly by @chyyran
- #21 build: update spirv-to-dxil-sys to remove mesa build reqs by @chyyran
- #32 build: build packages for some Linux distributions
- vulkan: bugfixes and improvements by @chyyran
Breaking changes compared to 0.1.4
363657d makes Render Passes the default rendering mode on Vulkan and makes dynamic rendering opt-in. This is an API breaking change and will affect existing users using the Vulkan C API. This does not break ABI and users with VK_KHR_dynamic_rendering
support will notice no difference, but users on Vulkan 1.2 and later GPUs will need to stay on librashader 0.1.4, or the application needs to be updated with new librashader.h
headers.
If you are an existing user of librashader that is unable to update your application, and this is affecting your users please file an issue. There are mechanisms in place to restore the previous API via the API-versioning mechanism but they were not implemented due to a belief that few users of librashader are currently using the Vulkan C API, and a decision was made to reduce code complexity rather than add in API-preserving behaviour.
Rust users are not considered affected due to the different versioning policies between the Rust and C APIs.
Full Changelog: librashader-v0.1.4...librashader-v0.2.1
librashader 0.2.0
Version 0.2.0 has the canonical C ABI version 1
, and API version 1
.
The notable changes for this release include wgpu and Metal runtimes, support for new scaling options, and preset path wildcards.
Breaking changes
363657d makes Render Passes the default rendering mode on Vulkan and makes dynamic rendering opt-in. This is an API breaking change and will affect existing users using the Vulkan C API. This does not break ABI and users with VK_KHR_dynamic_rendering
support will notice no difference, but users on Vulkan 1.2 and later GPUs will need to stay on librashader 0.1.4, or the application needs to be updated with new librashader.h
headers.
If you are an existing user of librashader that is unable to update your application, and this is affecting your users please file an issue. There are mechanisms in place to restore the previous API via the API-versioning mechanism but they were not implemented due to a belief that few users of librashader are currently using the Vulkan C API, and a decision was made to reduce code complexity rather than add in API-preserving behaviour.
Rust users are not considered affected due to the different versioning policies between the Rust and C APIs.
Notable changes
- #24 wgpu: add a wgpu runtime by @chyyran
- #24 metal: add a Metal runtime by @chyyran
- #37 presets: add support for preset path wildcards by @chyyran
- #43 reflect: support
scale = "original"
,Rotation
,FinalSubFrame
,CurrentSubFrame
shader semantics by @chyyran - #44 reflect(glsl): don't unset vertex input positions (fixes OpenGL on macOS) by @chyyran
- #36 build: update build-script to support macOS and non-linux unixes by @LukeUsher
- #34 reflect: replace shaderc with glslang directly by @chyyran
- #21 build: update spirv-to-dxil-sys to remove mesa build reqs by @chyyran
- #32 build: build packages for some Linux distributions
- vulkan: bugfixes and improvements by @chyyran
New Contributors
- @LukeUsher made their first contribution in #36
Full Changelog: librashader-v0.1.4...librashader-v0.2.0
librashader-v0.2.0-rc.2
Version 0.2.0 has the canonical C ABI version 1
, and API version 1
.
If no issues are found, this release will be promoted to 0.2.0 on 2024-02-18
Notable changes since v0.2.0-rc.2
- 350508a preprocess: strip
#pragma parameter
before compilation - b47b27f vulkan: update
gpu-allocator
- edca0f1 metal: only generate mipmaps if mipmap size is greater than 1
- efdfd56 metal: don't allow buffer size of 0 to be created
- cbac011 wgpu: only reflect active ubo/push members
- c0ecae8 wgpu: run a link step on spirv to remove unused inouts
Full Changelog: librashader-v0.2.0-rc.1...librashader-v0.2.0-rc.2
0.2.0-rc.1
Version 0.2.0 has the canonical C ABI version 1
, and API version 1
.
The notable changes for this release include wgpu and Metal runtimes, support for new scaling options, and preset path wildcards.
Notable changes
- #37 presets: add support for preset path wildcards by @chyyran
- #24 wgpu: add a wgpu runtime by @chyyran
- #24 metal: add a Metal runtime by @chyyran
- #43 reflect: support
scale = "original"
,Rotation
,FinalSubFrame
,CurrentSubFrame
shader semantics by @chyyran - #44 reflect(glsl): don't unset vertex input positions (fixes OpenGL on macOS) by @chyyran
- #36 build: update build-script to support macOS and non-linux unixes by @LukeUsher
- #34 reflect: replace shaderc with glslang directly by @chyyran
New Contributors
- @LukeUsher made their first contribution in #36
Full Changelog: librashader-v0.2.0-beta.2...librashader-v0.2.0-rc.1
0.2.0-beta.2
librashader 0.1.4
Version 0.1.4 has the canonical C ABI version 1
, and API version 0
.
Notable changes
- 3e144bb Allow unbalanced quotes to fix parsing of some Duimon presets
- 020fac8 Upgrade
windows
crate to 0.48.0, fixing minor leakages of D3D12 handles. - 24f28bb Wrap C API functions in a panic handler to avoid unwinding over an FFI boundary
- Hot path
_frame
functions do not have this safety guard to maintain performance
- Hot path
Full Changelog: librashader-v0.1.3...librashader-v0.1.4