summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2018-02-24 23:10:22 +1000
committerStenzek <stenzek@gmail.com>2018-03-10 15:56:13 +1000
commit5e5dfe686ab04edcaf18a2dee0f18407645384e4 (patch)
tree8da9dead7691fd31a87bae984e3fef09c76e8ed1 /Source/Core
parenta61fcb0088a0aef0b2aa79a84e5d7dc1252bc317 (diff)
VKPipeline: Fix render pass and add pipeline layout fields
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/VideoBackends/Vulkan/VKPipeline.cpp9
-rw-r--r--Source/Core/VideoBackends/Vulkan/VKPipeline.h9
2 files changed, 13 insertions, 5 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/VKPipeline.cpp b/Source/Core/VideoBackends/Vulkan/VKPipeline.cpp
index df245644c4..c6c0aa0c85 100644
--- a/Source/Core/VideoBackends/Vulkan/VKPipeline.cpp
+++ b/Source/Core/VideoBackends/Vulkan/VKPipeline.cpp
@@ -14,7 +14,9 @@
namespace Vulkan
{
-VKPipeline::VKPipeline(VkPipeline pipeline) : m_pipeline(pipeline)
+VKPipeline::VKPipeline(VkPipeline pipeline, VkPipelineLayout pipeline_layout,
+ AbstractPipelineUsage usage)
+ : m_pipeline(pipeline), m_pipeline_layout(pipeline_layout), m_usage(usage)
{
}
@@ -30,7 +32,8 @@ std::unique_ptr<VKPipeline> VKPipeline::Create(const AbstractPipelineConfig& con
// Get render pass for config.
VkRenderPass render_pass = g_object_cache->GetRenderPass(
Util::GetVkFormatForHostTextureFormat(config.framebuffer_state.color_texture_format),
- VK_FORMAT_UNDEFINED, config.framebuffer_state.samples, VK_ATTACHMENT_LOAD_OP_LOAD);
+ Util::GetVkFormatForHostTextureFormat(config.framebuffer_state.depth_texture_format),
+ config.framebuffer_state.samples, VK_ATTACHMENT_LOAD_OP_LOAD);
// Get pipeline layout.
VkPipelineLayout pipeline_layout;
@@ -68,6 +71,6 @@ std::unique_ptr<VKPipeline> VKPipeline::Create(const AbstractPipelineConfig& con
if (pipeline == VK_NULL_HANDLE)
return nullptr;
- return std::make_unique<VKPipeline>(pipeline);
+ return std::make_unique<VKPipeline>(pipeline, pipeline_layout, config.usage);
}
} // namespace Vulkan
diff --git a/Source/Core/VideoBackends/Vulkan/VKPipeline.h b/Source/Core/VideoBackends/Vulkan/VKPipeline.h
index ad66313e4c..767215062a 100644
--- a/Source/Core/VideoBackends/Vulkan/VKPipeline.h
+++ b/Source/Core/VideoBackends/Vulkan/VKPipeline.h
@@ -14,14 +14,19 @@ namespace Vulkan
class VKPipeline final : public AbstractPipeline
{
public:
- explicit VKPipeline(VkPipeline pipeline);
+ explicit VKPipeline(VkPipeline pipeline, VkPipelineLayout pipeline_layout,
+ AbstractPipelineUsage usage);
~VKPipeline() override;
- VkPipeline GetPipeline() const { return m_pipeline; }
+ VkPipeline GetVkPipeline() const { return m_pipeline; }
+ VkPipelineLayout GetVkPipelineLayout() const { return m_pipeline_layout; }
+ AbstractPipelineUsage GetUsage() const { return m_usage; }
static std::unique_ptr<VKPipeline> Create(const AbstractPipelineConfig& config);
private:
VkPipeline m_pipeline;
+ VkPipelineLayout m_pipeline_layout;
+ AbstractPipelineUsage m_usage;
};
} // namespace Vulkan