Fix fatal error when VK_PIPELINE_COMPILE_REQUIRED is returned

According to the spec, vkCreateGraphicsPipelines can return
VK_PIPELINE_COMPILE_REQUIRED when succeeded.

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCreateGraphicsPipelines.html

Bug: 2812397
Test: dEQP-VK.pipeline.monolithic.creation_cache_control.graphics_pipelines*
Change-Id: Ic8920c664bf2a783daa1beb7411615a6ef80ef80
diff --git a/host/vulkan/VkDecoderGlobalState.cpp b/host/vulkan/VkDecoderGlobalState.cpp
index 46ea389..647927f 100644
--- a/host/vulkan/VkDecoderGlobalState.cpp
+++ b/host/vulkan/VkDecoderGlobalState.cpp
@@ -2619,13 +2619,16 @@
 
         VkResult result = deviceDispatch->vkCreateGraphicsPipelines(
             device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
-        if (result != VK_SUCCESS) {
+        if (result != VK_SUCCESS && result != VK_PIPELINE_COMPILE_REQUIRED) {
             return result;
         }
 
         std::lock_guard<std::recursive_mutex> lock(mLock);
 
         for (uint32_t i = 0; i < createInfoCount; i++) {
+            if (!pPipelines[i]) {
+                continue;
+            }
             auto& pipelineInfo = mPipelineInfo[pPipelines[i]];
             pipelineInfo.device = device;