52 VkPipelineStageFlags src_stage_mask = VK_PIPELINE_STAGE_NONE;
53 VkPipelineStageFlags dst_stage_mask = VK_PIPELINE_STAGE_NONE;
57 return buffer_memory_barriers.
is_empty() && image_memory_barriers.
is_empty();
73 ImageTracker(
VKCommandBuilder &command_builder) : command_builder(command_builder) {}
106 inline bool contains(VkImage vk_image)
const
108 return tracked_attachments.contains(vk_image);
116 void update(VkImage vk_image,
118 VkImageLayout old_layout,
119 VkImageLayout new_layout,
126 void update(VkImage vk_image,
127 uint32_t mipmap_level,
128 VkImageLayout old_layout,
129 VkImageLayout new_layout,
140 void end(Barrier &r_barrier,
bool use_local_read);
150 void suspend(Barrier &r_barrier,
bool use_local_read);
158 void resume(Barrier &r_barrier,
bool use_local_read);
227 bool supports_local_read);
242 VkPipelineStageFlags pipeline_stage,
243 ImageTracker &image_tracker,
245 bool within_rendering =
false);
246 void reset_barriers(Barrier &r_barrier);
248 const Barrier &barrier,
249 bool within_rendering);
253 VkPipelineStageFlags node_stages,
255 void add_buffer_barrier(VkBuffer vk_buffer,
257 VkAccessFlags src_access_mask,
258 VkAccessFlags dst_access_mask);
261 VkPipelineStageFlags node_stages,
265 VkPipelineStageFlags node_stages,
270 VkPipelineStageFlags node_stages,
271 ImageTracker &image_tracker,
273 bool within_rendering);
274 void add_image_barrier(VkImage vk_image,
276 VkAccessFlags src_access_mask,
277 VkAccessFlags dst_access_mask,
278 VkImageLayout old_image_layout,
279 VkImageLayout new_image_layout,
280 VkImageAspectFlags aspect_mask,
284 VkPipelineStageFlags node_stages,
285 ImageTracker &image_tracker,
287 bool within_rendering);
290 VkPipelineStageFlags node_stages,
291 ImageTracker &image_tracker,
293 bool within_rendering);
300 int64_t active_debug_group_id = -1;
314 VKCommandBufferInterface &command_buffer,
315 DebugGroups &debug_groups,
321 void finish_debug_groups(VKCommandBufferInterface &command_buffer, DebugGroups &debug_groups);
334 void layer_tracking_update(VkImage vk_image,
336 uint32_t layer_count,
337 VkImageLayout old_layout,
338 VkImageLayout new_layout);
348 void layer_tracking_end(VKCommandBufferInterface &command_buffer);
358 void layer_tracking_suspend(VKCommandBufferInterface &command_buffer);
366 void layer_tracking_resume(VKCommandBufferInterface &command_buffer);
370 std::string to_string_barrier(
const Barrier &barrier);