vk: Fix nul deref in spill code

- Restores code lost in a rebase
This commit is contained in:
kd-11 2021-07-17 00:22:25 +03:00 committed by kd-11
parent b7df539871
commit 2d4df57d87

View File

@ -540,7 +540,7 @@ namespace vk
break; break;
} }
vk::image* src = nullptr; vk::viewable_image* src = nullptr;
if (samples() == 1) [[likely]] if (samples() == 1) [[likely]]
{ {
src = this; src = this;
@ -588,7 +588,24 @@ namespace vk
if (msaa_flags & rsx::surface_state_flags::require_resolve) if (msaa_flags & rsx::surface_state_flags::require_resolve)
{ {
ensure(samples() > 1); ensure(samples() > 1);
const bool borrowed = [&]()
{
if (src != resolve_surface.get())
{
ensure(!resolve_surface);
resolve_surface.reset(src);
return true;
}
return false;
}();
resolve(cmd); resolve(cmd);
if (borrowed)
{
resolve_surface.release();
}
} }
const auto pdev = vk::get_current_renderer(); const auto pdev = vk::get_current_renderer();