for (i = 0; i < count; i++) {
// Clean up any locally allocated data structures
delete pPipeState[i];
+ pPipelines[i] = VK_NULL_HANDLE;
}
return VK_ERROR_VALIDATION_FAILED_EXT;
}
auto result = dev_data->dispatch_table.CreateComputePipelines(device, pipelineCache, count, pCreateInfos, pAllocator, pPipelines);
lock.lock();
for (i = 0; i < count; i++) {
- pPipeState[i]->pipeline = pPipelines[i];
- dev_data->pipelineMap[pPipeState[i]->pipeline] = pPipeState[i];
+ if (pPipelines[i] == VK_NULL_HANDLE) {
+ delete pPipeState[i];
+ }
+ else {
+ pPipeState[i]->pipeline = pPipelines[i];
+ dev_data->pipelineMap[pPipeState[i]->pipeline] = pPipeState[i];
+ }
}
return result;