xref: /aosp_15_r20/external/vulkan-validation-layers/layers/buffer_validation.h (revision b7893ccf7851cd6a48cc5a1e965257d8a5cdcc70)
1*b7893ccfSSadaf Ebrahimi /* Copyright (c) 2015-2019 The Khronos Group Inc.
2*b7893ccfSSadaf Ebrahimi  * Copyright (c) 2015-2019 Valve Corporation
3*b7893ccfSSadaf Ebrahimi  * Copyright (c) 2015-2019 LunarG, Inc.
4*b7893ccfSSadaf Ebrahimi  * Copyright (C) 2015-2019 Google Inc.
5*b7893ccfSSadaf Ebrahimi  *
6*b7893ccfSSadaf Ebrahimi  * Licensed under the Apache License, Version 2.0 (the "License");
7*b7893ccfSSadaf Ebrahimi  * you may not use this file except in compliance with the License.
8*b7893ccfSSadaf Ebrahimi  * You may obtain a copy of the License at
9*b7893ccfSSadaf Ebrahimi  *
10*b7893ccfSSadaf Ebrahimi  *     http://www.apache.org/licenses/LICENSE-2.0
11*b7893ccfSSadaf Ebrahimi  *
12*b7893ccfSSadaf Ebrahimi  * Unless required by applicable law or agreed to in writing, software
13*b7893ccfSSadaf Ebrahimi  * distributed under the License is distributed on an "AS IS" BASIS,
14*b7893ccfSSadaf Ebrahimi  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15*b7893ccfSSadaf Ebrahimi  * See the License for the specific language governing permissions and
16*b7893ccfSSadaf Ebrahimi  * limitations under the License.
17*b7893ccfSSadaf Ebrahimi  *
18*b7893ccfSSadaf Ebrahimi  * Mark Lobodzinski <[email protected]>
19*b7893ccfSSadaf Ebrahimi  * Dave Houlton <[email protected]>
20*b7893ccfSSadaf Ebrahimi  */
21*b7893ccfSSadaf Ebrahimi #ifndef CORE_VALIDATION_BUFFER_VALIDATION_H_
22*b7893ccfSSadaf Ebrahimi #define CORE_VALIDATION_BUFFER_VALIDATION_H_
23*b7893ccfSSadaf Ebrahimi 
24*b7893ccfSSadaf Ebrahimi #include "vulkan/vk_layer.h"
25*b7893ccfSSadaf Ebrahimi #include <limits.h>
26*b7893ccfSSadaf Ebrahimi #include <memory>
27*b7893ccfSSadaf Ebrahimi #include <unordered_map>
28*b7893ccfSSadaf Ebrahimi #include <vector>
29*b7893ccfSSadaf Ebrahimi #include <utility>
30*b7893ccfSSadaf Ebrahimi #include <algorithm>
31*b7893ccfSSadaf Ebrahimi #include <bitset>
32*b7893ccfSSadaf Ebrahimi 
33*b7893ccfSSadaf Ebrahimi uint32_t FullMipChainLevels(uint32_t height, uint32_t width = 1, uint32_t depth = 1);
34*b7893ccfSSadaf Ebrahimi uint32_t FullMipChainLevels(VkExtent3D);
35*b7893ccfSSadaf Ebrahimi uint32_t FullMipChainLevels(VkExtent2D);
36*b7893ccfSSadaf Ebrahimi 
37*b7893ccfSSadaf Ebrahimi uint32_t ResolveRemainingLevels(const VkImageSubresourceRange *range, uint32_t mip_levels);
38*b7893ccfSSadaf Ebrahimi 
39*b7893ccfSSadaf Ebrahimi uint32_t ResolveRemainingLayers(const VkImageSubresourceRange *range, uint32_t layers);
40*b7893ccfSSadaf Ebrahimi VkImageSubresourceRange NormalizeSubresourceRange(const IMAGE_STATE &image_state, const VkImageSubresourceRange &range);
41*b7893ccfSSadaf Ebrahimi 
42*b7893ccfSSadaf Ebrahimi #endif  // CORE_VALIDATION_BUFFER_VALIDATION_H_
43