1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00
OpenDX/src/dxvk/dxvk_compute.h

68 lines
1.6 KiB
C
Raw Normal View History

#pragma once
#include "dxvk_shader.h"
2017-10-14 23:52:47 +02:00
#include "dxvk_resource.h"
namespace dxvk {
/**
* \brief Compute pipeline
*
2017-10-14 13:45:00 +02:00
* Stores a compute pipeline object and the corresponding
* pipeline layout. Unlike graphics pipelines, compute
* pipelines do not need to be recompiled against any sort
* of pipeline state.
*/
2017-10-14 23:52:47 +02:00
class DxvkComputePipeline : public DxvkResource {
public:
2017-10-14 23:52:47 +02:00
DxvkComputePipeline(
const Rc<vk::DeviceFn>& vkd,
const Rc<DxvkShader>& shader);
~DxvkComputePipeline();
2017-10-14 23:52:47 +02:00
/**
* \brief Descriptor set layout
*
* The descriptor set layout for this pipeline.
* Use this to allocate new descriptor sets.
* \returns The descriptor set layout
*/
VkDescriptorSetLayout descriptorSetLayout() const {
return m_descriptorSetLayout;
}
/**
* \brief Pipeline layout layout
*
* The pipeline layout for this pipeline.
* Use this to bind descriptor sets.
* \returns The descriptor set layout
*/
VkPipelineLayout pipelineLayout() const {
return m_pipelineLayout;
}
/**
* \brief Pipeline handle
* \returns Pipeline handle
*/
2017-10-15 13:02:59 +02:00
VkPipeline getPipelineHandle() const {
return m_pipeline;
}
private:
2017-10-14 23:52:47 +02:00
Rc<vk::DeviceFn> m_vkd;
Rc<DxvkShader> m_shader;
2017-10-14 23:52:47 +02:00
VkDescriptorSetLayout m_descriptorSetLayout = VK_NULL_HANDLE;
VkPipelineLayout m_pipelineLayout = VK_NULL_HANDLE;
VkPipeline m_pipeline = VK_NULL_HANDLE;
void destroyObjects();
};
}