75 Commits

Author SHA1 Message Date
adrien
43a9f54f49 Added webgpu binary for each target (window, macos, linux) in all archi (x86, aarch) 2026-05-24 01:27:10 +02:00
adrien
5f8da0940d GpuBuffer read no longer allocate an staging buffer itself. Instead need to manually do it and use new copy function to move data from a buffer to a mapable one 0.2.2 2026-05-22 00:41:28 +02:00
adrien
4901dc654d GpuBuffer now hold its def and not values directly 2026-05-22 00:30:29 +02:00
adrien
e03cb3f285 Added back VRAM budget check for GpuBuffer, must be forgotten when refactoring it 0.2.1 2026-05-22 00:17:54 +02:00
adrien
14def5d555 Updated example in README 2026-05-21 23:38:22 +02:00
adrien
e61c5f775d Prevent building example when use as module 2026-05-21 23:33:54 +02:00
AdrienBouvais
d503ce7dea Added optional label in definitions and added logs when alloc, free and device info 2026-05-21 10:26:20 +02:00
adrien
69f9cad2c1 Updated README ref 2026-05-20 15:45:02 +02:00
adrien
c5d7fd927d Updated README and build.zon version 2026-05-20 14:04:25 +02:00
adrien
17977cc718 Merge branch 'render' 2026-05-20 13:47:43 +02:00
adrien
5104d61ef6 Synthax for compute example 2026-05-20 13:41:04 +02:00
adrien
7d5331aed7 Circle example use device allocator directly 2026-05-20 13:39:20 +02:00
adrien
7d425e4061 Changed how Allocator work to be more Zig like
Now GpuArena doesn't do everything.

- Created GpuDeviceAllocator that allocate to the device
- GpuArena become GpuArenaAllocator and use a child_allocator like
std.heap.ArenaAllocator
2026-05-20 13:32:37 +02:00
adrien
a06b040a29 Render and COmpute Pipelines now use a gloc and is tracked by Arena 2026-05-20 12:29:41 +02:00
adrien
af210e2fb2 Working self contained rendering (simple circle) 2026-05-20 11:46:06 +02:00
adrien
545c4b98e9 Create a GpuTextureView 2026-05-20 10:56:35 +02:00
adrien
45c0f3180e Created a GpuTextureDef 2026-05-20 09:55:34 +02:00
adrien
fc57bee3af Created GpuPrimitiveTolopogy to replace c.WGPUPrimitiveTopology 2026-05-20 09:37:46 +02:00
adrien
bcb1b1e98b GpuRender now take a GpuTextureFormat and not a c.WGPUTextureFormat 2026-05-20 09:24:37 +02:00
adrien
32f5d2b828 Added GpuTexture tied to arena like buffer 2026-05-20 09:14:54 +02:00
adrien
ad3fcf2592 Basic working circle render pipeline 2026-05-19 21:58:14 +02:00
adrien
83ef8bcd12 Renamed ProcessDef to COmputeDef 2026-05-19 21:35:52 +02:00
adrien
e467539f6e Renamed GpuProcess to GpuCompute 2026-05-19 21:15:31 +02:00
AdrienBouvais
fb2f454c1c Removed unused import 2026-05-19 09:18:26 +02:00
AdrienBouvais
7e1bc387ca Synthax 2026-05-19 09:15:32 +02:00
AdrienBouvais
09e62cf667 Update README and comment for new GpuProcess 2026-05-19 08:00:42 +02:00
AdrienBouvais
62b5224e6e Changed GpuProcess to use a definition
Now GpuProcess isnt limited to 2 in, 1 out but to anything.
2026-05-19 07:54:16 +02:00
AdrienBouvais
44d26feba5 . 2026-05-19 07:41:50 +02:00
AdrienBouvais
bfac170936 Added better dependencies info in README 2026-05-19 07:35:08 +02:00
adrien
523a9b69ac .Synthax 2026-05-18 23:21:26 +02:00
adrien
571a9db71f Started to add a mnist Deep Learning example
No reason why, that for the love of the game
2026-05-18 23:11:58 +02:00
adrien
6ec53bb909 Moved add and bench into an examples directory so src is just the library 0.1.0 2026-05-18 22:57:13 +02:00
adrien
6b933465b0 Better example 2026-05-18 17:00:44 +02:00
adrien
3d9cb4df04 Removed TensorInfo from example shader 2026-05-18 16:45:55 +02:00
adrien
c62bead6e9 Better example (no Vec) 2026-05-18 16:38:30 +02:00
adrien
9dbd668de9 . 2026-05-18 16:33:26 +02:00
adrien
50bf436fa5 Update README 2026-05-18 16:33:07 +02:00
adrien
df4eb36bc8 Added README 2026-05-18 16:30:27 +02:00
adrien
c7afe28cc6 GpuBuffer align with size 4 as required by WebGPU
Otherwise a GpuBuffer of a single f16 is too small (only 2) and a eneven
f16 wouldn't work either
2026-05-18 16:24:43 +02:00
adrien
d9cb4c4672 Better example comments 2026-05-18 16:18:58 +02:00
adrien
3a09e11f54 Deleted Vec.zig 2026-05-18 16:05:50 +02:00
adrien
e608681ce1 Added preference power in DeviceCOnf 2026-05-18 16:05:42 +02:00
adrien
d2b0735540 Moved all f32 out of GpuXxxx to all be in Vec 2026-05-18 15:35:38 +02:00
adrien
8e137c8f33 Vec no longer need import c 2026-05-18 15:28:28 +02:00
adrien
97d5f9001f Removed GpuPipeline for a GpuProcess 2026-05-18 15:28:02 +02:00
adrien
d5e7f60926 Moved read stuff to GpuBuffer directly 2026-05-18 14:27:11 +02:00
adrien
2673aef0fd Moved c.gpuQueuWriteBuffer to GpuBuffer 2026-05-18 14:16:01 +02:00
adrien
7ce6b9cd1d Better example 2026-05-18 14:11:17 +02:00
adrien
f5daf66784 Changed GpuAllocator to be like std.mem.Allocator
Now it is 2 ptr and I created a GpuArena. Point is to be like Zig, a
const allocator and a var arena that track everything.
2026-05-18 14:07:28 +02:00
adrien
c3166e552b GpuBuffer init now take a EnumSet of BufferUsage and not a c.WGPUBufferUsage 2026-05-18 10:49:11 +02:00