"Sketch API" WebIDL

Hey all,

As discussed last meeting, here's a sketch WebIDL
<https://github.com/Kangz/sketchAPI/blob/master/webgpu.webidl> that's based
of NXT with controversial parts removed, leading to some simplification. We
tried to make the IDL so simple it doesn't require explanation but we can
make some documentation if things are unclear.  Obviously this is an
extremely naive IDL and the goal is that the group can use it to have more
concrete discussions and make big changes to it. Large differences from NXT
are:

   - No builder, but JS-dictionnary "descriptors" instead, enums that look
   like Obsidian's.
   - Implicit memory barriers.
   - WebGPUDevice::getQueue always return the same object.
   - Apple's simple buffer upload and readback.
   - Vulkan-style "multi-subpass" renderpass replaced with Metal-style
   single subpass.

The only very NXT-specific thing we kept is the binding model, and it's
"bindgroup" terminology instead of Vulkan "descriptor set". Obviously this
is nowhere close to what WebGPU should be and there's a lot of changes we'd
like to discuss:

   - Explicit memory barriers and multi-queue.
   - Better tile-control.
   - A different API shape that works with WASM.
   - Efficient paths for buffer setsubdata and readback.

PTAL!

Corentin

Received on Monday, 12 February 2018 21:17:40 UTC