#include "descriptor_validator.h"
#include "generated/spirv_grammar_helper.h"
#include "state_tracker/shader_stage_state.h"
#include "error_message/error_strings.h"
#include "state_tracker/descriptor_sets.h"
#include "state_tracker/cmd_buffer_state.h"
#include "state_tracker/image_state.h"
#include "state_tracker/buffer_state.h"
#include "state_tracker/render_pass_state.h"
#include "state_tracker/ray_tracing_state.h"
#include "state_tracker/shader_module.h"
#include "drawdispatch/drawdispatch_vuids.h"
static const char *GetActionType(vvl::Func command) { … }
std::string vvl::DescriptorValidator::DescribeDescriptor(const DescriptorBindingInfo &binding_info, uint32_t index) const { … }
vvl::DescriptorValidator::DescriptorValidator(ValidationStateTracker &dev, vvl::CommandBuffer &cb, vvl::DescriptorSet &set,
uint32_t set_index_, VkFramebuffer fb, const Location &l)
: … { … }
template <typename T>
bool vvl::DescriptorValidator::ValidateDescriptors(const DescriptorBindingInfo &binding_info, const T &binding) const { … }
bool vvl::DescriptorValidator::ValidateBinding(const DescriptorBindingInfo &binding_info, const vvl::DescriptorBinding &binding) const { … }
template <typename T>
bool vvl::DescriptorValidator::ValidateDescriptors(const DescriptorBindingInfo &binding_info, const T &binding,
const std::vector<uint32_t> &indices) { … }
bool vvl::DescriptorValidator::ValidateBinding(const DescriptorBindingInfo &binding_info, const std::vector<uint32_t> &indices) { … }
bool vvl::DescriptorValidator::ValidateDescriptor(const DescriptorBindingInfo &binding_info, uint32_t index,
VkDescriptorType descriptor_type, const vvl::BufferDescriptor &descriptor) const { … }
static const spirv::ResourceInterfaceVariable *FindMatchingImageVar(const std::vector<DescriptorRequirement> &reqs,
const VkImageViewCreateInfo &image_view_ci) { … }
bool vvl::DescriptorValidator::ValidateDescriptor(const DescriptorBindingInfo &binding_info, uint32_t index,
VkDescriptorType descriptor_type,
const vvl::ImageDescriptor &image_descriptor) const { … }
bool vvl::DescriptorValidator::ValidateDescriptor(const DescriptorBindingInfo &binding_info, uint32_t index,
VkDescriptorType descriptor_type,
const vvl::ImageSamplerDescriptor &descriptor) const { … }
static const spirv::ResourceInterfaceVariable *FindMatchingTexelVar(const std::vector<DescriptorRequirement> &reqs) { … }
bool vvl::DescriptorValidator::ValidateDescriptor(const DescriptorBindingInfo &binding_info, uint32_t index,
VkDescriptorType descriptor_type,
const vvl::TexelDescriptor &texel_descriptor) const { … }
bool vvl::DescriptorValidator::ValidateDescriptor(const DescriptorBindingInfo &binding_info, uint32_t index,
VkDescriptorType descriptor_type,
const vvl::AccelerationStructureDescriptor &descriptor) const { … }
bool vvl::DescriptorValidator::ValidateSamplerDescriptor(const DescriptorBindingInfo &binding_info, uint32_t index,
VkSampler sampler, bool is_immutable,
const vvl::Sampler *sampler_state) const { … }
bool vvl::DescriptorValidator::ValidateDescriptor(const DescriptorBindingInfo &binding_info, uint32_t index,
VkDescriptorType descriptor_type, const vvl::SamplerDescriptor &descriptor) const { … }