or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Blade
gfx, luminance, vulkano, wgpu, rafx, sierra …
Yet another graphics library?
Motivation
Case: Rusty Vangers
Motivation: GPU evolves
Lots workloads where CPU costs are small:
Why not wgpu/hal?
Constraints…
Lean
State tracking
No per-object state. No image layout transitions.
Global barriers between passes.
State tracking: example
Binding model
No layouts. No descriptor sets.
No uniform buffers, just plain data.
Binding model: define group
Binding model: pipeline creation
Binding model: binding
Binding model: thoughts
Makes prototyping a breeze!
Was BG/BGL/PL a design mistake in WebGPU?
Lean: code size
Disclaimer: Blade is much incomplete!
But is it fast?
Can do around 20K draw calls per frame on a low-end laptop.
Mean
Mean: shortcuts
Who needs vertex buffers, anyway?
One context - one window.
Mean: no contract
All libraries: we got you!
Blade: bring your own maintainer
See What it feels like to be an open-source maintainer
Ergonomics
Resource objects: light and copyable.
Context: Has everything, internally synchronized.
API: Shaders
Validated(*) WGSL modules.
Without resource binding decorations!
TL;DR: why use Blade?
Why not use Blade?
Demo & Questions
https://github.com/kvark/blade