namespace Msp {
namespace GL {
+class VulkanCommandRecorder;
+
class Synchronizer
{
private:
{
VkImage image = 0;
unsigned aspect;
- int layer = -1;
+ int level = -1;
unsigned current_layout;
unsigned pending_layout;
};
public:
Synchronizer(Device &);
- void access(VkBuffer, std::size_t, std::size_t);
- void access(VkImage, unsigned, int, unsigned, bool);
+ void write_buffer(VkBuffer, std::size_t, std::size_t, bool = false);
+ void split_image_mipmap(VkImage, unsigned, unsigned);
+ void change_image_layout(VkImage, unsigned, int, unsigned, bool);
void reset();
- void barrier(VkCommandBuffer);
+ void barrier(const VulkanCommandRecorder &);
private:
bool is_write_layout(unsigned);