diff options
| author | 2019-06-11 07:20:27 -0400 | |
|---|---|---|
| committer | 2019-06-20 21:38:34 -0300 | |
| commit | b01f9c8a7090fa056ca564593eabcebab946ef41 (patch) | |
| tree | 5f231b6ee3552e609c718f849b8312dd95ed48d0 /src/video_core/texture_cache | |
| parent | texture_cache: correct mutex locks (diff) | |
| download | yuzu-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.h | 9 |
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 | ||
| 220 | protected: | 220 | protected: |
| 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); |