X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fsynchronizer.h;h=32a4d9793e303125a76e841aff368276ab791541;hb=1a5dafe20e47c764f2914c341fb7b8f1fba59fb8;hp=48699540f32b302fb8b376abd3993a2947d60848;hpb=a16145549dc87c3b12671f797bd77b14bcc7786b;p=libs%2Fgl.git diff --git a/source/backends/vulkan/synchronizer.h b/source/backends/vulkan/synchronizer.h index 48699540..32a4d979 100644 --- a/source/backends/vulkan/synchronizer.h +++ b/source/backends/vulkan/synchronizer.h @@ -8,6 +8,8 @@ namespace Msp { namespace GL { +class VulkanCommandRecorder; + class Synchronizer { private: @@ -15,7 +17,7 @@ private: { VkImage image = 0; unsigned aspect; - int layer = -1; + int level = -1; unsigned current_layout; unsigned pending_layout; }; @@ -36,10 +38,11 @@ private: 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);