MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-ValidationLayers / QueueValidateImage

Method QueueValidateImage

layers/best_practices/bp_image.cpp:149–165  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

147}
148
149void BestPractices::QueueValidateImage(QueueCallbacks& funcs, const Location& loc, vvl::Image& image_state,
150 IMAGE_SUBRESOURCE_USAGE_BP usage, const VkImageSubresourceRange& subresource_range) {
151 // If we're viewing a 3D slice, ignore base array layer.
152 // The entire 3D subresource is accessed as one atomic unit.
153 const uint32_t base_array_layer = image_state.GetImageType() == VK_IMAGE_TYPE_3D ? 0 : subresource_range.baseArrayLayer;
154
155 const uint32_t max_layers = image_state.GetArrayLayers() - base_array_layer;
156 const uint32_t array_layers = std::min(subresource_range.layerCount, max_layers);
157 const uint32_t max_levels = image_state.GetMipLevels() - subresource_range.baseMipLevel;
158 const uint32_t mip_levels = std::min(image_state.GetMipLevels(), max_levels);
159
160 for (uint32_t layer = 0; layer < array_layers; layer++) {
161 for (uint32_t level = 0; level < mip_levels; level++) {
162 QueueValidateImage(funcs, loc, image_state, usage, layer + base_array_layer, level + subresource_range.baseMipLevel);
163 }
164 }
165}
166
167void BestPractices::QueueValidateImage(QueueCallbacks& funcs, const Location& loc, vvl::Image& image_state,
168 IMAGE_SUBRESOURCE_USAGE_BP usage, const VkImageSubresourceLayers& subresource_layers) {

Callers 12

RecordCopyImageMethod · 0.80
RecordCopyImage2Method · 0.80
RecordBlitImageMethod · 0.80
RecordBlitImage2Method · 0.80
RecordResolveImageMethod · 0.80
RecordResolveImage2Method · 0.80
RecordClearColorImageMethod · 0.80

Calls 4

GetArrayLayersMethod · 0.80
GetMipLevelsMethod · 0.80
emplace_backMethod · 0.80
GetImageTypeMethod · 0.45

Tested by

no test coverage detected