74 Commits

Author SHA1 Message Date
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
adrien
d42c521a96 Added f16 capability 2026-05-18 10:12:36 +02:00