The ray tracing utils, when creating ray tracing pipelines and using
deferred operations, were using the VkPipeline pointer and handler
before the deferred operation had completed, which is against the spec.
Affected tests:
dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.*
dEQP-VK.ray_tracing_pipeline.large_shader_set.cpu_ht*
Components: Vulkan
VK-GL-CTS issue: 3588
Change-Id: Ied8f443c01e99878180130963b8988852171b8a0
};
VkPipeline object = DE_NULL;
VkResult result = vk.createRayTracingPipelinesKHR(device, deferredOperation.get(), DE_NULL, 1u, &pipelineCreateInfo, DE_NULL, &object);
- Move<VkPipeline> pipeline (check<VkPipeline>(object), Deleter<VkPipeline>(vk, device, DE_NULL));
if (m_deferredOperation)
{
finishDeferredOperation(vk, device, deferredOperation.get(), m_workerThreadCount, result == VK_OPERATION_NOT_DEFERRED_KHR);
}
+ Move<VkPipeline> pipeline (check<VkPipeline>(object), Deleter<VkPipeline>(vk, device, DE_NULL));
return pipeline;
}