ComputeSharp

A .NET library to run C# code in parallel on the GPU through DX12, D2D1, and dynamically generated HLSL compute and pixel shaders, with the goal of making GPU computing easy to use for all .NET developers! 🚀

MIT License

Stars
2.7K
Committers
14

Bot releases are visible (Hide)

ComputeSharp - 3.0.1 Latest Release

Published by Sergio0694 4 months ago

What's Changed

Full Changelog: https://github.com/Sergio0694/ComputeSharp/compare/v3.0.0...v3.0.1

ComputeSharp - 3.0.0

Published by Sergio0694 4 months ago

ComputeSharp 3.0 is now live! 🚀

This new major release includes completely revamped source generators for both DX12 and D2D1, featuring major performance improvements, and lots of new analyers. It also brings full .NET 8 support (with AOT!), much improved and more extensible APIs for shader dispatching, new helpers, more configuration options for shaders (eg. the ability to disable double precision support), and more!
 

What's Changed

Full Changelog: https://github.com/Sergio0694/ComputeSharp/compare/v2.1.0...v3.0.0

ComputeSharp - 2.1.0

Published by Sergio0694 about 1 year ago

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

Full Changelog: https://github.com/Sergio0694/ComputeSharp/compare/v2.0.0...v2.1.0

ComputeSharp - 2.0.0

Published by Sergio0694 almost 2 years ago

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 and AnimatedComputeShaderPanel 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
ComputeSharp - 2.0.0 Preview 1

Published by Sergio0694 about 2 years ago

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 and AnimatedComputeShaderPanel 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
ComputeSharp - New interlocked intrinsics APIs, performance optimizations

Published by Sergio0694 about 4 years ago

🆕 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

ComputeSharp - New shader syntax, bug fixes and improvements

Published by Sergio0694 about 4 years ago

🆕 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

ComputeSharp - Minor speed improvements, NuGet updates

Published by Sergio0694 about 5 years ago

🆕 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

ComputeSharp - New Bool type, speed improvements

Published by Sergio0694 about 5 years ago

🆕 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

ComputeSharp - Performance improvements

Published by Sergio0694 about 5 years ago

✅ Reduced overhead when dispatching shaders
✅ Fixed threading issue with the shader generation

ComputeSharp - Better error messages, API tweaks

Published by Sergio0694 about 5 years ago

🆕 New custom exception when using invalid buffers in a shader, with clear error message
✅ Refactored some properties for the GraphicsDevice class

ComputeSharp - Captured delegates, improved shader generation

Published by Sergio0694 about 5 years ago

🆕 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

ComputeSharp - Static methods in shaders

Published by Sergio0694 about 5 years ago

🆕 Added support for static methods in shaders
✅ Fixed initialization of the WavefrontSize property for different GPUs
✅ License switched to MIT

ComputeSharp - Initial release

Published by Sergio0694 about 5 years ago

First public build, featuring shader caching, builtin HLSL vector types, HLSL intrinsics and more