texture_cache: eliminate accelerated depth->color/color->depth copies due to driver instability.
This commit is contained in:
parent
561ce29c98
commit
b01f9c8a70
4 changed files with 6 additions and 22 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue