31 this->
subPass = 2 * inputCamId + 0;
37 for (
int i = 0; i <= inputCamId; i++) {
46 auto streamParam = inputP->enumerateStreamsParameters()[inputCamId];
47 colorSampler = streamParam.colorSampler;
48 depthSampler = streamParam.depthSampler;
56 createGraphicsPipeline();
77 vk::DescriptorSetLayoutBinding depthSamplerLayoutBinding(
79 vk::DescriptorType::eCombinedImageSampler,
81 vk::ShaderStageFlagBits::eVertex | vk::ShaderStageFlagBits::eFragment,
84 vk::DescriptorSetLayoutBinding uboVertCamLayoutBinding(
86 vk::DescriptorType::eUniformBuffer,
88 vk::ShaderStageFlagBits::eVertex,
91 vk::DescriptorSetLayoutBinding uboVertLayoutBinding(
93 vk::DescriptorType::eUniformBuffer,
95 vk::ShaderStageFlagBits::eVertex,
98 vk::DescriptorSetLayoutBinding uboGeomLayoutBinding(
100 vk::DescriptorType::eUniformBuffer,
102 vk::ShaderStageFlagBits::eGeometry,
105 vk::DescriptorSetLayoutBinding uboFragLayoutBinding(
107 vk::DescriptorType::eUniformBuffer,
109 vk::ShaderStageFlagBits::eFragment,
112 vk::DescriptorSetLayoutBinding samplerLayoutBinding(
114 vk::DescriptorType::eCombinedImageSampler,
116 vk::ShaderStageFlagBits::eFragment,
120 std::array<vk::DescriptorSetLayoutBinding, 6> bindings = { depthSamplerLayoutBinding, uboVertCamLayoutBinding,uboVertLayoutBinding, uboGeomLayoutBinding, uboFragLayoutBinding, samplerLayoutBinding };
122 vk::DescriptorSetLayoutCreateInfo layoutInfo(vk::DescriptorSetLayoutCreateFlags(),
static_cast<uint32_t
>(bindings.size()), bindings.data());
136void VulkanPipelineWarping::createGraphicsPipeline()
155 std::vector<vk::PipelineShaderStageCreateInfo> pipelineShaderStageCreateInfos = {
156 vk::PipelineShaderStageCreateInfo(
157 vk::PipelineShaderStageCreateFlags(), vk::ShaderStageFlagBits::eVertex, vertShaderModule,
"main"),
158 vk::PipelineShaderStageCreateInfo(
159 vk::PipelineShaderStageCreateFlags(), vk::ShaderStageFlagBits::eGeometry, geomShaderModule,
"main"),
160 vk::PipelineShaderStageCreateInfo(
161 vk::PipelineShaderStageCreateFlags(), vk::ShaderStageFlagBits::eFragment, fragShaderModule,
"main")
Contains the class that loads the SPIR-V shaders from files.
File that contain the VulkanContext class to manage Vulkan Instance, Physical device,...
Class that contains helper functions for Vulkan.
Contains the class that manages the warping pipeline.
file that contains the class that manage the renderPass containing the synthesis and blending steps
file that contains the VulkanWrapper class that manages the classes related to Vulkan code and ease t...
static ShadersList & getInstance()
class that manages tasks related to Vulkan context (Vulkan Instance, Vulkan Physical device,...
std::unique_ptr< BuffersController > bufferController
void createPipeline(std::vector< vk::PipelineShaderStageCreateInfo > &arr)
VulkanRenderPass * renderPass
vk::ShaderModule createShaderModule(const Shader &shader)
vk::DescriptorSetLayout descriptorSetLayout
vk::PipelineLayout pipelineLayout
void createDescriptorSetLayout()
void update(std::span< InputProvider::StreamFrameInfo > infos, int view)
VulkanPipelineWarping(VulkanContext *context, VulkanRenderPass *renderPass, InputProvider *inputP, VulkanWrapper *wraps, int inputCamID)
Class that manage the renderPass containing the synthesis and blending steps.
Class that manages the classes related to Vulkan code and act as a wrapper around them.
std::vector< bool > getCameraActivation()