[WIP] rsx: Improve memory inheritance hierachy

- Cascade memory writes by invalidating 'downstream' subsurfaces
- Fixup; always resolve for overlapping surfaces before sampling (force
  atlas gather test)
This commit is contained in:
kd-11 2018-08-01 23:55:14 +03:00 committed by kd-11
parent ba5b59dc59
commit f8a9b1fa30
4 changed files with 186 additions and 41 deletions

View file

@ -1029,9 +1029,9 @@ void GLGSRender::clear_surface(u32 arg)
gl_state.clear_depth(f32(clear_depth) / max_depth_value);
mask |= GLenum(gl::buffers::depth);
if (auto ds = std::get<1>(m_rtts.m_bound_depth_stencil))
if (const auto address = std::get<0>(m_rtts.m_bound_depth_stencil))
{
ds->on_write();
m_rtts.on_write(address);
}
}
@ -1075,9 +1075,9 @@ void GLGSRender::clear_surface(u32 arg)
for (auto &rtt : m_rtts.m_bound_render_targets)
{
if (auto surface = std::get<1>(rtt))
if (const auto address = std::get<0>(rtt))
{
surface->on_write();
m_rtts.on_write(address);
}
}