summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/ObjectCache.h
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2016-11-13 15:38:32 +1000
committerStenzek <stenzek@gmail.com>2016-12-04 20:10:13 +1000
commitcd3481fbc7c82e8a1a44bff7239928a8faabbb42 (patch)
treed380e1055ed4b66dc4b0ba6c1fac47006e09e5c2 /Source/Core/VideoBackends/Vulkan/ObjectCache.h
parentd1c89db8c809a89d5576dc9ea524629cfc4d29a6 (diff)
Vulkan: Differentiate between descriptor set layouts and bind points
This also moves the pipeline and descriptor set layouts used for texture conversion (texel buffers) to ObjectCache, and shares a binding location with the SSBO set.
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/ObjectCache.h')
-rw-r--r--Source/Core/VideoBackends/Vulkan/ObjectCache.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/ObjectCache.h b/Source/Core/VideoBackends/Vulkan/ObjectCache.h
index 26593d139d..76ed886ecd 100644
--- a/Source/Core/VideoBackends/Vulkan/ObjectCache.h
+++ b/Source/Core/VideoBackends/Vulkan/ObjectCache.h
@@ -70,17 +70,23 @@ public:
// - Same as standard, plus a single SSBO accessible from PS
// - Push Constant
// - Same as standard, plus 128 bytes of push constants, accessible from all stages.
+ // - Texture Conversion
+ // - Same as push constant, plus a single texel buffer accessible from PS.
//
// All three pipeline layouts use the same descriptor set layouts, but the final descriptor set
// (SSBO) is only required when using the BBox Enabled pipeline layout.
//
- VkDescriptorSetLayout GetDescriptorSetLayout(DESCRIPTOR_SET set) const
+ VkDescriptorSetLayout GetDescriptorSetLayout(DESCRIPTOR_SET_LAYOUT set) const
{
return m_descriptor_set_layouts[set];
}
VkPipelineLayout GetStandardPipelineLayout() const { return m_standard_pipeline_layout; }
VkPipelineLayout GetBBoxPipelineLayout() const { return m_bbox_pipeline_layout; }
VkPipelineLayout GetPushConstantPipelineLayout() const { return m_push_constant_pipeline_layout; }
+ VkPipelineLayout GetTextureConversionPipelineLayout() const
+ {
+ return m_texture_conversion_pipeline_layout;
+ }
// Shared utility shader resources
VertexFormat* GetUtilityShaderVertexFormat() const
{
@@ -157,11 +163,12 @@ private:
void DestroySharedShaders();
void DestroySamplers();
- std::array<VkDescriptorSetLayout, NUM_DESCRIPTOR_SETS> m_descriptor_set_layouts = {};
+ std::array<VkDescriptorSetLayout, NUM_DESCRIPTOR_SET_LAYOUTS> m_descriptor_set_layouts = {};
VkPipelineLayout m_standard_pipeline_layout = VK_NULL_HANDLE;
VkPipelineLayout m_bbox_pipeline_layout = VK_NULL_HANDLE;
VkPipelineLayout m_push_constant_pipeline_layout = VK_NULL_HANDLE;
+ VkPipelineLayout m_texture_conversion_pipeline_layout = VK_NULL_HANDLE;
std::unique_ptr<VertexFormat> m_utility_shader_vertex_format;
std::unique_ptr<StreamBuffer> m_utility_shader_vertex_buffer;