Skip to content

Latest commit

 

History

History
37 lines (30 loc) · 2.72 KB

CHANGELOG.md

File metadata and controls

37 lines (30 loc) · 2.72 KB

Changelog for SPIRV.jl

Version v0.4

Feature Shader execution options (such as local workgroup sizes for compute shaders, origin for fragment shaders) may now be specified with ShaderExecutionOptions as a new field of ShaderInterface. BREAKING LayoutStrategy has been moved from ShaderInterface to Shader, because LayoutStrategy may now require an IR to be created if using a VulkanLayout. BREAKING Enchancement VulkanLayout now stores information regarding storage classes and interface blocks, so that it no longer implicitly depends on an external TypeMetadata for providing it while computing strides and alignments. VulkanAlignment should be used to specify layout requirements in a decoration-agnostic way.

Version v0.3

BREAKING CFG has been renamed to SPIRVTarget, as the semantics of the structure evolved and control-flow has been streamlined a bit more internally. Enchancement BREAKING A new Decorations structure has been introduced instead of Pair{SPIRV.Decoration, Vector{Any}} free-form pairs. This has been done to perform parameter checking so that it is impossible to decorate variables or members with the wrong number of decoration arguments nor to provide decoration arguments with the wrong types. The API around setting decorations has also been improved. BREAKING ShaderInterface now relies on SPIRVTarget and Decorations. BREAKING make_shader has been removed in favor of a more explicit Shader type for turning SPIRVTargets into Vulkan-compliant shader modules. Feature Data can now be extracted from Julia values with no memory padding, and can be properly padded to satisfy SPIR-V alignemnt requirements. This is however undocumented at the moment.