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

Method InitDynamicRenderTarget

tests/framework/render.cpp:1159–1180  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1157}
1158
1159void VkRenderFramework::InitDynamicRenderTarget(VkFormat format) {
1160 if (format != VK_FORMAT_UNDEFINED) {
1161 m_render_target_fmt = format;
1162 }
1163
1164 m_renderPassClearValues.clear();
1165 VkClearValue clear = {};
1166 clear.color = m_clear_color;
1167
1168 if ((m_device->FormatFeaturesOptimal(m_render_target_fmt) & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) == 0) {
1169 FAIL() << "Optimal tiling not allowed for render target";
1170 }
1171
1172 auto image_ci = vkt::Image::ImageCreateInfo2D(
1173 m_width, m_height, 1, 1, m_render_target_fmt,
1174 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT);
1175 std::unique_ptr<vkt::Image> img(new vkt::Image(*m_device, image_ci, vkt::set_layout));
1176
1177 m_render_target_views.push_back(img->CreateView());
1178 m_framebuffer_attachments.push_back(m_render_target_views.back().handle());
1179 m_renderTargets.push_back(std::move(img));
1180}
1181
1182VkImageView VkRenderFramework::GetDynamicRenderTarget(uint32_t idx) const {
1183 assert(m_framebuffer_attachments.size() > idx);

Callers

nothing calls this directly

Calls 6

FormatFeaturesOptimalMethod · 0.80
CreateViewMethod · 0.80
clearMethod · 0.45
push_backMethod · 0.45
handleMethod · 0.45
backMethod · 0.45

Tested by

no test coverage detected