mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-06 06:51:26 +12:00
vk: Fix nul deref in spill code
- Restores code lost in a rebase
This commit is contained in:
parent
b7df539871
commit
2d4df57d87
1 changed files with 18 additions and 1 deletions
|
@ -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();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue