Skip to content

Latest commit

 

History

History
19 lines (17 loc) · 1.12 KB

File metadata and controls

19 lines (17 loc) · 1.12 KB

WebGPU encapsulation layer

Contents and Responsibility:

  • Provide clone-able and thread-safe wrapper for resource type.
  • Record all related info with resource wrapper for convenience.
  • Provide bindgroup cache and binding encapsulation, user could not care bindgroup management at all.
  • Provide async functions for resource async read.
  • Using stricter and polished api surface to reduce runtime exception.
  • Moving forward some validation check at first error commit site, make it easy to debug issue.
  • Enable more advance validation check, such as check if buffer binding has same data type.
  • Workaround annoying wgpu lifetime limitations, but also expose raw api for performance.
    • this issue is fixed upstream at wgpu version 22. however wgpu::RenderPass<'static> is ugly to use and some kind of the encapsulation still preferred.
  • Bridge the shader and pipeline infrastructure to RRF shader api system.
  • Potential performance optimization and inspection.
  • Fix resource leaky behavior in web environment.
  • Provider a range allocator for gpu buffer.
  • Reexport common wgpu-types.
  • Other shareable & reuseable components.