|
|
@ -46,6 +46,8 @@ struct FormatTuple {
|
|
|
|
params.height = Common::AlignUp(config.tic.Height(), GetCompressionFactor(params.pixel_format));
|
|
|
|
params.height = Common::AlignUp(config.tic.Height(), GetCompressionFactor(params.pixel_format));
|
|
|
|
params.unaligned_height = config.tic.Height();
|
|
|
|
params.unaligned_height = config.tic.Height();
|
|
|
|
params.size_in_bytes = params.SizeInBytes();
|
|
|
|
params.size_in_bytes = params.SizeInBytes();
|
|
|
|
|
|
|
|
params.cache_width = Common::AlignUp(params.width, 16);
|
|
|
|
|
|
|
|
params.cache_height = Common::AlignUp(params.height, 16);
|
|
|
|
return params;
|
|
|
|
return params;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -63,6 +65,8 @@ struct FormatTuple {
|
|
|
|
params.height = config.height;
|
|
|
|
params.height = config.height;
|
|
|
|
params.unaligned_height = config.height;
|
|
|
|
params.unaligned_height = config.height;
|
|
|
|
params.size_in_bytes = params.SizeInBytes();
|
|
|
|
params.size_in_bytes = params.SizeInBytes();
|
|
|
|
|
|
|
|
params.cache_width = Common::AlignUp(params.width, 16);
|
|
|
|
|
|
|
|
params.cache_height = Common::AlignUp(params.height, 16);
|
|
|
|
return params;
|
|
|
|
return params;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -82,6 +86,8 @@ struct FormatTuple {
|
|
|
|
params.height = zeta_height;
|
|
|
|
params.height = zeta_height;
|
|
|
|
params.unaligned_height = zeta_height;
|
|
|
|
params.unaligned_height = zeta_height;
|
|
|
|
params.size_in_bytes = params.SizeInBytes();
|
|
|
|
params.size_in_bytes = params.SizeInBytes();
|
|
|
|
|
|
|
|
params.cache_width = Common::AlignUp(params.width, 16);
|
|
|
|
|
|
|
|
params.cache_height = Common::AlignUp(params.height, 16);
|
|
|
|
return params;
|
|
|
|
return params;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -680,12 +686,12 @@ Surface RasterizerCacheOpenGL::GetSurface(const SurfaceParams& params) {
|
|
|
|
// If use_accurate_framebuffers is enabled, always load from memory
|
|
|
|
// If use_accurate_framebuffers is enabled, always load from memory
|
|
|
|
FlushSurface(surface);
|
|
|
|
FlushSurface(surface);
|
|
|
|
UnregisterSurface(surface);
|
|
|
|
UnregisterSurface(surface);
|
|
|
|
} else if (surface->GetSurfaceParams() != params) {
|
|
|
|
} else if (surface->GetSurfaceParams().IsCompatibleSurface(params)) {
|
|
|
|
// If surface parameters changed, recreate the surface from the old one
|
|
|
|
|
|
|
|
return RecreateSurface(surface, params);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
// Use the cached surface as-is
|
|
|
|
// Use the cached surface as-is
|
|
|
|
return surface;
|
|
|
|
return surface;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
// If surface parameters changed, recreate the surface from the old one
|
|
|
|
|
|
|
|
return RecreateSurface(surface, params);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|