X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fsynchronizer.h;h=48699540f32b302fb8b376abd3993a2947d60848;hp=ea3d07595e29a97d6583f9472c627469bcfa3912;hb=a16145549dc87c3b12671f797bd77b14bcc7786b;hpb=bbdf52425b736a59d01dda215458c3a1c9bdb320 diff --git a/source/backends/vulkan/synchronizer.h b/source/backends/vulkan/synchronizer.h index ea3d0759..48699540 100644 --- a/source/backends/vulkan/synchronizer.h +++ b/source/backends/vulkan/synchronizer.h @@ -11,6 +11,15 @@ namespace GL { class Synchronizer { private: + struct ImageAccess + { + VkImage image = 0; + unsigned aspect; + int layer = -1; + unsigned current_layout; + unsigned pending_layout; + }; + struct BufferAccess { VkBuffer buffer = 0; @@ -22,13 +31,18 @@ private: Device &device; std::vector buffer_accesses; + std::vector image_accesses; public: Synchronizer(Device &); void access(VkBuffer, std::size_t, std::size_t); + void access(VkImage, unsigned, int, unsigned, bool); void reset(); void barrier(VkCommandBuffer); + +private: + bool is_write_layout(unsigned); }; } // namespace GL