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

Method Attachment

layers/sync/sync_render_pass.cpp:1050–1076  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1048}
1049
1050DynamicRenderingInfo::Attachment::Attachment(const SyncValidator& state, const vku::safe_VkRenderingAttachmentInfo& attachment_info,
1051 AttachmentType type_, const VkOffset3D& offset, const VkExtent3D& extent)
1052 : info(attachment_info), view(state.Get<vvl::ImageView>(attachment_info.imageView)), view_gen(), type(type_) {
1053 if (view) {
1054 if (type == AttachmentType::kColor) {
1055 view_gen = MakeImageRangeGen(*view, offset, extent);
1056 } else if (type == AttachmentType::kDepth) {
1057 view_gen = MakeImageRangeGen(*view, offset, extent, VK_IMAGE_ASPECT_DEPTH_BIT);
1058 } else {
1059 view_gen = MakeImageRangeGen(*view, offset, extent, VK_IMAGE_ASPECT_STENCIL_BIT);
1060 }
1061
1062 if (info.resolveImageView != VK_NULL_HANDLE && (info.resolveMode != VK_RESOLVE_MODE_NONE)) {
1063 resolve_view = state.Get<vvl::ImageView>(info.resolveImageView);
1064 if (resolve_view) {
1065 if (type == AttachmentType::kColor) {
1066 resolve_gen.emplace(MakeImageRangeGen(*resolve_view, offset, extent));
1067 } else if (type == AttachmentType::kDepth) {
1068 // Only the depth aspect
1069 resolve_gen.emplace(MakeImageRangeGen(*resolve_view, offset, extent, VK_IMAGE_ASPECT_DEPTH_BIT));
1070 } else {
1071 resolve_gen.emplace(MakeImageRangeGen(*resolve_view, offset, extent, VK_IMAGE_ASPECT_STENCIL_BIT));
1072 }
1073 }
1074 }
1075 }
1076}
1077
1078ImageRangeGen DynamicRenderingInfo::Attachment::GetRangeGen(uint32_t view_mask) const {
1079 // VkRenderingAttachmentInfo::imageView is allowed to be VK_NULL_HANDLE

Callers

nothing calls this directly

Calls 2

MakeImageRangeGenFunction · 0.85
emplaceMethod · 0.45

Tested by

no test coverage detected