| 566 | } |
| 567 | |
| 568 | AccessFlags getAccessMask( ImageLayout layout )noexcept |
| 569 | { |
| 570 | AccessFlags result{ 0u }; |
| 571 | |
| 572 | switch ( layout ) |
| 573 | { |
| 574 | case ImageLayout::ePresentSrc: |
| 575 | case ImageLayout::eSharedPresent: |
| 576 | result |= AccessFlags::eMemoryRead; |
| 577 | break; |
| 578 | case ImageLayout::eColorAttachment: |
| 579 | result |= AccessFlags::eColorAttachmentWrite; |
| 580 | break; |
| 581 | case ImageLayout::eDepthStencilAttachment: |
| 582 | result |= AccessFlags::eDepthStencilAttachmentWrite; |
| 583 | break; |
| 584 | case ImageLayout::eDepthStencilReadOnly: |
| 585 | result |= AccessFlags::eDepthStencilAttachmentRead; |
| 586 | break; |
| 587 | case ImageLayout::eShaderReadOnly: |
| 588 | result |= AccessFlags::eShaderRead; |
| 589 | break; |
| 590 | case ImageLayout::eTransferSrc: |
| 591 | result |= AccessFlags::eTransferRead; |
| 592 | break; |
| 593 | case ImageLayout::eTransferDst: |
| 594 | result |= AccessFlags::eTransferWrite; |
| 595 | break; |
| 596 | case ImageLayout::eDepthReadOnlyStencilAttachment: |
| 597 | case ImageLayout::eDepthAttachmentStencilReadOnly: |
| 598 | result |= AccessFlags::eDepthStencilAttachmentRead; |
| 599 | result |= AccessFlags::eDepthStencilAttachmentWrite; |
| 600 | break; |
| 601 | #ifdef VK_NV_shading_rate_image |
| 602 | case ImageLayout::eFragmentShadingRateAttachment: |
| 603 | result |= AccessFlags::eFragmentShadingRateAttachmentRead; |
| 604 | break; |
| 605 | #endif |
| 606 | #ifdef VK_EXT_fragment_density_map |
| 607 | case ImageLayout::eFragmentDensityMap: |
| 608 | result |= AccessFlags::eFragmentDensityMapRead; |
| 609 | break; |
| 610 | #endif |
| 611 | default: |
| 612 | break; |
| 613 | } |
| 614 | |
| 615 | return result; |
| 616 | } |
| 617 | |
| 618 | PipelineState getPipelineState( PipelineStageFlags flags )noexcept |
| 619 | { |
no outgoing calls