summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorGravatar Fernando S2022-08-31 10:40:45 +0200
committerGravatar GitHub2022-08-31 10:40:45 +0200
commita83a5d2e4c8932df864dd4cea2b04d87a12c8760 (patch)
tree53bd0ce10e965110c7811bd227443fd51e054eff /src/video_core/renderer_vulkan
parentMerge pull request #8809 from german77/finally_is_fixed (diff)
parentvideo_code: support rectangle texture (diff)
downloadyuzu-a83a5d2e4c8932df864dd4cea2b04d87a12c8760.tar.gz
yuzu-a83a5d2e4c8932df864dd4cea2b04d87a12c8760.tar.xz
yuzu-a83a5d2e4c8932df864dd4cea2b04d87a12c8760.zip
Merge pull request #8752 from vonchenplus/rectangle_texture
video_code: support rectangle texture
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp4
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.cpp9
2 files changed, 6 insertions, 7 deletions
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index 43cc94fab..3adad5af4 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -434,7 +434,9 @@ void PipelineCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading
434 state.statistics.get(), false)}; 434 state.statistics.get(), false)};
435 435
436 std::scoped_lock lock{state.mutex}; 436 std::scoped_lock lock{state.mutex};
437 graphics_cache.emplace(key, std::move(pipeline)); 437 if (pipeline) {
438 graphics_cache.emplace(key, std::move(pipeline));
439 }
438 ++state.built; 440 ++state.built;
439 if (state.has_loaded) { 441 if (state.has_loaded) {
440 callback(VideoCore::LoadCallbackStage::Build, state.built, state.total); 442 callback(VideoCore::LoadCallbackStage::Build, state.built, state.total);
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
index 16463a892..caca79d79 100644
--- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
@@ -230,6 +230,7 @@ constexpr VkBorderColor ConvertBorderColor(const std::array<float, 4>& color) {
230 case Shader::TextureType::Color1D: 230 case Shader::TextureType::Color1D:
231 return VK_IMAGE_VIEW_TYPE_1D; 231 return VK_IMAGE_VIEW_TYPE_1D;
232 case Shader::TextureType::Color2D: 232 case Shader::TextureType::Color2D:
233 case Shader::TextureType::Color2DRect:
233 return VK_IMAGE_VIEW_TYPE_2D; 234 return VK_IMAGE_VIEW_TYPE_2D;
234 case Shader::TextureType::ColorCube: 235 case Shader::TextureType::ColorCube:
235 return VK_IMAGE_VIEW_TYPE_CUBE; 236 return VK_IMAGE_VIEW_TYPE_CUBE;
@@ -254,6 +255,7 @@ constexpr VkBorderColor ConvertBorderColor(const std::array<float, 4>& color) {
254 case VideoCommon::ImageViewType::e1D: 255 case VideoCommon::ImageViewType::e1D:
255 return VK_IMAGE_VIEW_TYPE_1D; 256 return VK_IMAGE_VIEW_TYPE_1D;
256 case VideoCommon::ImageViewType::e2D: 257 case VideoCommon::ImageViewType::e2D:
258 case VideoCommon::ImageViewType::Rect:
257 return VK_IMAGE_VIEW_TYPE_2D; 259 return VK_IMAGE_VIEW_TYPE_2D;
258 case VideoCommon::ImageViewType::Cube: 260 case VideoCommon::ImageViewType::Cube:
259 return VK_IMAGE_VIEW_TYPE_CUBE; 261 return VK_IMAGE_VIEW_TYPE_CUBE;
@@ -265,9 +267,6 @@ constexpr VkBorderColor ConvertBorderColor(const std::array<float, 4>& color) {
265 return VK_IMAGE_VIEW_TYPE_2D_ARRAY; 267 return VK_IMAGE_VIEW_TYPE_2D_ARRAY;
266 case VideoCommon::ImageViewType::CubeArray: 268 case VideoCommon::ImageViewType::CubeArray:
267 return VK_IMAGE_VIEW_TYPE_CUBE_ARRAY; 269 return VK_IMAGE_VIEW_TYPE_CUBE_ARRAY;
268 case VideoCommon::ImageViewType::Rect:
269 UNIMPLEMENTED_MSG("Rect image view");
270 return VK_IMAGE_VIEW_TYPE_2D;
271 case VideoCommon::ImageViewType::Buffer: 270 case VideoCommon::ImageViewType::Buffer:
272 ASSERT_MSG(false, "Texture buffers can't be image views"); 271 ASSERT_MSG(false, "Texture buffers can't be image views");
273 return VK_IMAGE_VIEW_TYPE_1D; 272 return VK_IMAGE_VIEW_TYPE_1D;
@@ -1579,6 +1578,7 @@ ImageView::ImageView(TextureCacheRuntime& runtime, const VideoCommon::ImageViewI
1579 break; 1578 break;
1580 case VideoCommon::ImageViewType::e2D: 1579 case VideoCommon::ImageViewType::e2D:
1581 case VideoCommon::ImageViewType::e2DArray: 1580 case VideoCommon::ImageViewType::e2DArray:
1581 case VideoCommon::ImageViewType::Rect:
1582 create(TextureType::Color2D, 1); 1582 create(TextureType::Color2D, 1);
1583 create(TextureType::ColorArray2D, std::nullopt); 1583 create(TextureType::ColorArray2D, std::nullopt);
1584 render_target = Handle(Shader::TextureType::ColorArray2D); 1584 render_target = Handle(Shader::TextureType::ColorArray2D);
@@ -1592,9 +1592,6 @@ ImageView::ImageView(TextureCacheRuntime& runtime, const VideoCommon::ImageViewI
1592 create(TextureType::ColorCube, 6); 1592 create(TextureType::ColorCube, 6);
1593 create(TextureType::ColorArrayCube, std::nullopt); 1593 create(TextureType::ColorArrayCube, std::nullopt);
1594 break; 1594 break;
1595 case VideoCommon::ImageViewType::Rect:
1596 UNIMPLEMENTED();
1597 break;
1598 case VideoCommon::ImageViewType::Buffer: 1595 case VideoCommon::ImageViewType::Buffer:
1599 ASSERT(false); 1596 ASSERT(false);
1600 break; 1597 break;