summaryrefslogtreecommitdiff
path: root/src/video_core/texture_cache
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2019-06-11 07:20:27 -0400
committerGravatar ReinUsesLisp2019-06-20 21:38:34 -0300
commitb01f9c8a7090fa056ca564593eabcebab946ef41 (patch)
tree5f231b6ee3552e609c718f849b8312dd95ed48d0 /src/video_core/texture_cache
parenttexture_cache: correct mutex locks (diff)
downloadyuzu-b01f9c8a7090fa056ca564593eabcebab946ef41.tar.gz
yuzu-b01f9c8a7090fa056ca564593eabcebab946ef41.tar.xz
yuzu-b01f9c8a7090fa056ca564593eabcebab946ef41.zip
texture_cache: eliminate accelerated depth->color/color->depth copies due to driver instability.
Diffstat (limited to 'src/video_core/texture_cache')
-rw-r--r--src/video_core/texture_cache/texture_cache.h9
1 files changed, 1 insertions, 8 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h
index 503bd2b43..c95b1b976 100644
--- a/src/video_core/texture_cache/texture_cache.h
+++ b/src/video_core/texture_cache/texture_cache.h
@@ -218,12 +218,6 @@ public:
218 } 218 }
219 219
220protected: 220protected:
221 // This structure is used for communicating with the backend, on which behaviors
222 // it supports and what not, to avoid assuming certain things about hardware.
223 // The backend is RESPONSIBLE for filling this settings on creation.
224 struct Support {
225 bool depth_color_image_copies;
226 } support_info;
227 221
228 TextureCache(Core::System& system, VideoCore::RasterizerInterface& rasterizer) 222 TextureCache(Core::System& system, VideoCore::RasterizerInterface& rasterizer)
229 : system{system}, rasterizer{rasterizer} { 223 : system{system}, rasterizer{rasterizer} {
@@ -389,8 +383,7 @@ private:
389 const auto gpu_addr = current_surface->GetGpuAddr(); 383 const auto gpu_addr = current_surface->GetGpuAddr();
390 TSurface new_surface = GetUncachedSurface(gpu_addr, params); 384 TSurface new_surface = GetUncachedSurface(gpu_addr, params);
391 const auto& cr_params = current_surface->GetSurfaceParams(); 385 const auto& cr_params = current_surface->GetSurfaceParams();
392 if (cr_params.type != params.type && (!support_info.depth_color_image_copies || 386 if (cr_params.type != params.type || (cr_params.component_type != params.component_type)) {
393 cr_params.component_type != params.component_type)) {
394 BufferCopy(current_surface, new_surface); 387 BufferCopy(current_surface, new_surface);
395 } else { 388 } else {
396 std::vector<CopyParams> bricks = current_surface->BreakDown(params); 389 std::vector<CopyParams> bricks = current_surface->BreakDown(params);