#pragma once
#include <vulkan/vulkan.h>
#include "containers/custom_containers.h"
namespace vku {
struct safe_VkPipelineShaderStageCreateInfo;
struct safe_VkShaderCreateInfoEXT;
struct safe_VkSpecializationInfo;
}
namespace vvl {
struct ShaderModule;
}
namespace spirv {
struct Module;
struct EntryPoint;
class Instruction;
}
struct ShaderStageState { … };
namespace spirv {
struct ResourceInterfaceVariable;
}
struct DescriptorRequirement { … };
inline bool operator==(const DescriptorRequirement &a, const DescriptorRequirement &b) noexcept { … }
inline bool operator<(const DescriptorRequirement &a, const DescriptorRequirement &b) noexcept { … }
BindingVariableMap;
ActiveSlotMap;
void GetActiveSlots(ActiveSlotMap &active_slots, const std::shared_ptr<const spirv::EntryPoint> &entrypoint);
ActiveSlotMap GetActiveSlots(const std::vector<ShaderStageState> &stage_states);
ActiveSlotMap GetActiveSlots(const std::shared_ptr<const spirv::EntryPoint> &entrypoint);
uint32_t GetMaxActiveSlot(const ActiveSlotMap &active_slots);