GS:HW: Default rt size to 0

This commit is contained in:
TellowKrinkle 2022-01-15 22:39:54 -06:00 committed by refractionpcsx2
parent 5fdfbd470b
commit 92f2cef4d1
3 changed files with 7 additions and 14 deletions

View File

@ -107,7 +107,7 @@ inline FILE* px_fopen(const std::string& filename, const std::string& mode)
#ifdef ENABLE_ACCURATE_BUFFER_EMULATION
static const GSVector2i default_rt_size(2048, 2048);
#else
static const GSVector2i default_rt_size(1280, 1024);
static const GSVector2i default_rt_size(0, 0);
#endif
// Maximum texture size to skip preload/hash path.

View File

@ -135,7 +135,7 @@ void GSRendererHW::SetScaling()
// No need to resize for native/custom resolutions as default size will be enough for native and we manually get RT Buffer size for custom.
// don't resize until the display rectangle and register states are stabilized.
if (GSConfig.UpscaleMultiplier <= 1 || good_rt_size)
if (good_rt_size)
return;
m_tc->RemovePartial();
@ -293,9 +293,6 @@ void GSRendererHW::Reset()
void GSRendererHW::VSync(u32 field, bool registers_written)
{
//Check if the frame buffer width or display width has changed
SetScaling();
if (m_reset)
{
m_tc->RemoveAll();
@ -308,6 +305,9 @@ void GSRendererHW::VSync(u32 field, bool registers_written)
m_reset = false;
}
//Check if the frame buffer width or display width has changed
SetScaling();
GSRenderer::VSync(field, registers_written);
m_tc->IncAge();

View File

@ -2243,15 +2243,8 @@ void GSTextureCache::Target::Update()
// Alternate
// 1/ uses multiple vertex rectangle
GSVector2i t_size = default_rt_size;
// Ensure buffer width is at least of the minimum required value.
// Probably not necessary but doesn't hurt to be on the safe side.
// I've seen some games use buffer sizes over 1024, which might bypass our default limit
int buffer_width = m_TEX0.TBW << 6;
t_size.x = std::max(buffer_width, t_size.x);
GSVector4i r = m_dirty.GetDirtyRectAndClear(m_TEX0, t_size);
GSVector4i unscaled_size = GSVector4i(GSVector4(m_texture->GetSize()) / GSVector4(m_texture->GetScale()));
GSVector4i r = m_dirty.GetDirtyRectAndClear(m_TEX0, GSVector2i(unscaled_size.x, unscaled_size.y));
if (r.rempty())
return;