[vk] handle mali/adreno5xx driver bug returning VK_INCOMPLETE on graphics pipeline creation
Signed-off-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
parent
998460b78b
commit
9b7dc8de45
|
|
@ -727,10 +727,14 @@ PipelineLayout Device::CreatePipelineLayout(const VkPipelineLayoutCreateInfo& ci
|
|||
return PipelineLayout(object, handle, *dld);
|
||||
}
|
||||
|
||||
Pipeline Device::CreateGraphicsPipeline(const VkGraphicsPipelineCreateInfo& ci,
|
||||
VkPipelineCache cache) const {
|
||||
VkPipeline object;
|
||||
Check(dld->vkCreateGraphicsPipelines(handle, cache, 1, &ci, nullptr, &object));
|
||||
Pipeline Device::CreateGraphicsPipeline(const VkGraphicsPipelineCreateInfo& ci, VkPipelineCache cache) const {
|
||||
VkPipeline object = VK_NULL_HANDLE;
|
||||
auto const result = dld->vkCreateGraphicsPipelines(handle, cache, 1, &ci, nullptr, &object);
|
||||
// Adreno 5xx drivers do not properly return error when a graphics pipeline fails to be created
|
||||
// Some (unkown) Mali drivers also do not properly return
|
||||
if (result == VK_INCOMPLETE)
|
||||
return Pipeline(object, handle, *dld);
|
||||
Check(result);
|
||||
return Pipeline(object, handle, *dld);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue