/* Copyright (c) 2023-2024 The Khronos Group Inc. * Copyright (c) 2023-2024 Valve Corporation * Copyright (c) 2023-2024 LunarG, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once // TODO - Should only need generated/chassis.h // Because of FormatHandle, we need to include all of state_tracker.h #include "state_tracker/state_tracker.h" class ValidationStateTracker; struct DescriptorRequirement; namespace vvl { struct DrawDispatchVuid; class DescriptorBinding; class BufferDescriptor; class ImageDescriptor; class ImageSamplerDescriptor; class TexelDescriptor; class AccelerationStructureDescriptor; class SamplerDescriptor; class CommandBuffer; class Sampler; class DescriptorSet; // The reason there is a vector is because we can have a shader that looks like // layout(set = 0, binding = 2) uniform sampler3D tex3d[]; // layout(set = 0, binding = 2) uniform sampler2D tex[]; // And we need a DescriptorRequirement for each OpVariable DescriptorBindingInfo; class DescriptorValidator { … }; }