Lines Matching refs:vk
48 vk::VkDeviceSize rowPitchOrZero,
49 vk::VkDeviceSize depthPitchOrZero,
53 vk::VkDeviceSize rowPitch = rowPitchOrZero;
54 vk::VkDeviceSize depthPitch = depthPitchOrZero;
62 const vk::VkDeviceSize size = depthPitch * depth;
71 if (rowPitch == static_cast<vk::VkDeviceSize>(width * pixelSize) &&
72 depthPitch == static_cast<vk::VkDeviceSize>(rowPitch * height))
82 vk::VkDeviceSize offsetDepthDst = d * depthPitch;
83 vk::VkDeviceSize offsetDepthSrc = d * (pixelSize * width * height);
100 vk::VkDeviceSize rowPitchOrZero,
101 vk::VkDeviceSize depthPitchOrZero,
105 vk::VkDeviceSize rowPitch = rowPitchOrZero;
106 vk::VkDeviceSize depthPitch = depthPitchOrZero;
114 const vk::VkDeviceSize size = depthPitch * depth;
123 if (rowPitch == static_cast<vk::VkDeviceSize>(width * pixelSize) &&
124 depthPitch == static_cast<vk::VkDeviceSize>(rowPitch * height))
133 vk::VkDeviceSize offsetDepthDst = d * (pixelSize * width * height);
134 vk::VkDeviceSize offsetDepthSrc = d * depthPitch;
147 Image::Image (const vk::DeviceInterface& vk,
148 vk::VkDevice device,
150 vk::VkFormat format,
151 const vk::VkExtent3D& extend,
154 vk::Move<vk::VkImage> object_)
162 , m_vk(vk)
167 tcu::ConstPixelBufferAccess Image::readSurface (vk::VkQueue queue,
168 vk::Allocator& allocator,
169 vk::VkImageLayout layout,
170 vk::VkOffset3D offset,
173 vk::VkImageAspectFlagBits aspect,
177 m_pixelAccessData.resize(width * height * vk::mapVkFormat(m_format).getPixelSize());
179 if (aspect == vk::VK_IMAGE_ASPECT_COLOR_BIT)
181 read(queue, allocator, layout, offset, width, height, 1, mipLevel, arrayElement, aspect, vk::VK_IMAGE_TYPE_2D,
184 if (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT || aspect == vk::VK_IMAGE_ASPECT_STENCIL_BIT)
188 return tcu::ConstPixelBufferAccess(vk::mapVkFormat(m_format), width, height, 1, m_pixelAccessData.data());
191 tcu::ConstPixelBufferAccess Image::readDepth (vk::VkQueue queue,
192 vk::Allocator& allocator,
193 vk::VkImageLayout layout,
194 vk::VkOffset3D offset,
197 vk::VkImageAspectFlagBits aspect,
201 DE_ASSERT(aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT);
210 tcu::ConstPixelBufferAccess Image::readVolume (vk::VkQueue queue,
211 vk::Allocator& allocator,
212 vk::VkImageLayout layout,
213 vk::VkOffset3D offset,
217 vk::VkImageAspectFlagBits aspect,
221 m_pixelAccessData.resize(width * height * depth * vk::mapVkFormat(m_format).getPixelSize());
223 if (aspect == vk::VK_IMAGE_ASPECT_COLOR_BIT)
225 read(queue, allocator, layout, offset, width, height, depth, mipLevel, arrayElement, aspect, vk::VK_IMAGE_TYPE_3D,
228 if (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT || aspect == vk::VK_IMAGE_ASPECT_STENCIL_BIT)
232 return tcu::ConstPixelBufferAccess(vk::mapVkFormat(m_format), width, height, depth, m_pixelAccessData.data());
235 tcu::ConstPixelBufferAccess Image::readSurface1D(vk::VkQueue queue,
236 vk::Allocator& allocator,
237 vk::VkImageLayout layout,
238 vk::VkOffset3D offset,
240 vk::VkImageAspectFlagBits aspect,
244 m_pixelAccessData.resize(width * vk::mapVkFormat(m_format).getPixelSize());
246 if (aspect == vk::VK_IMAGE_ASPECT_COLOR_BIT)
248 read(queue, allocator, layout, offset, width, 1, 1, mipLevel, arrayElement, aspect, vk::VK_IMAGE_TYPE_1D,
251 if (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT || aspect == vk::VK_IMAGE_ASPECT_STENCIL_BIT)
256 return tcu::ConstPixelBufferAccess(vk::mapVkFormat(m_format), width, 1, 1, m_pixelAccessData.data());
259 void Image::read (vk::VkQueue queue,
260 vk::Allocator& allocator,
261 vk::VkImageLayout layout,
262 vk::VkOffset3D offset,
268 vk::VkImageAspectFlagBits aspect,
269 vk::VkImageType type,
272 DE_ASSERT(layout == vk::VK_IMAGE_LAYOUT_GENERAL || layout == vk::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);
276 const vk::VkOffset3D zeroOffset = {0, 0, 0};
280 void Image::readUsingBuffer (vk::VkQueue queue,
281 vk::Allocator& allocator,
282 vk::VkImageLayout layout,
283 vk::VkOffset3D offset,
289 vk::VkImageAspectFlagBits aspect,
292 DE_ASSERT(layout == vk::VK_IMAGE_LAYOUT_GENERAL || layout == vk::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);
296 bool isCombinedType = isCombinedDepthStencilType(vk::mapVkFormat(m_format).type);
297 vk::VkDeviceSize bufferSize = 0;
300 bufferSize = vk::mapVkFormat(m_format).getPixelSize() * width * height * depth;
308 case vk::VK_FORMAT_D16_UNORM_S8_UINT:
309 pixelSize = (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT) ? 2 : 1;
311 case vk::VK_FORMAT_D32_SFLOAT_S8_UINT:
312 pixelSize = (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT) ? 4 : 1;
314 case vk::VK_FORMAT_X8_D24_UNORM_PACK32:
315 case vk::VK_FORMAT_D24_UNORM_S8_UINT:
317 pixelSize = (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT) ? 4 : 1;
327 BufferCreateInfo stagingBufferResourceCreateInfo(bufferSize, vk::VK_BUFFER_USAGE_TRANSFER_DST_BIT | vk::VK_BUFFER_USAGE_TRANSFER_SRC_BIT);
328 stagingResource = Buffer::createAndAlloc(m_vk, m_device, stagingBufferResourceCreateInfo, allocator, vk::MemoryRequirement::HostVisible);
332 vk::Unique<vk::VkCommandPool> copyCmdPool(vk::createCommandPool(m_vk, m_device, ©CmdPoolCreateInfo));
333 vk::Unique<vk::VkCommandBuffer> copyCmdBuffer(vk::allocateCommandBuffer(m_vk, m_device, *copyCmdPool, vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY));
337 if (layout == vk::VK_IMAGE_LAYOUT_UNDEFINED)
339 layout = vk::VK_IMAGE_LAYOUT_GENERAL;
341 vk::VkImageMemoryBarrier barrier;
342 barrier.sType = vk::VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
346 barrier.oldLayout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
347 barrier.newLayout = vk::VK_IMAGE_LAYOUT_GENERAL;
358 m_vk.cmdPipelineBarrier(*copyCmdBuffer, vk::VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (vk::VkDependencyFlags)0,
359 0, (const vk::VkMemoryBarrier*)DE_NULL,
360 0, (const vk::VkBufferMemoryBarrier*)DE_NULL,
364 vk::VkBufferImageCopy region =
367 { (vk::VkImageAspectFlags)aspect, mipLevel, arrayElement, 1 },
376 const vk::VkBufferMemoryBarrier memoryBarrier =
378 vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
380 vk::VK_ACCESS_TRANSFER_WRITE_BIT,
381 vk::VK_ACCESS_HOST_READ_BIT,
388 m_vk.cmdPipelineBarrier(*copyCmdBuffer, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &memoryBarrier, 0u, DE_NULL);
397 const vk::Allocation& bufAllocation = stagingResource->getBoundMemory();
408 const vk::VkDeviceSize data32Count = bufferSize / sizeof(deUint32);
409 for(vk::VkDeviceSize i = 0; i < data32Count; ++i)
414 tcu::ConstPixelBufferAccess Image::readSurfaceLinear (vk::VkOffset3D offset,
418 vk::VkImageAspectFlagBits aspect,
422 m_pixelAccessData.resize(width * height * vk::mapVkFormat(m_format).getPixelSize());
424 return tcu::ConstPixelBufferAccess(vk::mapVkFormat(m_format), width, height, 1, m_pixelAccessData.data());
427 void Image::readLinear (vk::VkOffset3D offset,
433 vk::VkImageAspectFlagBits aspect,
439 vk::VkImageSubresource imageSubResource = { (vk::VkImageAspectFlags)aspect, mipLevel, arrayElement };
441 vk::VkSubresourceLayout imageLayout;
452 MemoryOp::unpack(vk::mapVkFormat(m_format).getPixelSize(), width, height, depth,
456 de::SharedPtr<Image> Image::copyToLinearImage (vk::VkQueue queue,
457 vk::Allocator& allocator,
458 vk::VkImageLayout layout,
459 vk::VkOffset3D offset,
465 vk::VkImageAspectFlagBits aspect,
466 vk::VkImageType type)
470 vk::VkExtent3D stagingExtent = {(deUint32)width, (deUint32)height, (deUint32)depth};
471 ImageCreateInfo stagingResourceCreateInfo(type, m_format, stagingExtent, 1, 1, vk::VK_SAMPLE_COUNT_1_BIT,
472 vk::VK_IMAGE_TILING_LINEAR, vk::VK_IMAGE_USAGE_TRANSFER_DST_BIT);
475 vk::MemoryRequirement::HostVisible);
478 vk::Unique<vk::VkCommandPool> copyCmdPool(vk::createCommandPool(m_vk, m_device, ©CmdPoolCreateInfo));
479 vk::Unique<vk::VkCommandBuffer> copyCmdBuffer(vk::allocateCommandBuffer(m_vk, m_device, *copyCmdPool, vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY));
483 transition2DImage(m_vk, *copyCmdBuffer, stagingResource->object(), aspect, vk::VK_IMAGE_LAYOUT_UNDEFINED, vk::VK_IMAGE_LAYOUT_GENERAL,
484 0u, vk::VK_ACCESS_TRANSFER_WRITE_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT);
486 const vk::VkOffset3D zeroOffset = { 0, 0, 0 };
487 vk::VkImageCopy region = { { (vk::VkImageAspectFlags)aspect, mipLevel, arrayElement, 1}, offset, { (vk::VkImageAspectFlags)aspect, 0, 0, 1}, zeroOffset, {(deUint32)width, (deUint32)height, (deUint32)depth} };
489 m_vk.cmdCopyImage(*copyCmdBuffer, object(), layout, stagingResource->object(), vk::VK_IMAGE_LAYOUT_GENERAL, 1, ®ion);
493 const vk::VkImageMemoryBarrier memoryBarrier =
495 vk::VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
497 vk::VK_ACCESS_TRANSFER_WRITE_BIT,
498 vk::VK_ACCESS_HOST_READ_BIT,
499 vk::VK_IMAGE_LAYOUT_GENERAL,
500 vk::VK_IMAGE_LAYOUT_GENERAL,
505 static_cast<vk::VkImageAspectFlags>(aspect),
512 m_vk.cmdPipelineBarrier(*copyCmdBuffer, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &memoryBarrier);
520 const vk::Allocation& imgAllocation = stagingResource->getBoundMemory();
527 vk::VkQueue queue,
528 vk::Allocator& allocator,
529 vk::VkImageLayout layout,
530 vk::VkOffset3D offset,
531 vk::VkImageAspectFlagBits aspect,
535 if (aspect == vk::VK_IMAGE_ASPECT_COLOR_BIT)
538 access.getHeight(), access.getDepth(), mipLevel, arrayElement, aspect, vk::VK_IMAGE_TYPE_3D,
541 if (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT || aspect == vk::VK_IMAGE_ASPECT_STENCIL_BIT)
549 vk::VkQueue queue,
550 vk::Allocator& allocator,
551 vk::VkImageLayout layout,
552 vk::VkOffset3D offset,
553 vk::VkImageAspectFlagBits aspect,
557 if (aspect == vk::VK_IMAGE_ASPECT_COLOR_BIT)
560 access.getHeight(), access.getDepth(), mipLevel, arrayElement, aspect, vk::VK_IMAGE_TYPE_2D,
563 if (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT || aspect == vk::VK_IMAGE_ASPECT_STENCIL_BIT)
571 vk::VkQueue queue,
572 vk::Allocator& allocator,
573 vk::VkImageLayout layout,
574 vk::VkOffset3D offset,
575 vk::VkImageAspectFlagBits aspect,
579 if (aspect == vk::VK_IMAGE_ASPECT_COLOR_BIT)
582 access.getHeight(), access.getDepth(), mipLevel, arrayElement, aspect, vk::VK_IMAGE_TYPE_1D,
585 if (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT || aspect == vk::VK_IMAGE_ASPECT_STENCIL_BIT)
593 vk::VkOffset3D offset,
597 vk::VkImageAspectFlagBits aspect,
604 void Image::upload (vk::VkQueue queue,
605 vk::Allocator& allocator,
606 vk::VkImageLayout layout,
607 vk::VkOffset3D offset,
613 vk::VkImageAspectFlagBits aspect,
614 vk::VkImageType type,
617 DE_ASSERT(layout == vk::VK_IMAGE_LAYOUT_GENERAL || layout == vk::VK_IMAGE_LAYOUT_UNDEFINED || layout == vk::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);
620 vk::VkExtent3D extent = {(deUint32)width, (deUint32)height, (deUint32)depth};
622 type, m_format, extent, 1, 1, vk::VK_SAMPLE_COUNT_1_BIT,
623 vk::VK_IMAGE_TILING_LINEAR, vk::VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
626 vk::MemoryRequirement::HostVisible);
628 const vk::VkOffset3D zeroOffset = { 0, 0, 0 };
633 vk::Unique<vk::VkCommandPool> copyCmdPool(vk::createCommandPool(m_vk, m_device, ©CmdPoolCreateInfo));
634 vk::Unique<vk::VkCommandBuffer> copyCmdBuffer(vk::allocateCommandBuffer(m_vk, m_device, *copyCmdPool, vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY));
638 if (layout == vk::VK_IMAGE_LAYOUT_UNDEFINED)
640 layout = vk::VK_IMAGE_LAYOUT_GENERAL;
642 vk::VkImageMemoryBarrier barrier;
643 barrier.sType = vk::VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
647 barrier.oldLayout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
648 barrier.newLayout = vk::VK_IMAGE_LAYOUT_GENERAL;
659 m_vk.cmdPipelineBarrier(*copyCmdBuffer, vk::VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (vk::VkDependencyFlags)0,
660 0, (const vk::VkMemoryBarrier*)DE_NULL,
661 0, (const vk::VkBufferMemoryBarrier*)DE_NULL,
665 transition2DImage(m_vk, *copyCmdBuffer, stagingResource->object(), aspect, vk::VK_IMAGE_LAYOUT_UNDEFINED, vk::VK_IMAGE_LAYOUT_GENERAL,
666 0u, vk::VK_ACCESS_TRANSFER_WRITE_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT);
668 vk::VkImageCopy region = {{ (vk::VkImageAspectFlags)aspect, 0, 0, 1},
670 { (vk::VkImageAspectFlags)aspect, mipLevel, arrayElement, 1},
675 vk::VK_IMAGE_LAYOUT_GENERAL, object(), layout, 1, ®ion);
682 void Image::uploadUsingBuffer (vk::VkQueue queue,
683 vk::Allocator& allocator,
684 vk::VkImageLayout layout,
685 vk::VkOffset3D offset,
691 vk::VkImageAspectFlagBits aspect,
694 DE_ASSERT(layout == vk::VK_IMAGE_LAYOUT_GENERAL || layout == vk::VK_IMAGE_LAYOUT_UNDEFINED || layout == vk::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);
697 bool isCombinedType = isCombinedDepthStencilType(vk::mapVkFormat(m_format).type);
698 vk::VkDeviceSize bufferSize = 0;
700 bufferSize = vk::mapVkFormat(m_format).getPixelSize() *width*height*depth;
706 case vk::VK_FORMAT_D16_UNORM_S8_UINT:
707 pixelSize = (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT) ? 2 : 1;
709 case vk::VK_FORMAT_D32_SFLOAT_S8_UINT:
710 pixelSize = (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT) ? 4 : 1;
712 case vk::VK_FORMAT_X8_D24_UNORM_PACK32:
713 case vk::VK_FORMAT_D24_UNORM_S8_UINT:
714 pixelSize = (aspect == vk::VK_IMAGE_ASPECT_DEPTH_BIT) ? 3 : 1;
722 BufferCreateInfo stagingBufferResourceCreateInfo(bufferSize, vk::VK_BUFFER_USAGE_TRANSFER_DST_BIT | vk::VK_BUFFER_USAGE_TRANSFER_SRC_BIT);
723 stagingResource = Buffer::createAndAlloc(m_vk, m_device, stagingBufferResourceCreateInfo, allocator, vk::MemoryRequirement::HostVisible);
726 vk::flushAlloc(m_vk, m_device, stagingResource->getBoundMemory());
729 vk::Unique<vk::VkCommandPool> copyCmdPool(vk::createCommandPool(m_vk, m_device, ©CmdPoolCreateInfo));
730 vk::Unique<vk::VkCommandBuffer> copyCmdBuffer(vk::allocateCommandBuffer(m_vk, m_device, *copyCmdPool, vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY));
734 if (layout == vk::VK_IMAGE_LAYOUT_UNDEFINED)
736 layout = vk::VK_IMAGE_LAYOUT_GENERAL;
738 vk::VkImageMemoryBarrier barrier;
739 barrier.sType = vk::VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
743 barrier.oldLayout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
744 barrier.newLayout = vk::VK_IMAGE_LAYOUT_GENERAL;
755 m_vk.cmdPipelineBarrier(*copyCmdBuffer, vk::VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (vk::VkDependencyFlags)0,
756 0, (const vk::VkMemoryBarrier*)DE_NULL,
757 0, (const vk::VkBufferMemoryBarrier*)DE_NULL,
761 vk::VkBufferImageCopy region = {
763 { (vk::VkImageAspectFlags)aspect, mipLevel, arrayElement, 1 },
776 void Image::uploadLinear (vk::VkOffset3D offset,
782 vk::VkImageAspectFlagBits aspect,
788 vk::VkSubresourceLayout imageLayout;
790 vk::VkImageSubresource imageSubResource = { (vk::VkImageAspectFlags)aspect, mipLevel, arrayElement};
801 MemoryOp::pack(vk::mapVkFormat(m_format).getPixelSize(), width, height, depth,
805 void Image::bindMemory (de::MovePtr<vk::Allocation> allocation)
814 de::SharedPtr<Image> Image::createAndAlloc(const vk::DeviceInterface& vk,
815 vk::VkDevice device,
816 const vk::VkImageCreateInfo& createInfo,
817 vk::Allocator& allocator,
819 vk::MemoryRequirement memoryRequirement)
821 de::SharedPtr<Image> ret = create(vk, device, createInfo, queueFamilyIndex);
823 vk::VkMemoryRequirements imageRequirements = vk::getImageMemoryRequirements(vk, device, ret->object());
828 de::SharedPtr<Image> Image::create(const vk::DeviceInterface& vk,
829 vk::VkDevice device,
830 const vk::VkImageCreateInfo &createInfo,
833 return de::SharedPtr<Image>(new Image(vk, device, queueFamilyIndex, createInfo.format, createInfo.extent,
834 createInfo.mipLevels, createInfo.arrayLayers, vk::createImage(vk, device, &createInfo)));
837 void transition2DImage (const vk::DeviceInterface& vk,
838 vk::VkCommandBuffer cmdBuffer,
839 vk::VkImage image,
840 vk::VkImageAspectFlags aspectMask,
841 vk::VkImageLayout oldLayout,
842 vk::VkImageLayout newLayout,
843 vk::VkAccessFlags srcAccessMask,
844 vk::VkAccessFlags dstAccessMask,
845 vk::VkPipelineStageFlags srcStageMask,
846 vk::VkPipelineStageFlags dstStageMask,
849 vk::VkImageMemoryBarrier barrier;
850 barrier.sType = vk::VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
865 vk.cmdPipelineBarrier(cmdBuffer, srcStageMask, dstStageMask, (vk::VkDependencyFlags)0, 0, (const vk::VkMemoryBarrier*)DE_NULL,
866 0, (const vk::VkBufferMemoryBarrier*)DE_NULL, 1, &barrier);
869 void initialTransitionColor2DImage (const vk::DeviceInterface &vk, vk::VkCommandBuffer cmdBuffer, vk::VkImage image, vk::VkImageLayout layout,
870 vk::VkAccessFlags dstAccessMask, vk::VkPipelineStageFlags dstStageMask, deUint32 numLayers)
872 transition2DImage(vk, cmdBuffer, image, vk::VK_IMAGE_ASPECT_COLOR_BIT, vk::VK_IMAGE_LAYOUT_UNDEFINED, layout, 0u, dstAccessMask, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, dstStageMask, numLayers);
875 void initialTransitionDepth2DImage (const vk::DeviceInterface &vk, vk::VkCommandBuffer cmdBuffer, vk::VkImage image, vk::VkImageLayout layout,
876 vk::VkAccessFlags dstAccessMask, vk::VkPipelineStageFlags dstStageMask)
878 transition2DImage(vk, cmdBuffer, image, vk::VK_IMAGE_ASPECT_DEPTH_BIT, vk::VK_IMAGE_LAYOUT_UNDEFINED, layout, 0u, dstAccessMask, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, dstStageMask);
881 void initialTransitionStencil2DImage (const vk::DeviceInterface &vk, vk::VkCommandBuffer cmdBuffer, vk::VkImage image, vk::VkImageLayout layout,
882 vk::VkAccessFlags dstAccessMask, vk::VkPipelineStageFlags dstStageMask)
884 transition2DImage(vk, cmdBuffer, image, vk::VK_IMAGE_ASPECT_STENCIL_BIT, vk::VK_IMAGE_LAYOUT_UNDEFINED, layout, 0u, dstAccessMask, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, dstStageMask);
887 void initialTransitionDepthStencil2DImage (const vk::DeviceInterface& vk,
888 vk::VkCommandBuffer cmdBuffer,
889 vk::VkImage image,
890 vk::VkImageLayout layout,
891 vk::VkAccessFlags dstAccessMask,
892 vk::VkPipelineStageFlags dstStageMask)
894 transition2DImage(vk, cmdBuffer, image, vk::VK_IMAGE_ASPECT_DEPTH_BIT | vk::VK_IMAGE_ASPECT_STENCIL_BIT, vk::VK_IMAGE_LAYOUT_UNDEFINED, layout, 0u, dstAccessMask, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, dstStageMask);