blob: 2dbe36a5fde642b6f132ea0d35445d7c5487c346 [file] [log] [blame]
/*
* 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 */