mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-06-06 01:13:45 -04:00
[vk] handle mali/adreno5xx driver bug returning VK_INCOMPLETE on graphics pipeline creation (#3383)
Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3383 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
This commit is contained in:
parent
f39e985434
commit
5027aecf77
1 changed files with 9 additions and 4 deletions
|
|
@ -725,10 +725,15 @@ PipelineLayout Device::CreatePipelineLayout(const VkPipelineLayoutCreateInfo& ci
|
||||||
return PipelineLayout(object, handle, *dld);
|
return PipelineLayout(object, handle, *dld);
|
||||||
}
|
}
|
||||||
|
|
||||||
Pipeline Device::CreateGraphicsPipeline(const VkGraphicsPipelineCreateInfo& ci,
|
Pipeline Device::CreateGraphicsPipeline(const VkGraphicsPipelineCreateInfo& ci, VkPipelineCache cache) const {
|
||||||
VkPipelineCache cache) const {
|
VkPipeline object = VK_NULL_HANDLE;
|
||||||
VkPipeline object;
|
auto const result = dld->vkCreateGraphicsPipelines(handle, cache, 1, &ci, nullptr, &object);
|
||||||
Check(dld->vkCreateGraphicsPipelines(handle, cache, 1, &ci, nullptr, &object));
|
// Adreno 5xx drivers do not properly return when a graphics pipeline fails to be created
|
||||||
|
// Some (unkown) Mali drivers also do not properly return
|
||||||
|
// This result code is out of spec, but should be handled as "kinda working"
|
||||||
|
if (result == VK_INCOMPLETE)
|
||||||
|
return Pipeline(object, handle, *dld);
|
||||||
|
Check(result);
|
||||||
return Pipeline(object, handle, *dld);
|
return Pipeline(object, handle, *dld);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue