Skip to content

v0.0.0-alpha.1: First usable version 🚩

Pre-release
Pre-release
Compare
Choose a tag to compare
@UpsettingBoy UpsettingBoy released this 27 Sep 09:20
· 40 commits to master since this release
e8b9106

This is the first "real" release of gpgpu-rs, not an MVP yet but still usable.

Features

  • Offloading of computations into the GPU 📈
    • Using gpgpu-rs primitives + compute shaders
    • Supports storage buffers, texture and storage textures on the shaders
    • Supports SPIR-V compute shader loading (works best with WGSL shaders from both source and SPIR-V)
    • Fairly primitive wgpu integration. Allows usage of gpgpu-rs primitives with wgpu pipelines (mainly graphic pipelines)
    • 2 simple examples, one for buffer compute and another one for image manipulation
  • GpuBuffer primitive
    • Buffer of n T elements on the GPU. T must be bytemuck::Pod
    • Supports sync and async read and write operations
  • GpuImage primivite
    • Handles a texture on the GPU. Only RGBA8 images yet 😢
    • Supports sync and async read and write operations

TODO

  • Improve documentation and examples (new and more complex examples)
  • Support of different texture formats on GpuImage
  • Reuse of staging buffers (optional, typed as in the Vec allocator)
  • New primitives for fine grained GPU usage (CpuAccessibleBuffer, ReadOnlyGpuImage, etc; better naming 😆)
  • More to come...

All in all, I'm pretty happy with this release. I'm looking for comments on the API, if it is simple, easy to use, etc.