Releases: Sergio0694/ComputeSharp
2.1.0
ComputeSharp 2.1 is now live! 🚀
Major changes in a nutshell ✨
- New ComputeSharp.D2D1.Uwp (and .WinUI) packages with Win2D support
- New D2D1 transform mapper support D2D effects
- Moved D3D12MA support into ComputeSharp.D3D12MemoryAllocator
- Just tons of bug fixes, performance improvements, general tweaks
Full changelog
- Implement new D2D1 transform mapper infrastructure by @Sergio0694 in #432
- Fix visibility of interpolated string handler polyfills by @Sergio0694 in #448
- Update all NuGet packages to latest stable by @Sergio0694 in #454
- Add ComputeSharp.D2D1.Uwp and new PixelShaderEffect type by @Sergio0694 in #451
- Add CanvasEffect base type for Win2D effects by @Sergio0694 in #455
- Remove reflection from UWP sample startup path by @Sergio0694 in #456
- Disable resolution scale options when dynamic resolution is enabled by @Sergio0694 in #457
- Default to 60fps for dynamic resolution when using WARP by @Sergio0694 in #459
- Add .NET 7 TFM to all unit tests by @Sergio0694 in #460
- Enable embedded PDBs for UWP libraries by @Sergio0694 in #461
- Fix PixelShaderEffect.ConstantBuffer accessors crashing for empty types by @Sergio0694 in #466
- Skip unnecessary ToString() call to check file extension by @Sergio0694 in #468
- Switch to Vortice.Win32 for all unit tests by @Sergio0694 in #470
- Switch to PolySharp, remove local polyfills, add type forwards by @Sergio0694 in #471
- Improve DI architecture in UWP sample, remove reflection by @Sergio0694 in #472
- Update all NuGet packages to latest stable by @Sergio0694 in #473
- Reduce string pinning duration in ResourceManager.GetOrCreate by @Sergio0694 in #474
- Add Win2D renderer to UWP sample app by @Sergio0694 in #475
- Update NuGet dependencies by @Sergio0694 in #476
- Add HLSL Mad intrinsic by @Sergio0694 in #478
- Update WinUI 3 and improve sample app by @Sergio0694 in #482
- Update NuGet packages to latest stable by @Sergio0694 in #483
- Add new WIN2D_GET_DEVICE_ASSOCIATION_TYPE support for ICanvasImageInterop by @Sergio0694 in #467
- Add support for ID2D1DeviceContextPool Win2D APIs by @Sergio0694 in #464
- Add support for ICanvasEffect for PixelShaderEffect by @Sergio0694 in #465
- Move MethodInfoExtensions to ComputeSharp.Dynamic by @Sergio0694 in #487
- Switch all packages to internal and shared throw helpers by @Sergio0694 in #489
- Use Unsafe.As to reinterpret ImmutableArray values by @Sergio0694 in #491
- Add showcase to the readme by @Sergio0694 in #493
- Add InvalidExecutionContextException.MemberName by @Sergio0694 in #495
- Bump target UWP SDK to 22621 by @Sergio0694 in #496
- Update NuGet packages to latest stable by @Sergio0694 in #497
- Add missing TFM to ComputeSharp.Tests.GlobalStatements by @Sergio0694 in #499
- Enable assembly strong name signing by @Sergio0694 in #498
- Add "official" Disposable pattern to CanvasEffect by @Sergio0694 in #500
- Rename CanvasEffect setup and update methods by @Sergio0694 in #501
- Add .NET 7 SDK to global.json by @Sergio0694 in #505
- Add D2D1TransformMapper GC collect unit test by @Sergio0694 in #506
- Add ComputeSharp.D2D1.WinUI package (for Win2D/WASDK support) by @Sergio0694 in #486
- Add support for Win2D resource cache manager wrapper registration by @Sergio0694 in #507
- Fix WinRT projections marshalling on WASDK by @Sergio0694 in #510
- Add unpackaged Win2D WASDK Win32 CLI sample by @Sergio0694 in #509
- Drop NuGetizer from packaging projects by @Sergio0694 in #508
- Update PIX libraries to version 1.0.230302001 by @Sergio0694 in #511
- Fix constructor finalization issues with ReferenceTracker by @Sergio0694 in #504
- Add support for ICanvasFactoryNative.RegisterEffectFactory in PixelShaderEffect by @Sergio0694 in #512
- Fix effect factory cache registration and validation logic by @Sergio0694 in #513
- Split NativeAOT samples in CI script by @Sergio0694 in #514
- Add ComputeSharp.D2D1.Uwp unit tests by @Sergio0694 in #515
- Add ComputeSharp.D2D1.WinUI unit tests by @Sergio0694 in #516
- Add new CanvasEffect.EffectGraph APIs by @Sergio0694 in #517
- Enable AOT and single file analyzers by @Sergio0694 in #518
- Update NuGet packages to latest stable by @Sergio0694 in #519
- Remove .NET Core 3.1 TFMs by @Sergio0694 in #520
- Remove double uses in MengerJourney/TwoTiledTruchet by @Sergio0694 in #521
- Update sample link in README to launch pop-up Store by @Sergio0694 in #522
- Add missing readonly modifiers, ignore them in HLSL by @Sergio0694 in #524
- Update NuGet packages to latest stable by @Sergio0694 in #526
- Update NuGet packages to latest stable by @Sergio0694 in #527
- Remove some null suppressions, add [NotNullWhen] by @Sergio0694 in #528
- Update Microsoft.WindowsAppSDK to 1.3.230602002 by @Sergio0694 in #529
- Remove uses of Func<T, TResult> from CLI samples by @Sergio0694 in #531
- Add ILLink file for ComputeSharp configuration by @Sergio0694 in #532
- Generate documentation files for all source and samples by @Sergio0694 in #533
- Remove workaround for lower D3D12MA SDK by @Sergio0694 in #535
- Remove Console.WriteLine call for -h output by @Sergio0694 in #536
- Invert GPU timeout feature switch, true by default by @Sergio0694 in #534
- Remove reified generic instantiations in CLI sample by @Sergio0694 in #537
- Add reference count checks to interop tests by @Sergio0694 in #538
- Split D3D12MA support into ComputeSharp.D3D12MemoryAllocator by @Sergio0694 in #539
- Update NuGet packages to latest stable by @Sergio0694 in #530
- Build ComputeSharp.D3D12MemoryAllocator package by @Sergio0694 in #541
- Add more MSBuild options to DX12 CLI sample by @Sergio0694 in #542
- Fix trimming support for ComputeSharp.D2D1.WinUI and CI test by @Sergio0694 in #544
- Fix NativeAOT publishing for Win2D CLI sample, update CI script by @Sergio0694 in #545
- Update NuGet packages to latest stable by @Sergio0694 in #543
- Fix some incorrect signatures in Win2D ABI type bindings by @Sergio0694 in #546
- Enable GenerateDocumentationFile everywhere by @Sergio0694 in #554
- Remove Regex.Replace call in D3DCompiler by @Sergio0694 in #553
- Remove string allocation in ID3DIncludeForD2DHelpers.Open by @Sergio0694 in https://github.com/S...
2.0.0
ComputeSharp 2.0 is finally available! 🚀
Read the blog post on Medium here.
The changelog here is mostly the same as for 2.0.0-preview1, just with additional bug fixes and performance improvements. This release includes a completely overhauled library compared to the previous 1.4.1 release, along with tons of new changes. It's impossible to list all of them here, so here's just some of the biggest changes. But there's much, much more that's included across all available libraries!
ComputeSharp
- New
ComputeContext
APIs to build fully custom computational graphs - New
IPixelShader<T>
interface to easily write pixel-shader-like shaders - New texture resources, including normalized ones
- New transfer buffers (upload and readback)
- New support for directly loading and saving images
- New APIs to execute work asynchronously
- New APIs to track and recover from device loss
- All APIs are now fully thread safe and resilient against memory leaks and corruption
- Replaced method decompiler with Roslyn incremental source generator
- Add .NET Standard 2.0 target (including in all other libraries as well)
- Much better performance than before
ComputeSharp.Dynamic
- Split dynamic compilation support to separate package to reduce binary use
- New APIs to do shader reflection
ComputeSharp.Pix
- New standalone package adding PIX support to ComputeSharp
ComputeSharp.Uwp, ComputeSharp.WinUI
- New UWP and WinUI 3 packages with
ComputeShaderPanel
andAnimatedComputeShaderPanel
controls - New APIs to fully customize the render loop and the frame request queue
ComputeSharp.D2D1
- New package with support for authoring D2D1 pixel shader
- New built-in
ID2D1Effect
implementation to easily plug shaders into a D2D1 pipeline - New APIs to easily define D2D1 transform mappings
- New APIs to do shader reflection
- New attribute to precompile inline HLSL, for manual shader compilation
- New APIs to manually compile raw HLSL sources
2.0.0 Preview 1
This is the first official preview of ComputeSharp 2.0! 🚀
This release includes a completely overhauled library compared to the previous 1.4.1 release, along with tons of new changes. It's impossible to list all of them here, so here's just some of the biggest changes. But there's much, much more that's included across all available libraries!
ComputeSharp
- New
ComputeContext
APIs to build fully custom computational graphs - New
IPixelShader<T>
interface to easily write pixel-shader-like shaders - New texture resources, including normalized ones
- New transfer buffers (upload and readback)
- New support for directly loading and saving images
- New APIs to execute work asynchronously
- New APIs to track and recover from device loss
- All APIs are now fully thread safe and resilient against memory leaks and corruption
- Replaced method decompiler with Roslyn incremental source generator
- Add .NET Standard 2.0 target (including in all other libraries as well)
- Much better performance than before
ComputeSharp.Dynamic
- Split dynamic compilation support to separate package to reduce binary use
- New APIs to do shader reflection
ComputeSharp.Pix
- New standalone package adding PIX support to ComputeSharp
ComputeSharp.Uwp, ComputeSharp.WinUI
- New UWP and WinUI 3 packages with
ComputeShaderPanel
andAnimatedComputeShaderPanel
controls - New APIs to fully customize the render loop and the frame request queue
ComputeSharp.D2D1
- New package with support for authoring D2D1 pixel shader
- New built-in
ID2D1Effect
implementation to easily plug shaders into a D2D1 pipeline - New APIs to easily define D2D1 transform mappings
- New APIs to do shader reflection
- New attribute to precompile inline HLSL, for manual shader compilation
- New APIs to manually compile raw HLSL sources
New interlocked intrinsics APIs, performance optimizations
🆕 New interlocked HLSL intrinsics
🚀 Major speed improvement when dispatching shaders
🚀 Major memory usage optimization when dispatching shaders
✅ Fix a possible issue with references staying alive when not needed
New shader syntax, bug fixes and improvements
🆕 New shader syntax (struct type + IComputeShader
interface)
✅ Gpu.Default
is now thread safe
✅ Bug fix when concurrently dispatching shaders
✅ Bug fixes when parsing some C# code to HLSL
✅ Bug fixes to constant buffer copies (thanks @john-h-k)
✅ Improved error reporting for internal failures
✅ Updated all NuGet references
🚀 Speed improvements when loading/dispatching shaders
Minor speed improvements, NuGet updates
🆕 Lowered minimum DX feature level requirement for GPUs to DX12.0
✅ Fixed a bug when capturing readonly bool
fields/properties
✅ Minor performance improvements with the shader dispatching
✅ Updated NuGet dependencies
New Bool type, speed improvements
🆕 New Bool
type to be used in GPU buffers
✅ Speed improvements and reduced memory usage
✅ Fixed error that could happen when dispatching multiple shaders sequentially
✅ Fixed typos in some Bool2
members
✅ Updated dependencies
Performance improvements
✅ Reduced overhead when dispatching shaders
✅ Fixed threading issue with the shader generation
Better error messages, API tweaks
🆕 New custom exception when using invalid buffers in a shader, with clear error message
✅ Refactored some properties for the GraphicsDevice
class
Captured delegates, improved shader generation
🆕 Added support for captured static/stateless delegates
🆕 Added support for local methods inside a shader
✅ Fixed non public static methods in shaders
✅ Fixed static members from parent class used in shaders
✅ Minor tweaks to the generated shader code