diff options
| author | 2020-01-16 18:23:10 -0300 | |
|---|---|---|
| committer | 2020-01-16 18:23:10 -0300 | |
| commit | f09cd52980724068a37fb99b1edd50e99d4d8703 (patch) | |
| tree | 49c1c69b277803704fd275dd0b45917be9b84290 | |
| parent | vk_texture_cache: Fix typo in commentary (diff) | |
| download | yuzu-f09cd52980724068a37fb99b1edd50e99d4d8703.tar.gz yuzu-f09cd52980724068a37fb99b1edd50e99d4d8703.tar.xz yuzu-f09cd52980724068a37fb99b1edd50e99d4d8703.zip | |
vk_texture_cache: Address feedback
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.cpp | 17 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.h | 13 |
2 files changed, 8 insertions, 22 deletions
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 24defeee9..51b0d38a6 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp | |||
| @@ -242,10 +242,8 @@ View CachedSurface::CreateView(const ViewParams& params) { | |||
| 242 | } | 242 | } |
| 243 | 243 | ||
| 244 | View CachedSurface::CreateViewInner(const ViewParams& params, bool is_proxy) { | 244 | View CachedSurface::CreateViewInner(const ViewParams& params, bool is_proxy) { |
| 245 | auto view = std::make_shared<CachedSurfaceView>(device, *this, params, is_proxy); | ||
| 246 | views[params] = view; | ||
| 247 | // TODO(Rodrigo): Add name decorations | 245 | // TODO(Rodrigo): Add name decorations |
| 248 | return view; | 246 | return views[params] = std::make_shared<CachedSurfaceView>(device, *this, params, is_proxy); |
| 249 | } | 247 | } |
| 250 | 248 | ||
| 251 | void CachedSurface::UploadBuffer(const std::vector<u8>& staging_buffer) { | 249 | void CachedSurface::UploadBuffer(const std::vector<u8>& staging_buffer) { |
| @@ -320,11 +318,8 @@ CachedSurfaceView::CachedSurfaceView(const VKDevice& device, CachedSurface& surf | |||
| 320 | image{surface.GetImageHandle()}, buffer_view{surface.GetBufferViewHandle()}, | 318 | image{surface.GetImageHandle()}, buffer_view{surface.GetBufferViewHandle()}, |
| 321 | aspect_mask{surface.GetAspectMask()}, device{device}, surface{surface}, | 319 | aspect_mask{surface.GetAspectMask()}, device{device}, surface{surface}, |
| 322 | base_layer{params.base_layer}, num_layers{params.num_layers}, base_level{params.base_level}, | 320 | base_layer{params.base_layer}, num_layers{params.num_layers}, base_level{params.base_level}, |
| 323 | num_levels{params.num_levels} { | 321 | num_levels{params.num_levels}, image_view_type{image ? GetImageViewType(params.target) |
| 324 | if (image) { | 322 | : vk::ImageViewType{}} {} |
| 325 | image_view_type = GetImageViewType(params.target); | ||
| 326 | } | ||
| 327 | } | ||
| 328 | 323 | ||
| 329 | CachedSurfaceView::~CachedSurfaceView() = default; | 324 | CachedSurfaceView::~CachedSurfaceView() = default; |
| 330 | 325 | ||
| @@ -388,11 +383,6 @@ vk::ImageView CachedSurfaceView::GetHandle(SwizzleSource x_source, SwizzleSource | |||
| 388 | return last_image_view = *image_view; | 383 | return last_image_view = *image_view; |
| 389 | } | 384 | } |
| 390 | 385 | ||
| 391 | bool CachedSurfaceView::IsOverlapping(const View& rhs) const { | ||
| 392 | // TODO(Rodrigo): Also test for layer and mip level overlaps. | ||
| 393 | return &surface == &rhs->surface; | ||
| 394 | } | ||
| 395 | |||
| 396 | VKTextureCache::VKTextureCache(Core::System& system, VideoCore::RasterizerInterface& rasterizer, | 386 | VKTextureCache::VKTextureCache(Core::System& system, VideoCore::RasterizerInterface& rasterizer, |
| 397 | const VKDevice& device, VKResourceManager& resource_manager, | 387 | const VKDevice& device, VKResourceManager& resource_manager, |
| 398 | VKMemoryManager& memory_manager, VKScheduler& scheduler, | 388 | VKMemoryManager& memory_manager, VKScheduler& scheduler, |
| @@ -479,6 +469,7 @@ void VKTextureCache::ImageBlit(View& src_view, View& dst_view, | |||
| 479 | void VKTextureCache::BufferCopy(Surface& src_surface, Surface& dst_surface) { | 469 | void VKTextureCache::BufferCopy(Surface& src_surface, Surface& dst_surface) { |
| 480 | // Currently unimplemented. PBO copies should be dropped and we should use a render pass to | 470 | // Currently unimplemented. PBO copies should be dropped and we should use a render pass to |
| 481 | // convert from color to depth and viceversa. | 471 | // convert from color to depth and viceversa. |
| 472 | LOG_WARNING(Render_Vulkan, "Unimplemented"); | ||
| 482 | } | 473 | } |
| 483 | 474 | ||
| 484 | } // namespace Vulkan | 475 | } // namespace Vulkan |
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.h b/src/video_core/renderer_vulkan/vk_texture_cache.h index 4bc330c9f..d3edbe80c 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.h +++ b/src/video_core/renderer_vulkan/vk_texture_cache.h | |||
| @@ -5,15 +5,10 @@ | |||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include <memory> | 7 | #include <memory> |
| 8 | #include <tuple> | ||
| 9 | #include <unordered_map> | 8 | #include <unordered_map> |
| 10 | 9 | ||
| 11 | #include <boost/functional/hash.hpp> | ||
| 12 | #include <boost/icl/interval_map.hpp> | ||
| 13 | |||
| 14 | #include "common/assert.h" | 10 | #include "common/assert.h" |
| 15 | #include "common/common_types.h" | 11 | #include "common/common_types.h" |
| 16 | #include "common/hash.h" | ||
| 17 | #include "common/logging/log.h" | 12 | #include "common/logging/log.h" |
| 18 | #include "common/math_util.h" | 13 | #include "common/math_util.h" |
| 19 | #include "video_core/gpu.h" | 14 | #include "video_core/gpu.h" |
| @@ -22,11 +17,9 @@ | |||
| 22 | #include "video_core/renderer_vulkan/vk_image.h" | 17 | #include "video_core/renderer_vulkan/vk_image.h" |
| 23 | #include "video_core/renderer_vulkan/vk_memory_manager.h" | 18 | #include "video_core/renderer_vulkan/vk_memory_manager.h" |
| 24 | #include "video_core/renderer_vulkan/vk_scheduler.h" | 19 | #include "video_core/renderer_vulkan/vk_scheduler.h" |
| 25 | #include "video_core/surface.h" | ||
| 26 | #include "video_core/texture_cache/surface_base.h" | 20 | #include "video_core/texture_cache/surface_base.h" |
| 27 | #include "video_core/texture_cache/texture_cache.h" | 21 | #include "video_core/texture_cache/texture_cache.h" |
| 28 | #include "video_core/textures/decoders.h" | 22 | #include "video_core/textures/decoders.h" |
| 29 | #include "video_core/textures/texture.h" | ||
| 30 | 23 | ||
| 31 | namespace Core { | 24 | namespace Core { |
| 32 | class System; | 25 | class System; |
| @@ -141,7 +134,9 @@ public: | |||
| 141 | Tegra::Texture::SwizzleSource z_source, | 134 | Tegra::Texture::SwizzleSource z_source, |
| 142 | Tegra::Texture::SwizzleSource w_source); | 135 | Tegra::Texture::SwizzleSource w_source); |
| 143 | 136 | ||
| 144 | bool IsOverlapping(const View& rhs) const; | 137 | bool IsSameSurface(const CachedSurfaceView& rhs) const { |
| 138 | return &surface == &rhs.surface; | ||
| 139 | } | ||
| 145 | 140 | ||
| 146 | vk::ImageView GetHandle() { | 141 | vk::ImageView GetHandle() { |
| 147 | return GetHandle(Tegra::Texture::SwizzleSource::R, Tegra::Texture::SwizzleSource::G, | 142 | return GetHandle(Tegra::Texture::SwizzleSource::R, Tegra::Texture::SwizzleSource::G, |
| @@ -207,7 +202,7 @@ private: | |||
| 207 | const u32 num_layers; | 202 | const u32 num_layers; |
| 208 | const u32 base_level; | 203 | const u32 base_level; |
| 209 | const u32 num_levels; | 204 | const u32 num_levels; |
| 210 | vk::ImageViewType image_view_type{}; | 205 | const vk::ImageViewType image_view_type; |
| 211 | 206 | ||
| 212 | vk::ImageView last_image_view; | 207 | vk::ImageView last_image_view; |
| 213 | u32 last_swizzle{}; | 208 | u32 last_swizzle{}; |