summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2020-01-16 18:23:10 -0300
committerGravatar ReinUsesLisp2020-01-16 18:23:10 -0300
commitf09cd52980724068a37fb99b1edd50e99d4d8703 (patch)
tree49c1c69b277803704fd275dd0b45917be9b84290
parentvk_texture_cache: Fix typo in commentary (diff)
downloadyuzu-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.cpp17
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.h13
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
244View CachedSurface::CreateViewInner(const ViewParams& params, bool is_proxy) { 244View 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
251void CachedSurface::UploadBuffer(const std::vector<u8>& staging_buffer) { 249void 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
329CachedSurfaceView::~CachedSurfaceView() = default; 324CachedSurfaceView::~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
391bool CachedSurfaceView::IsOverlapping(const View& rhs) const {
392 // TODO(Rodrigo): Also test for layer and mip level overlaps.
393 return &surface == &rhs->surface;
394}
395
396VKTextureCache::VKTextureCache(Core::System& system, VideoCore::RasterizerInterface& rasterizer, 386VKTextureCache::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,
479void VKTextureCache::BufferCopy(Surface& src_surface, Surface& dst_surface) { 469void 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
31namespace Core { 24namespace Core {
32class System; 25class 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{};