Is it possible CommandBuffer allocation has a missing error scenario / error return value? Still learning vulkan and coding app to let us test every eventuality (without crashing if possible) and I see some functions do not have a result to return as they are just assumed to work (destroyX, freeCommandBuffers). And if spec says don’t then don’t, but…
Freeing command buffers from pool handle 0 crashes without layer feedback, as does freeing from a command pool handle to a pool just destroyed. Am I right in thinking this is not actually a driver bug but a rare case of the spec advising don’t do it (instead of do it and test the result?) Spec says no, was trying to let users test destroying the command pool then freeing the buffer but I zero out the command pool handle so the crash I get is from freeing from command pool 0x00000000.
Happy to avoid doing it, but was writing an app to help teach vulkan and its annoying I can’t tell if I’ve got a really painful bug to track down in my own code. Better to disallow it and give the user an alert? (…warning what will happen in the field if you do this or any other bad pointer or divide-by-zero type fatal error situation?)
And finally I request one queue from the transfer family but try to create a command pool for the other queue family type reported to be available (but haven’t created the device with any queues of that family requested) and DO get an error BUT allocate command buffers from that pool that didn’t get created (actually a command pool family of 0x0000 since trying to create the command pool did not work I would think it would not yield a handle? if it did it’s not valid) and even though it returns a result it returns success. Instead of um which error is it now? Spec says you get success or out of host memory or out of device memory errors.
(Ubuntu, Geforce 960M 430.40, sdk is 1.1.101.0 latest available at runtime creating device is 1.1.99.0)