Releases: dotnet/Silk.NET
2.22 Mobile Update
Silk.NET Mobile Update
- Added production-ready iOS support - wrap your Program.cs/IView code with SilkMobile.RunApp and run as-is!
- Added the ability to programmatically focus a window using IWindow.Focus(). (thanks @mayatskiy/@Arugin)
- Added a helper for custom IO in Assimp.
- Added a ToString implementation for Vulkan handles to display the handle value.
- Added some missing Flags attributes to enums, reducing the number of bitwise operation warnings on enums.
- Updated to Vulkan 1.3.300.
- Updated to OpenXR 1.1.42.
- Updated to SDL 2.30.8.
- Updated to MoltenVK 1.2.11.
- Updated to DXVK 2.4.1.
- Updated to OpenAL Soft 1.23.1.
- Updated to shaderc 2024.3.
- Updated to Assimp 5.4.1.
- Updated to latest OpenGL specifications.
- Updated to latest OpenCL specifications.
- Updated to ImGui.NET 1.90.8.1. (thanks @matt-edmondson)
- Updated DirectX/Windows bindings to 10.0.26100.0.
- Updated WebGPU/wgpu/dawn bindings.
- Updated SPIR-V Reflect, Cross, Headers, and Tools to their latest Vulkan 1.3.296 version.
- Updated ANGLE binaries for macOS. (thanks @ramezgerges/Uno Platform)
- Improved native binary packaging. (thanks @joskuijpers, @alexrp)
- Fixed Android 14/API 34 RECEIVER_EXPORTED/RECEIVER_NOT_EXPORTED errors.
- Fixed WGPU binaries being out of sync with the bindings API surface and crashing as a result.
- Fixed MultiNativeContext reporting present symbols as missing, affecting WGL, OpenAL, and Vulkan in some cases.
- Fixed native packages not correctly applying when being referenced transitively on .NET Framework and .NET 6+ mobile.
- Fixed windows being stuck when minimising where a recursive call to DoEvents in callbacks is used.
- Fixed changes to the standard cursor type not being accurately reflected on the GLFW backend.
- Fixed Silk.NET.Core not checking its own directory for native binaries.
- Fixed an ImGui memory leak. (thanks @rbertels)
- Fixed being unable to obtain Wayland window pointers when GLFW is compiled with both X11 and Wayland.
- Miscellaneous bugfixes and improvements.
Special thanks to Stride for sponsoring this 2.X update and our contributors for their contributions and continued interest in the project.
The Silk.NET team are hard at work on 3.0, with 2.X updates continuing with the support of contributors and sponsors.
Learn more at https://github.com/dotnet/Silk.NET
2.21 April 2024 Update
Silk.NET April 2024 Update
- Added nint overloads for the cases where OpenGL represents a native-sized integer as a void pointer.
- Added support for executing Windowing loops during repaint and drag events on GLFW in some cases. (thanks @otac0n)
- Added a distinction between "unset" (-1) and "default" (null) for Windowing depth/stencil buffer bits, defaulting to 24/8 on all platforms unless overridden.
- Added support for 64-bit Arm Linux for Assimp, GLFW (+ Windowing & Input), OpenAL Soft, SDL, Vkd3d, Vulkan Loader, SwiftShader, and WGPU. (thanks @alexrp)
- Added support for Apple Silicon Macs for OpenAL Soft, Vulkan Loader, and SwiftShader. (thanks @alexrp)
- Added support for 32-bit Arm Linux for Assimp, GLFW, OpenAL Soft, SDL, Shaderc, SPIR-V Cross, SPIR-V Reflect, Vkd3d, SwiftShader, and WGPU. (thanks @alexrp)
- Added support for 64-bit Windows on Arm for Assimp, OpenAL Soft, VulkanLoader, and SwiftShader. (thanks @alexrp)
- Added limited native library support (SPIR-V Tools and Shaderc) for glibc versions as old as 2.17 on Linux platforms.
- Added support for new standard cursor shapes in Input and GLFW.
- Updated to use
ref readonly
instead ofin
. - Updated to OpenXR 1.1.36.
- Updated to DirectStorage 1.2.2.
- Updated to Vulkan 1.3.281.
- Updated to SDL 2.30.1.
- Updated to latest OpenCL specifications.
- Updated to latest SPIR-V Reflect.
- Updated to latest WebGPU/Dawn/WGPU headers.
- Updated Vkd3d native binaries.
- Fixed string marshalling occasionally resulting in memory access violations on newer .NET 8 versions.
- Fixed Windowing crashing on .NET Framework builds with prefer 32-bit set using GLFW.
- Fixed extension loading generic type usage issues with full IL trimming enabled.
- Fixed erroneous BreakneckLock acquisition logic slowing input events on mobile/SDL. (thanks @ZingBallyhoo)
- Fixed windowing losing events when using multiple windows on desktop with the mobile/SDL implementation. (thanks @ZingBallyhoo)
- Fixed some packages not referencing their native counterparts where appropriate. (thanks @alexrp)
- Fixed Input events for standalone joysticks not being tracked on GLFW.
- Fixed Input events no longer being tracked after 3-10 reopens of the same window on GLFW.
- Fixed V-Sync configuration not persisting over window state changes in Windowing.
- Fixed Circle.Contains erroneously comparing the squared vector distance from its center against its non-squared radius. (thanks @djoyahoy)
After this update:
- Apple Silicon support is complete except for missing ANGLE binaries.
- Arm Linux support is complete except for missing DXVK, ANGLE, and Vulkan Loader (missing on 32-bit only) binaries.
- 64-bit Windows on Arm support is complete except for missing DXVK and ANGLE binaries.
- 32-bit Windows on Arm remains unsupported except for DirectStorage.
2.20.0 December 2023 Update
Silk.NET December 2023 Update
- Added support for UTF-8 file paths in GLFW and SDL windows (thanks @WinstonMao)
- Updated to OpenXR 1.0.32.1
- Updated to Vulkan 1.3.273
- Updated to latest OpenGL specifications
- Updated to latest OpenCL specifications
- Fixed Matrix2X2.GetDeterminant returning incorrect values
- Fixed ALC_SOFT_reopen_device being a non-context extension (thanks @okaniku, @doobah)
2.19.0 November 2023 Update
Silk.NET November 2023 Update
- Updated to OpenXR 1.0.31
- Updated to Vulkan 1.3.270
- Updated to latest ImGui.NET, alleviating some incompatibilities introduced by the ImGui.NET team.
- Updated to latest OpenGL specifications
- Fixed OpenCL clCreateImage not functioning as expected with ImageDesc's ABI
- Fixed OpenAL throwing when loading an extension prefixed with ALC_ instead AL_
2.18.0 October 2023 Update
Silk.NET October 2023 Update
- Added SPIR-V Reflect bindings
- Added SPIR-V Cross bindings
- Added Shaderc bindings
- Added WIC/WindowsCodecs bindings (thanks @hez2010)
- Added multi-channel formats support for OpenAL (thanks @aleksrutins)
- Added EffectTarget support for OpenAL Soft (thanks @okaniku, @doobah)
- Added MoltenVK support for iOS (massive thank you to @zvasya for contributing and testing)
- Added macOS support for the CreateWebGPUSurface helper function (thanks @AsgardXIV)
- Added the ability to load MoltenVK directly as a fallback should the Vulkan Loader be unavailable on macOS
- Added trimming support with an option to enable/disable static-linking support at link time
- Added WinRT interoperability support for Direct3D 11.
- Added the ability to query extensions from specific Vulkan layers using the Silk.NET helpers
- Added extension methods on IGamepad to return Thumbstick state instead of requiring use of the indexers (thanks @jvyden)
- Added ref properties for Vulkan chain constituents (thanks @Khitiara)
- Added Apple Silicon binaries for Assimp (thanks @jschieck)
- Added compatibility with Linux distributions using as early as glibc 2.16
- Added equality operators and IEquatable to Bool32 (thanks @Syncaidius)
- Added ToSystem/ToGeneric as extension methods (rather than plain static functions) to convert to/from Silk.NET.Maths types (thanks @Wafer-EX)
- Added discriminant values to PinObjectMarshaller to tie pinned handles to state to which the pin pertains
- Updated to Vulkan 1.3.266
- Updated to OpenXR 1.0.30
- Updated to SDL 2.28.1
- Updated to MoltenVK 1.2.5
- Updated to latest WebGPU headers
- Updated to latest OpenCL specifications
- Updated to latest OpenGL specifications
- Improved allocations in the Silk.NET Loader (thanks @Youssef1313)
- Improved robustness of HLU on AOT compilations
- Fixed WGPU not loading with the correct filename on Windows
- Fixed COM V-Table indices not matching the Clang-reported V-Table index in some cases (DirectWrite/D2D1/DComp)
- Fixed OpenAL throwing when loading an extension prefixed with ALC_ instead AL_
- Fixed WGL.GetApi throwing a NotImplementedException
- Fixed library loading failing on platforms that do not have a libdl.so symlink (we are now using libdl.so.2, thanks @CasualPokePlayer)
- Fixed a StackOverflowException when using SetWindowIcon in some cases with Silk.NET.Windowing
- Fixed GLFW crashing in some cases where multiple windows are used
- Fixed WebGPU using the incorrect size for booleans
- Fixed a memory leak with some string marshalling functions
If you are using Silk.NET with an iOS or Android application, please enable trimming and set TrimMode to full.
2.17.1 Hotfix Release
Fix a minor regression with some OpenGL Span overloads. Read more about the 2.17 update here: https://dotnet.github.io/Silk.NET/blog/apr-2023/silk2170.html
2.17.0 Spring 2023 Update 1
Silk.NET Spring 2023 Update 1
- Added zero-cost extension methods for ComPtrs, making our DirectX bindings easier to use and higher quality than ever before.
- Added WebGPU bindings for Dawn and WGPU.
- Added Direct2D bindings. (massive thank you to @curin)
- Added DirectComposition bindings. (again, massive preesh to @curin)
- Added DirectWrite bindings.
- Added d3d11on12 bindings.
- Added WGL bindings.
- Added support for Android 12.
- Added support for OpenAL disconnect extension. (thanks @okaniku)
- Added GLFW API constants for ANGLE. (thanks @cyraid)
- Added extension functions for OpenAL BufferData to make use of AL_EXT_float32 enums.
- Added ReopenDevices extension for OpenAL Soft. (thanks @LeNitrous)
- Added BufferCallback extension for OpenAL Soft.
- Added Vulkan structure chain polymorphism. (thanks @Khitiara for the proposal)
- Added SDL/GLFW native libraries for Windows on ARM64.
- Added IsScancodePressed function in Silk.NET Input.
- Added TopMost in Silk.NET Windowing (thanks @MarioGK)
- Added EGL display and surface to INativeWindow.
- Added an explicit check against calling Reset on a window while within the render loop of said window.
- Added support for multiple native binary candidate paths for a single binding.
- Improved support for WASM and AOT in the Silk.NET loader.
- Improved support for Windows on ARM64.
- Improved Silk.NET.Maths generic specialization codegen.
- Improved support for DXVK, including a new DXHandle property in INativeWindow for getting Linux HWND equivalents.
- Improved support for Silk.NET.Windowing under reflection-free NativeAOT
- Updated to SDL 2.24.
- Updated to Vulkan 1.3.246.
- Updated to DirectStorage 1.1.1.
- Updated to OpenXR 1.0.27.
- Updated to Assimp 5.2.5.
- Updated to latest OpenCL specifications.
- Updated to latest OpenGL specifications.
- Updated to latest ImGui.
- Fixed XInput GetApi not being implemented. (thanks @skyebird189)
- Fixed TransparentBuffer not being applied correctly without specifying a PreferredBitDepth. (thanks @MarioGK)
- Fixed wide string marshalling.
- Fixed string array marshalling on systems where the max DBCS character size is insufficient for UTF8.
- Fixed Span overloads not calculating the correct length value for ommitted (implicit) length parameters.
- Fixed copying of native libraries under .NET Framework 4.6.1. (thanks @paralaxsd)
- Fixed SDL crashing on Android when the screen rotates in some cases.
- Fixed a memory leak when using GlobalMemory to marshal string arrays instead of StringArrayToPtr. (thanks @Khitiara)
Welcome to the biggest update yet!
2.17 Spring 2023 Update 1 (EARLY PREVIEW)
Silk.NET Spring 2023 Update 1 (EARLY PREVIEW)
- Added zero-cost extension methods for ComPtrs, making our DirectX bindings easier to use and higher quality than ever before.
- Added WebGPU bindings for Dawn and WGPU.
- Added Direct2D bindings. (massive thank you to @curin)
- Added DirectComposition bindings. (again, massive preesh to @curin)
- Added d3d11on12 bindings.
- Added WGL bindings.
- Added support for OpenAL disconnect extension. (thanks @okaniku)
- Added extension functions for OpenAL BufferData to make use of AL_EXT_float32 enums.
- Added ReopenDevices extension for OpenAL Soft. (thanks @LeNitrous)
- Added BufferCallback extension for OpenAL Soft.
- Added Vulkan structure chain polymorphism. (thanks @Khitiara for the proposal)
- Added SDL/GLFW native libraries for Windows on ARM64.
- Added IsScancodePressed function in Silk.NET Input.
- Added TopMost in Silk.NET Windowing (thanks @MarioGK)
- Added EGL display and surface to INativeWindow.
- Added an explicit check against calling Reset on a window while within the render loop of said window.
- Improved support for WASM and AOT in the Silk.NET loader.
- Improved support for Windows on ARM64.
- Improved Silk.NET.Maths generic specialization codegen.
- Improved support for DXVK, including a new DXHandle property in INativeWindow for getting Linux HWND equivalents.
- Updated to SDL 2.24.
- Updated to Vulkan 1.3.242.
- Updated to DirectStorage 1.1.0.
- Updated to OpenXR 1.0.26.
- Updated to latest OpenCL specifications.
- Updated to latest OpenGL specifications.
- Updated to latest ImGui.
- Fixed XInput GetApi not being implemented. (thanks @ohtorobinson)
- Fixed TransparentBuffer not being applied correctly without specifying a PreferredBitDepth. (thanks @MarioGK)
- Fixed wide string marshalling.
2.16 Summer 2022 Update 1
Silk.NET Summer 2022 Update 1
- Massive project-wide bindings overhaul, making our bindings easier to use and higher quality than before.
- Added grouped OpenCL enums. (thanks @Alexx999)
- Added support for creation of contexts with versions prior to OpenGL 3.2. (thanks @Beyley)
- Added support for multiple ImGuiControllers. (thanks @Beyley)
- Added support for single-file mode. (thanks @kant2002)
- Added shorter names in enums used in bindings.
- Added AspectRatioEstimate API to VideoMode. (thanks @ohtrobinson)
- Update to latest OpenGL specifications
- Update to OpenXR 1.0.24
- Update to Vulkan 1.3.223
- Improved ImGuiController disposal. (thanks @Beyley)
- Fixed incorrect OpenCL functions. This is breaking, but if you were using these functions your code didn't work anyway. (thanks @Alexx999)
- Fixed IsVisible not being respected in some cases. (thanks @paralaxsd)
- Fixed window close events not being respected on the SDL backend. (thanks @paralaxsd)
This update may result in your projects having a lot of deprecation warnings. We believe this update contains much-needed improvements to both Silk.NET and code consuming it, but we appeciate migrating to this version may take time.
2.15 April 2022 Update
Silk.NET April 2022 Update
- Add DirectStorage bindings
- Add legacy OpenGL 2.0 support for the ImGui extension (thank you @Beyley)
- Add the ability to customize the functionality/priorities of DefaultPathResolver
- Add more auto-generated constants to Assimp, DirectX, and SDL
- Update to Vulkan 1.3.210
- Update to latest OpenGL specifications
- Fix Assimp native package being out-of-sync with latest binding
- Fix SDL input backend producing different key mappings to the GLFW input backend
- Fix Android Activity restarts not being properly handled by Silk.NET Windowing