| 1048 | } |
| 1049 | |
| 1050 | DynamicRenderingInfo::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 | |
| 1078 | ImageRangeGen DynamicRenderingInfo::Attachment::GetRangeGen(uint32_t view_mask) const { |
| 1079 | // VkRenderingAttachmentInfo::imageView is allowed to be VK_NULL_HANDLE |
nothing calls this directly
no test coverage detected