diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp | 18 |
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 { | |||
| 201 | static constexpr bool has_images = false; | 201 | static constexpr bool has_images = false; |
| 202 | }; | 202 | }; |
| 203 | 203 | ||
| 204 | struct SimpleStorageSpec { | ||
| 205 | static constexpr std::array<bool, 5> enabled_stages{true, false, false, false, true}; | ||
| 206 | static constexpr bool has_storage_buffers = true; | ||
| 207 | static constexpr bool has_texture_buffers = false; | ||
| 208 | static constexpr bool has_image_buffers = false; | ||
| 209 | static constexpr bool has_images = false; | ||
| 210 | }; | ||
| 211 | |||
| 212 | struct SimpleImageSpec { | ||
| 213 | static constexpr std::array<bool, 5> enabled_stages{true, false, false, false, true}; | ||
| 214 | static constexpr bool has_storage_buffers = false; | ||
| 215 | static constexpr bool has_texture_buffers = false; | ||
| 216 | static constexpr bool has_image_buffers = false; | ||
| 217 | static constexpr bool has_images = true; | ||
| 218 | }; | ||
| 219 | |||
| 204 | struct DefaultSpec { | 220 | struct DefaultSpec { |
| 205 | static constexpr std::array<bool, 5> enabled_stages{true, true, true, true, true}; | 221 | static constexpr std::array<bool, 5> enabled_stages{true, true, true, true, true}; |
| 206 | static constexpr bool has_storage_buffers = true; | 222 | static constexpr bool has_storage_buffers = true; |
| @@ -211,7 +227,7 @@ struct DefaultSpec { | |||
| 211 | 227 | ||
| 212 | ConfigureFuncPtr ConfigureFunc(const std::array<vk::ShaderModule, NUM_STAGES>& modules, | 228 | ConfigureFuncPtr ConfigureFunc(const std::array<vk::ShaderModule, NUM_STAGES>& modules, |
| 213 | const std::array<Shader::Info, NUM_STAGES>& infos) { | 229 | const std::array<Shader::Info, NUM_STAGES>& infos) { |
| 214 | return FindSpec<SimpleVertexSpec, SimpleVertexFragmentSpec, DefaultSpec>(modules, infos); | 230 | return FindSpec<SimpleVertexSpec, SimpleVertexFragmentSpec, SimpleStorageSpec, SimpleImageSpec, DefaultSpec>(modules, infos); |
| 215 | } | 231 | } |
| 216 | } // Anonymous namespace | 232 | } // Anonymous namespace |
| 217 | 233 | ||