mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-05 22:41:25 +12:00
vk: Enable shading rate hack for all GPUs
- This is a hack, ideally we should be using coverage-based masking when writing the exploded texture. - We do not have access to the fragment coverage mask and it is non-trivial to integrate it in a competent manner.
This commit is contained in:
parent
f526027778
commit
d6aa834b5f
1 changed files with 4 additions and 8 deletions
|
@ -1737,14 +1737,10 @@ bool VKGSRender::load_program()
|
||||||
rsx::method_registers.msaa_alpha_to_coverage_enabled(),
|
rsx::method_registers.msaa_alpha_to_coverage_enabled(),
|
||||||
alpha_to_one_enable);
|
alpha_to_one_enable);
|
||||||
|
|
||||||
if (const auto chip_family = vk::get_chip_family();
|
// A problem observed on multiple GPUs is that interior geometry edges can resolve 0 samples unless we force shading rate of 1.
|
||||||
chip_family == vk::chip_class::AMD_navi1x ||
|
// For whatever reason, the way MSAA images are 'resolved' on PS3 bypasses this issue.
|
||||||
chip_family == vk::chip_class::AMD_navi2x)
|
// NOTE: We do not do image resolve at all, the output is merely 'exploded' and the guest application is responsible for doing the resolve in software as it is on real hardware.
|
||||||
{
|
properties.state.set_multisample_shading_rate(1.f);
|
||||||
// NAVI family has a GPU bug with MSAA where shading rate is not correctly initialized if left disabled
|
|
||||||
// Manually initialize it and set it to spec default (full shading)
|
|
||||||
properties.state.set_multisample_shading_rate(1.f);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
properties.renderpass_key = m_current_renderpass_key;
|
properties.renderpass_key = m_current_renderpass_key;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue