texture_cache: eliminate accelerated depth->color/color->depth copies due to driver instability.

This commit is contained in:
Fernando Sahmkow 2019-06-11 07:20:27 -04:00 committed by ReinUsesLisp
parent 561ce29c98
commit b01f9c8a70
4 changed files with 6 additions and 22 deletions

View file

@ -218,12 +218,6 @@ public:
}
protected:
// This structure is used for communicating with the backend, on which behaviors
// it supports and what not, to avoid assuming certain things about hardware.
// The backend is RESPONSIBLE for filling this settings on creation.
struct Support {
bool depth_color_image_copies;
} support_info;
TextureCache(Core::System& system, VideoCore::RasterizerInterface& rasterizer)
: system{system}, rasterizer{rasterizer} {
@ -389,8 +383,7 @@ private:
const auto gpu_addr = current_surface->GetGpuAddr();
TSurface new_surface = GetUncachedSurface(gpu_addr, params);
const auto& cr_params = current_surface->GetSurfaceParams();
if (cr_params.type != params.type && (!support_info.depth_color_image_copies ||
cr_params.component_type != params.component_type)) {
if (cr_params.type != params.type || (cr_params.component_type != params.component_type)) {
BufferCopy(current_surface, new_surface);
} else {
std::vector<CopyParams> bricks = current_surface->BreakDown(params);