#include <string>
#include <vector>
#include <vulkan/vk_enum_string_helper.h>
#include "utils/vk_struct_compare.h"
#include "generated/chassis.h"
#include "core_validation.h"
#include "generated/enum_flag_bits.h"
#include "drawdispatch/drawdispatch_vuids.h"
#include "state_tracker/image_state.h"
#include "state_tracker/buffer_state.h"
#include "chassis/chassis_modification_state.h"
#include "state_tracker/descriptor_sets.h"
#include "state_tracker/render_pass_state.h"
bool CoreChecks::PreCallValidateCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t count,
const VkGraphicsPipelineCreateInfo *pCreateInfos,
const VkAllocationCallbacks *pAllocator, VkPipeline *pPipelines,
const ErrorObject &error_obj, PipelineStates &pipeline_states,
chassis::CreateGraphicsPipelines &chassis_state) const { … }
bool CoreChecks::ValidateGraphicsPipeline(const vvl::Pipeline &pipeline, const void *pipeline_ci_pnext,
const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelinePortability(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidatePipelineLibraryCreateInfo(const vvl::Pipeline &pipeline,
const VkPipelineLibraryCreateInfoKHR &library_create_info,
const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineVertexInputState(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineNullRenderPass(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineLibrary(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineBlendEnable(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineMeshTask(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineExternalFormatResolve(const vvl::Pipeline &pipeline, const vvl::RenderPass &rp_state,
const vku::safe_VkSubpassDescription2 &subpass_desc,
const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineExternalFormatResolveDynamicRendering(const vvl::Pipeline &pipeline,
const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineInputAssemblyState(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineTessellationState(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelinePreRasterizationState(const vvl::Pipeline &pipeline,
const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineColorBlendAttachmentState(const vvl::Pipeline &pipeline,
const vku::safe_VkSubpassDescription2 *subpass_desc,
const Location &color_loc) const { … }
bool CoreChecks::IsColorBlendStateAttachmentCountIgnore(const vvl::Pipeline &pipeline) const { … }
bool CoreChecks::ValidatePipelineColorBlendAdvancedStateCreateInfo(
const vvl::Pipeline &pipeline, const VkPipelineColorBlendAdvancedStateCreateInfoEXT &color_blend_advanced,
const Location &color_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineColorBlendState(const vvl::Pipeline &pipeline,
const vku::safe_VkSubpassDescription2 *subpass_desc,
const Location &create_info_loc) const { … }
bool CoreChecks::ValidatePipelineRasterizationStateStreamCreateInfo(
const vvl::Pipeline &pipeline, const VkPipelineRasterizationStateStreamCreateInfoEXT &rasterization_state_stream_ci,
const Location &raster_loc) const { … }
bool CoreChecks::ValidatePipelineRasterizationConservativeStateCreateInfo(
const vvl::Pipeline &pipeline, const VkPipelineRasterizationConservativeStateCreateInfoEXT &rasterization_conservative_state_ci,
const Location &raster_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineRasterizationState(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineRenderPassRasterization(const vvl::Pipeline &pipeline, const vvl::RenderPass &rp_state,
const vku::safe_VkSubpassDescription2 &subpass_desc,
const Location &create_info_loc) const { … }
bool CoreChecks::ValidateSampleLocationsInfo(const VkSampleLocationsInfoEXT &sample_location_info, const Location &loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineMultisampleState(const vvl::Pipeline &pipeline, const vvl::RenderPass &rp_state,
const vku::safe_VkSubpassDescription2 &subpass_desc,
const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineNullState(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineRasterizationOrderAttachmentAccess(const vvl::Pipeline &pipeline,
const vku::safe_VkSubpassDescription2 *subpass_desc,
const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineDynamicState(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineFragmentShadingRateState(
const vvl::Pipeline &pipeline, const VkPipelineFragmentShadingRateStateCreateInfoKHR &fragment_shading_rate_state,
const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineDynamicRendering(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidateGraphicsPipelineBindPoint(const vvl::CommandBuffer &cb_state, const vvl::Pipeline &pipeline,
const Location &loc) const { … }
bool CoreChecks::ValidateDrawPipelineFragmentShadingRate(const vvl::CommandBuffer &cb_state, const vvl::Pipeline &pipeline,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipeline(const LastBound &last_bound_state, const vvl::Pipeline &pipeline,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipelineRenderpass(const LastBound &last_bound_state, const vvl::Pipeline &pipeline,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipelineDynamicRenderpass(const LastBound &last_bound_state, const vvl::Pipeline &pipeline,
const VkRenderingInfo &rendering_info,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipelineDynamicRenderpassDepthStencil(const LastBound &last_bound_state, const vvl::Pipeline &pipeline,
const VkRenderingInfo &rendering_info,
const VkPipelineRenderingCreateInfo &pipeline_rendering_ci,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipelineDynamicRenderpassUnusedAttachments(const LastBound &last_bound_state,
const vvl::Pipeline &pipeline,
const VkRenderingInfo &rendering_info,
const VkPipelineRenderingCreateInfo &pipeline_rendering_ci,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipelineDynamicRenderpassFragmentShadingRate(const LastBound &last_bound_state,
const vvl::Pipeline &pipeline,
const VkRenderingInfo &rendering_info,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipelineDynamicRenderpassLegacyDithering(const LastBound &last_bound_state,
const vvl::Pipeline &pipeline,
const VkRenderingInfo &rendering_info,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipelineDynamicRenderpassExternalFormatResolve(const LastBound &last_bound_state,
const vvl::Pipeline &pipeline,
const VkRenderingInfo &rendering_info,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipelineDynamicRenderpassSampleCount(const LastBound &last_bound_state, const vvl::Pipeline &pipeline,
const VkRenderingInfo &rendering_info,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidatePipelineVertexDivisors(const vvl::Pipeline &pipeline, const Location &create_info_loc) const { … }
bool CoreChecks::ValidatePipelineLibraryFlags(const VkGraphicsPipelineLibraryFlagsEXT lib_flags,
const VkPipelineLibraryCreateInfoKHR &link_info,
const VkPipelineRenderingCreateInfo *rendering_struct, const Location &loc,
int lib_index, const char *vuid) const { … }
bool CoreChecks::ValidateGraphicsPipelineDerivatives(PipelineStates &pipeline_states, uint32_t pipe_index,
const Location &loc) const { … }
bool CoreChecks::ValidateMultiViewShaders(const vvl::Pipeline &pipeline, const Location &multiview_loc, uint32_t view_mask,
bool dynamic_rendering) const { … }
bool CoreChecks::ValidateDrawPipelineVertexAttribute(const vvl::CommandBuffer &cb_state, const vvl::Pipeline &pipeline,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipelineFramebuffer(const vvl::CommandBuffer &cb_state, const vvl::Pipeline &pipeline,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipelineVertexBinding(const vvl::CommandBuffer &cb_state, const vvl::Pipeline &pipeline,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidateDrawPipelineRasterizationState(const LastBound &last_bound_state, const vvl::Pipeline &pipeline,
const vvl::DrawDispatchVuid &vuid) const { … }
bool CoreChecks::ValidatePipelineDiscardRectangleStateCreateInfo(
const vvl::Pipeline &pipeline, const VkPipelineDiscardRectangleStateCreateInfoEXT &discard_rectangle_state,
const Location &create_info_loc) const { … }
bool CoreChecks::ValidatePipelineAttachmentSampleCountInfo(const vvl::Pipeline &pipeline,
const VkAttachmentSampleCountInfoAMD &attachment_sample_count_info,
const Location &create_info_loc) const { … }