librashader 0.3.1
Version 0.3.1 has the canonical C ABI version 1
, and API version 1
.
This release promotes the Direct3D 9 runtime from experimental support to secondary support following improvements in uniform bindings, as well as bringing a much improved linking algorithm that properly demotes unused vertex shader outputs to global variables for better handling in cross-compile scenarios such as via SPIR-V Cross or spirv-to-dxil.
While this has been the case for the past couple of releases already, as of 0.3.1, tagged builds will only be provided for Windows and macOS for x86_64 and aarch64. Linux users are served by OpenBuildService, or AUR for Arch users.
CI builds will remain available on all tested platforms for the retention period of 90 days.
†The librashader crate had a 0.3.2
release to fix docs building on docs.rs for macOS and iOS due to missing wgpu dependencies.
Notable Changes
- 5ef0055 d3d9: fix searching for vertex uniform names in the fragment shader
- d1e49b7 d3d9: search for uniform names starting with
global
to determine register assignments - 9b40c10, 1957f57 reflect: demote unused vertex shader outputs to global variables in SPIR-V
- 5560c1e runtime: improve LUT load swizzling using an algorithm LLVM is more likely to autovectorize
ABI Changes Incoming
The next release in the 0.4.x series will be C ABI-incompatible to clean up some inconsistencies in the C ABI. See #102