* Configure MoltenVK to use a dedicated compute queue for compute[*] examples with sync barriers
* Modify descriptorindexing example for iOS and variable descriptor count limitations on MoltenVK
* Remove obsolete macOS #ifdefs no longer needed for modern MoltenVK versions
* Update iOS project to fix missing vkloader.c reference and revise example list
* Set required features and API version for VVL in debugprintf example
* Remove unnecessary Apple-specific code from descriptorindexing example
* Add Layer Settings capability to VulkanExampleBase::createInstance()
* Replace setenv() in examples with Layer Settings configuration for macOS/iOS
* Update comments in examples.h and fix missing initializer in computeraytracing example
* Update imgui overlay and example to support iOS Simulator
* Update more comments in examples.h and remove redundant initializers in deferred* examples
* Separate variable descriptor count declarations for apple and non-apple platforms
* Consolidate variable descriptor count declarations for apple vs. non-apple platforms
* Configure MoltenVK with a dedicated compute queue in VulkanExampleBase() and remove from samples
Using an initial layout of VK_IMAGE_LAYOUT_UNDEFINED together with
VK_ATTACHMENT_LOAD_OP_LOAD means that the render pass starts off with
completely undefined contents. Since we want to draw the overlay on top
of the previously rendered image, we want to use a real layout. Since
the calling code has already transitioned to VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
that's the layout we need to use.
This was never caught by validation because VK_IMAGE_LAYOUT_UNDEFINED is
the one layout you're allowed to use as an initial layout at any time
regardless of the image's current layout.