mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-02-19 06:05:46 +01:00
26 lines
1.3 KiB
C++
26 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "../VulkanAPI.h"
|
|
|
|
namespace vk
|
|
{
|
|
class image;
|
|
|
|
//Texture barrier applies to a texture to ensure writes to it are finished before any reads are attempted to avoid RAW hazards
|
|
void insert_texture_barrier(VkCommandBuffer cmd, VkImage image, VkImageLayout current_layout, VkImageLayout new_layout, VkImageSubresourceRange range);
|
|
void insert_texture_barrier(VkCommandBuffer cmd, vk::image* image, VkImageLayout new_layout);
|
|
|
|
void insert_buffer_memory_barrier(VkCommandBuffer cmd, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize length,
|
|
VkPipelineStageFlags src_stage, VkPipelineStageFlags dst_stage, VkAccessFlags src_mask, VkAccessFlags dst_mask);
|
|
|
|
void insert_image_memory_barrier(VkCommandBuffer cmd, VkImage image, VkImageLayout current_layout, VkImageLayout new_layout,
|
|
VkPipelineStageFlags src_stage, VkPipelineStageFlags dst_stage, VkAccessFlags src_mask, VkAccessFlags dst_mask,
|
|
const VkImageSubresourceRange& range);
|
|
|
|
void insert_global_memory_barrier(VkCommandBuffer cmd,
|
|
VkPipelineStageFlags src_stage = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
|
|
VkPipelineStageFlags dst_stage = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
|
|
VkAccessFlags src_access = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
|
|
VkAccessFlags dst_access = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT);
|
|
}
|