ComputePipelineVk.h#
The PVRVk Compute Pipeline class, an interface to a VkPipeline that has been created for the VK_PIPELINE_BINDING_POINT_COMPUTE.
Includes#
PVRVk/DeviceVk.h
PVRVk/PipelineConfigVk.h
PVRVk/PipelineVk.h
Included By#
Namespaces#
Classes#
Source Code#
#pragma once
#include "PVRVk/PipelineVk.h"
#include "PVRVk/DeviceVk.h"
#include "PVRVk/PipelineConfigVk.h"
namespace pvrvk {
struct ComputePipelineCreateInfo : public PipelineCreateInfo<ComputePipeline>
{
public:
PipelineShaderStageCreateInfo computeShader;
ComputePipelineCreateInfo() : PipelineCreateInfo() {}
};
namespace impl {
class ComputePipeline_ : public Pipeline<ComputePipeline, ComputePipelineCreateInfo>
{
private:
friend class Device_;
class make_shared_enabler
{
protected:
make_shared_enabler() {}
friend class ComputePipeline_;
};
static ComputePipeline constructShared(const DeviceWeakPtr& device, VkPipeline vkPipeline, const ComputePipelineCreateInfo& desc)
{
return std::make_shared<ComputePipeline_>(make_shared_enabler{}, device, vkPipeline, desc);
}
public:
DECLARE_NO_COPY_SEMANTICS(ComputePipeline_)
ComputePipeline_(make_shared_enabler, const DeviceWeakPtr& device, VkPipeline vkPipeline, const ComputePipelineCreateInfo& desc) : Pipeline(device, vkPipeline, desc) {}
};
} // namespace impl
} // namespace pvrvk