Skip to content

Releases: dotnet/Silk.NET

2.21 April 2024 Update

23 Apr 19:44
ff35bea
Compare
Choose a tag to compare

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 of in.
  • 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

12 Dec 20:49
8c14e75
Compare
Choose a tag to compare

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

14 Nov 19:52
5273a0d
Compare
Choose a tag to compare

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

21 Oct 19:52
6095c71
Compare
Choose a tag to compare

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

09 Apr 22:09
79d01cd
Compare
Choose a tag to compare

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

06 Apr 21:02
fd74709
Compare
Choose a tag to compare

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)

19 Mar 19:52
4b7976b
Compare
Choose a tag to compare

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

02 Aug 05:19
af7bdbd
Compare
Choose a tag to compare

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

02 Apr 13:24
Compare
Choose a tag to compare

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

2.14 March 2022 Update

15 Mar 18:56
36f3130
Compare
Choose a tag to compare

Silk.NET March 2022 Update

  • Add a Version13 convenience property (thanks @Eeveelution)
  • Add DXGI_CREATE_FACTORY_DEBUG Constant to DXGI (thanks @Eeveelution)
  • Update to Vulkan 1.3.207
  • Update to latest OpenCL specifications
  • Update to latest OpenGL specifications
  • Fix SilkMarshal.StringToPtr throwing "buffer is too small to contain the encoded data" in some cases
  • Fix Direct3D11 having its own ID3D10Blob type
  • Fix Assimp using the wrong quaternion types
  • Fix SDL windowing backend causing lots of allocations
  • Fix GLFW windowing backend circular reference/memory leak

This release may be breaking for users, but those users who experience breaking changes most likely had code that didn't work anyway.