Giter VIP home page Giter VIP logo

computesharp's Introduction


.NET NuGet NuGet

What is it? ๐Ÿš€

ComputeSharp is a .NET library to run C# code in parallel on the GPU through DX12, D2D1, and dynamically generated HLSL compute and pixel shaders. The available APIs let you access GPU devices, allocate GPU buffers and textures, move data between them and the RAM, write compute shaders entirely in C# and have them run on the GPU. The goal of this project is to make GPU computing easy to use for all .NET developers!

What can it actually do? โœจ

Since a video is worth a thousand words, here's a showcase of some pixel shaders (originally from shadertoy.com), ported from GLSL to C# and running with ComputeSharp in a WinUI 3 sample app. You can use this library to create all sorts of things from scientific simulations, to animated backgrounds, audio visualizers and more!

ComputeSharpWinUI3.mp4

Where is it being used? โœˆ๏ธ

ComputeSharp is production ready, and it's being used by several projects running on millions of devices!

Here's a showcase of some of them:

Screenshot Project
image The Microsoft Store is a first party application that ships with Windows and allows users to discover, search and download digital content such as apps, games, movies and more. Starting from the January 2023 release, it is using ComputeSharp.D2D1.Uwp to leverage custom effects and pixel shaders to power several graphics elements in the application, such as the new app cards.
image Paint.NET is an image and photo editing application for Windows. Starting from its 5.0 release, it is using ComputeSharp.D2D1 as a core component of its architecture (in fact, ComputeSharp.D2D1 was initially developed specifically to support Paint.NET!). The library is used both internally to accelerate dozens of built-in effects using custom D2D1 pixel shaders, as well as for external plugins.

Try out the sample app! ๐Ÿ’ป

The sample app is available in the Microsoft Store, showcasing several pixel shaders all powered by ComputeSharp!

Get it from Microsoft

Available packages ๐Ÿ“ฆ

Name Description
ComputeSharp The main library, with compiled shaders support
ComputeSharp.D3D12MemoryAllocator An extension library for ComputeSharp, adding D3D12MA as the memory allocator for graphics resources.
ComputeSharp.Dxc An extension library for ComputeSharp, bundling the DXC compiler and enabling shader reflection
ComputeSharp.Pix An extension library for ComputeSharp, enabling PIX support to produce debugging information
ComputeSharp.WinUI A WinUI 3 library with controls to render DX12 shaders powered by ComputeSharp
ComputeSharp.D2D1 A library to write D2D1 pixel shaders entirely with C# code, and to easily register and create ID2D1Effect-s from them
ComputeSharp.D2D1.WinUI A WinUI 3 library with custom effects for Win2D powered by ComputeSharp.D2D1

Preview builds are available at https://pkgs.computesharp.dev/index.json (as well as GitHub Packages).

Documentation ๐Ÿ“–

All the documentation for ComputeSharp is available in the wiki pages. That includes a recap of everything in this readme, as well as info and detailed samples on all features and APIs from the available packages. Make sure to go through it to get familiar with this library!

Sponsors ๐ŸŽ

Huge thanks to these sponsors for directly supporting my work on ComputeSharp, it means a lot! ๐Ÿ™Œ

Special thanks

ComputeSharp was originally based on some of the code from the DX12GameEngine project by Amin Delavar.

Additionally, ComputeSharp uses NuGet packages from the following repositories:

computesharp's People

Contributors

sergio0694 avatar singleaccretion avatar hawkerm avatar youssef1313 avatar patan77 avatar john-h-k avatar avid29 avatar kant2002 avatar l3tum avatar nirmal4g avatar sharwell avatar neme12 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.