mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 05:47:56 -07:00
VKPipeline: Fix render pass and add pipeline layout fields
This commit is contained in:
parent
a61fcb0088
commit
5e5dfe686a
@ -14,7 +14,9 @@
|
|||||||
|
|
||||||
namespace Vulkan
|
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.
|
// Get render pass for config.
|
||||||
VkRenderPass render_pass = g_object_cache->GetRenderPass(
|
VkRenderPass render_pass = g_object_cache->GetRenderPass(
|
||||||
Util::GetVkFormatForHostTextureFormat(config.framebuffer_state.color_texture_format),
|
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.
|
// Get pipeline layout.
|
||||||
VkPipelineLayout pipeline_layout;
|
VkPipelineLayout pipeline_layout;
|
||||||
@ -68,6 +71,6 @@ std::unique_ptr<VKPipeline> VKPipeline::Create(const AbstractPipelineConfig& con
|
|||||||
if (pipeline == VK_NULL_HANDLE)
|
if (pipeline == VK_NULL_HANDLE)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
return std::make_unique<VKPipeline>(pipeline);
|
return std::make_unique<VKPipeline>(pipeline, pipeline_layout, config.usage);
|
||||||
}
|
}
|
||||||
} // namespace Vulkan
|
} // namespace Vulkan
|
||||||
|
@ -14,14 +14,19 @@ namespace Vulkan
|
|||||||
class VKPipeline final : public AbstractPipeline
|
class VKPipeline final : public AbstractPipeline
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit VKPipeline(VkPipeline pipeline);
|
explicit VKPipeline(VkPipeline pipeline, VkPipelineLayout pipeline_layout,
|
||||||
|
AbstractPipelineUsage usage);
|
||||||
~VKPipeline() override;
|
~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);
|
static std::unique_ptr<VKPipeline> Create(const AbstractPipelineConfig& config);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
VkPipeline m_pipeline;
|
VkPipeline m_pipeline;
|
||||||
|
VkPipelineLayout m_pipeline_layout;
|
||||||
|
AbstractPipelineUsage m_usage;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Vulkan
|
} // namespace Vulkan
|
||||||
|
Loading…
Reference in New Issue
Block a user