Texture_Cache correct some bugs introduced on rescaling
This commit is contained in:
committed by
FernandoS27
parent
fdfa328e38
commit
a7bceb8a2f
@@ -413,11 +413,11 @@ protected:
|
||||
return new_surface;
|
||||
}
|
||||
|
||||
std::pair<TSurface, TView> GetFermiSurface(const Tegra::Engines::Fermi2D::Regs::Surface& config,
|
||||
const bool is_render) {
|
||||
std::pair<TSurface, TView> GetFermiSurface(
|
||||
const Tegra::Engines::Fermi2D::Regs::Surface& config) {
|
||||
SurfaceParams params = SurfaceParams::CreateForFermiCopySurface(config);
|
||||
const GPUVAddr gpu_addr = config.Address();
|
||||
return GetSurface(gpu_addr, params, true, is_render);
|
||||
return GetSurface(gpu_addr, params, true, false);
|
||||
}
|
||||
|
||||
// Must be called by child's create surface
|
||||
@@ -572,13 +572,18 @@ private:
|
||||
}
|
||||
}
|
||||
if (IsResScannerEnabled()) {
|
||||
bool is_candidate = IsInRSDatabase(current_surface);
|
||||
if (is_candidate) {
|
||||
if (IsInRSDatabase(current_surface)) {
|
||||
if (IsRSBlacklisted(new_surface)) {
|
||||
UnmarkScanner(current_surface);
|
||||
} else {
|
||||
MarkScanner(new_surface);
|
||||
}
|
||||
} else if (IsInRSDatabase(new_surface)) {
|
||||
if (IsRSBlacklisted(current_surface)) {
|
||||
UnmarkScanner(new_surface);
|
||||
} else {
|
||||
MarkScanner(current_surface);
|
||||
}
|
||||
}
|
||||
}
|
||||
Unregister(current_surface, UnregisterReason::Rebuilt);
|
||||
@@ -731,7 +736,7 @@ private:
|
||||
|
||||
// If none are found, we are done. we just load the surface and create it.
|
||||
if (overlaps.empty()) {
|
||||
return InitializeSurface(gpu_addr, params, preserve_contents && !is_render);
|
||||
return InitializeSurface(gpu_addr, params, preserve_contents);
|
||||
}
|
||||
|
||||
// Step 3
|
||||
|
||||
Reference in New Issue
Block a user