Reusable command buffers

Hi WebGPU,

I was just reading about Granite [1] and found something interesting:

http://themaister.net/blog/2019/04/17/a-tour-of-granites-vulkan-backend-part-2/


Basically, the goals of Granite are similar to ours - to provide a 
usable API abstraction over low-level, which for Granite's case is just 
Vulkan. It also aims to automatically track resource lifetimes, safely 
retiring them after GPU no longer needs them.


The interesting point I stumbled upon is the fact Granite doesn't expose 
re-usable command buffers and argues against their usefulness. Perhaps, 
if anybody is at Khronos F2F right now, we can reach out to Hans 
personally and get more details.

Another interesting aspect is the rule it establishes that a command 
buffer created in a frame context has to be submitted in the same frame 
context. This is another way to communicate submission order by the user 
(a distant alternative to "enqueue" semantics), and it has the benefit 
of greatly simplifying the tracking logic in the implementation, as 
described in the blog. For us it would mean a tiny complication in the 
API in exchange of potentially less overhead in tracking (yet to be 
confirmed).

Just posting it here to get thoughts rolling in our heads before the May 
F2F, where we can hopefully discuss this.


Thanks,

Dzmitry

Received on Wednesday, 24 April 2019 14:18:04 UTC