MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-Samples / image_layout_transition

Function image_layout_transition

framework/common/vk_common.cpp:419–443  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

417 }
418}
419
420// Create an image memory barrier for changing the layout of
421// an image and put it into an active command buffer
422// See chapter 12.4 "Image Layout" for details
423
424void image_layout_transition(VkCommandBuffer command_buffer,
425 VkImage image,
426 VkPipelineStageFlags src_stage_mask,
427 VkPipelineStageFlags dst_stage_mask,
428 VkAccessFlags src_access_mask,
429 VkAccessFlags dst_access_mask,
430 VkImageLayout old_layout,
431 VkImageLayout new_layout,
432 VkImageSubresourceRange const &subresource_range)
433{
434 // Create an image barrier object
435 VkImageMemoryBarrier image_memory_barrier{};
436 image_memory_barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
437 image_memory_barrier.srcAccessMask = src_access_mask;
438 image_memory_barrier.dstAccessMask = dst_access_mask;
439 image_memory_barrier.oldLayout = old_layout;
440 image_memory_barrier.newLayout = new_layout;
441 image_memory_barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
442 image_memory_barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
443 image_memory_barrier.image = image;
444 image_memory_barrier.subresourceRange = subresource_range;
445
446 // Put barrier inside setup command buffer

Callers 15

load_textureMethod · 0.50
load_texture_arrayMethod · 0.50
load_texture_cubemapMethod · 0.50
load_textureMethod · 0.50
load_texture_arrayMethod · 0.50
load_texture_cubemapMethod · 0.50
create_imageMethod · 0.50
transcode_textureMethod · 0.50
load_sceneMethod · 0.50
create_imageMethod · 0.50
setup_attachmentMethod · 0.50
build_command_buffersMethod · 0.50

Calls 3

getPipelineStageFlagsFunction · 0.85
getAccessFlagsFunction · 0.85
sizeMethod · 0.80

Tested by

no test coverage detected