| /* |
| * Copyright © 2024 Igalia S.L. |
| * SPDX-License-Identifier: MIT |
| */ |
| |
| #ifndef TU_RMV_H |
| #define TU_RMV_H |
| |
| #include "tu_common.h" |
| |
| #include "rmv/vk_rmv_common.h" |
| |
| #define TU_RMV(func, device, ...) do { \ |
| if (unlikely((device)->vk.memory_trace_data.is_enabled)) \ |
| tu_rmv_log_##func(device, __VA_ARGS__); \ |
| } while(0) |
| |
| void |
| tu_memory_trace_init(struct tu_device *device); |
| |
| void |
| tu_memory_trace_finish(struct tu_device *device); |
| |
| void |
| tu_rmv_log_heap_create(struct tu_device *device, |
| const VkMemoryAllocateInfo *allocate_info, |
| struct tu_device_memory *device_memory); |
| |
| void |
| tu_rmv_log_bo_allocate(struct tu_device *device, struct tu_bo *bo); |
| void |
| tu_rmv_log_bo_destroy(struct tu_device *device, struct tu_bo *bo); |
| void |
| tu_rmv_log_bo_map(struct tu_device *device, struct tu_bo *bo); |
| void |
| tu_rmv_log_bo_unmap(struct tu_device *device, struct tu_bo *bo); |
| |
| void |
| tu_rmv_log_buffer_create(struct tu_device *device, struct tu_buffer *buffer); |
| void |
| tu_rmv_log_buffer_destroy(struct tu_device *device, struct tu_buffer *buffer); |
| void |
| tu_rmv_log_buffer_bind(struct tu_device *device, struct tu_buffer *buffer); |
| |
| void |
| tu_rmv_log_image_create(struct tu_device *device, struct tu_image *image); |
| void |
| tu_rmv_log_image_destroy(struct tu_device *device, struct tu_image *image); |
| void |
| tu_rmv_log_image_bind(struct tu_device *device, struct tu_image *image); |
| |
| void |
| tu_rmv_log_cmd_buffer_bo_create(struct tu_device *device, |
| struct tu_bo *bo); |
| void |
| tu_rmv_log_cmd_buffer_suballoc_bo_create(struct tu_device *device, |
| struct tu_suballoc_bo *suballoc_bo); |
| void |
| tu_rmv_log_query_pool_create(struct tu_device *device, |
| struct tu_query_pool *query_pool); |
| void |
| tu_rmv_log_descriptor_pool_create(struct tu_device *device, |
| const VkDescriptorPoolCreateInfo *create_info, |
| struct tu_descriptor_pool *descriptor_pool); |
| void |
| tu_rmv_log_graphics_pipeline_create(struct tu_device *device, |
| struct tu_graphics_pipeline *graphics_pipeline); |
| void |
| tu_rmv_log_compute_pipeline_create(struct tu_device *device, |
| struct tu_compute_pipeline *compute_pipeline); |
| void |
| tu_rmv_log_event_create(struct tu_device *device, |
| const VkEventCreateInfo *create_info, |
| struct tu_event *event); |
| |
| void |
| tu_rmv_log_internal_resource_create(struct tu_device *device, struct tu_bo *bo); |
| void |
| tu_rmv_log_resource_name(struct tu_device *device, const void *resource, |
| const char *resource_name); |
| void |
| tu_rmv_log_resource_destroy(struct tu_device *device, const void *resource); |
| |
| #endif /* TU_RMV_H */ |