summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2022-12-06 17:36:06 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2023-01-01 22:43:58 +0100
commit4c82e47edda85312e57fddfc4f87a827bda7650c (patch)
treeb393ad83bc6387674984a0d067f49eb8299aa595
parentVulkan: Implement Dynamic State 3 (diff)
downloadyuzu-4c82e47edda85312e57fddfc4f87a827bda7650c.tar
yuzu-4c82e47edda85312e57fddfc4f87a827bda7650c.tar.gz
yuzu-4c82e47edda85312e57fddfc4f87a827bda7650c.tar.bz2
yuzu-4c82e47edda85312e57fddfc4f87a827bda7650c.tar.lz
yuzu-4c82e47edda85312e57fddfc4f87a827bda7650c.tar.xz
yuzu-4c82e47edda85312e57fddfc4f87a827bda7650c.tar.zst
yuzu-4c82e47edda85312e57fddfc4f87a827bda7650c.zip
-rw-r--r--src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
index dab3d7e3f..c69ebe396 100644
--- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
+++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
@@ -201,6 +201,22 @@ struct SimpleVertexSpec {
static constexpr bool has_images = false;
};
+struct SimpleStorageSpec {
+ static constexpr std::array<bool, 5> enabled_stages{true, false, false, false, true};
+ static constexpr bool has_storage_buffers = true;
+ static constexpr bool has_texture_buffers = false;
+ static constexpr bool has_image_buffers = false;
+ static constexpr bool has_images = false;
+};
+
+struct SimpleImageSpec {
+ static constexpr std::array<bool, 5> enabled_stages{true, false, false, false, true};
+ static constexpr bool has_storage_buffers = false;
+ static constexpr bool has_texture_buffers = false;
+ static constexpr bool has_image_buffers = false;
+ static constexpr bool has_images = true;
+};
+
struct DefaultSpec {
static constexpr std::array<bool, 5> enabled_stages{true, true, true, true, true};
static constexpr bool has_storage_buffers = true;
@@ -211,7 +227,7 @@ struct DefaultSpec {
ConfigureFuncPtr ConfigureFunc(const std::array<vk::ShaderModule, NUM_STAGES>& modules,
const std::array<Shader::Info, NUM_STAGES>& infos) {
- return FindSpec<SimpleVertexSpec, SimpleVertexFragmentSpec, DefaultSpec>(modules, infos);
+ return FindSpec<SimpleVertexSpec, SimpleVertexFragmentSpec, SimpleStorageSpec, SimpleImageSpec, DefaultSpec>(modules, infos);
}
} // Anonymous namespace