Is it legal to create a zero-sized buffer? For example, what is the expected result of bufferDesc.size = 0?
Note: D3D12 does not allow "zero-sized" buffers and Vulkan seems driver-specific (may reject). Not certain of Metal. IIRC, WebGL validates for non-zero sizes at creation-time.