| 552 | } |
| 553 | |
| 554 | void RecordContext::copyBuffer( VkCommandBuffer commandBuffer |
| 555 | , uint32_t index |
| 556 | , BufferViewId srcView |
| 557 | , BufferViewId dstView |
| 558 | , DeviceSize srcOffset, DeviceSize dstOffset |
| 559 | , DeviceSize size |
| 560 | , AccessState const & finalState ) |
| 561 | { |
| 562 | runImplicitTransition( commandBuffer, index, srcView ); |
| 563 | memoryBarrier( commandBuffer, srcView, { AccessFlags::eTransferRead, PipelineStageFlags::eTransfer } ); |
| 564 | memoryBarrier( commandBuffer, dstView, { AccessFlags::eTransferWrite, PipelineStageFlags::eTransfer } ); |
| 565 | auto & resources = getResources(); |
| 566 | VkBufferCopy region{ srcOffset, dstOffset, size }; |
| 567 | resources->vkCmdCopyBuffer( commandBuffer |
| 568 | , resources.createBuffer( srcView.data->buffer ) |
| 569 | , resources.createBuffer( dstView.data->buffer ) |
| 570 | , 1u, ®ion ); |
| 571 | |
| 572 | if ( finalState != AccessState{} ) |
| 573 | memoryBarrier( commandBuffer, dstView, finalState ); |
| 574 | } |
| 575 | |
| 576 | void RecordContext::clearBuffer( VkCommandBuffer commandBuffer |
| 577 | , BufferViewId dstView |
nothing calls this directly
no test coverage detected