radv: Add Radeon Raytracing Analyzer trace dumping utilities
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18166>
This commit is contained in:
committed by
Marge Bot
parent
07eceb4fe4
commit
5749806754
@@ -82,6 +82,7 @@ libradv_files = files(
|
|||||||
'radv_pipeline_rt.c',
|
'radv_pipeline_rt.c',
|
||||||
'radv_private.h',
|
'radv_private.h',
|
||||||
'radv_radeon_winsys.h',
|
'radv_radeon_winsys.h',
|
||||||
|
'radv_rra.c',
|
||||||
'radv_rt_common.c',
|
'radv_rt_common.c',
|
||||||
'radv_sdma_copy_image.c',
|
'radv_sdma_copy_image.c',
|
||||||
'radv_shader.c',
|
'radv_shader.c',
|
||||||
|
|||||||
@@ -789,6 +789,16 @@ struct radv_notifier {
|
|||||||
thrd_t thread;
|
thrd_t thread;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct radv_rra_trace_data {
|
||||||
|
int elapsed_frames;
|
||||||
|
int trace_frame;
|
||||||
|
char *trigger_file;
|
||||||
|
struct hash_table *accel_structs;
|
||||||
|
struct hash_table_u64 *accel_struct_vas;
|
||||||
|
simple_mtx_t data_mtx;
|
||||||
|
bool validate_as;
|
||||||
|
};
|
||||||
|
|
||||||
struct radv_device {
|
struct radv_device {
|
||||||
struct vk_device vk;
|
struct vk_device vk;
|
||||||
|
|
||||||
@@ -879,6 +889,9 @@ struct radv_device {
|
|||||||
/* SPM. */
|
/* SPM. */
|
||||||
struct ac_spm_trace_data spm_trace;
|
struct ac_spm_trace_data spm_trace;
|
||||||
|
|
||||||
|
/* Radeon Raytracing Analyzer trace. */
|
||||||
|
struct radv_rra_trace_data rra_trace;
|
||||||
|
|
||||||
/* Trap handler. */
|
/* Trap handler. */
|
||||||
struct radv_trap_handler_shader *trap_handler_shader;
|
struct radv_trap_handler_shader *trap_handler_shader;
|
||||||
struct radeon_winsys_bo *tma_bo; /* Trap Memory Address */
|
struct radeon_winsys_bo *tma_bo; /* Trap Memory Address */
|
||||||
@@ -2809,6 +2822,15 @@ void radv_emit_inhibit_clockgating(struct radv_device *device, struct radeon_cmd
|
|||||||
bool inhibit);
|
bool inhibit);
|
||||||
void radv_emit_spi_config_cntl(struct radv_device *device, struct radeon_cmdbuf *cs, bool enable);
|
void radv_emit_spi_config_cntl(struct radv_device *device, struct radeon_cmdbuf *cs, bool enable);
|
||||||
|
|
||||||
|
int radv_rra_trace_frame(void);
|
||||||
|
char *radv_rra_trace_trigger_file(void);
|
||||||
|
bool radv_rra_trace_enabled(void);
|
||||||
|
|
||||||
|
void radv_rra_trace_init(struct radv_device *device);
|
||||||
|
|
||||||
|
VkResult radv_rra_dump_trace(VkQueue vk_queue, char *filename);
|
||||||
|
void radv_rra_trace_finish(VkDevice vk_device, struct radv_rra_trace_data *data);
|
||||||
|
|
||||||
bool radv_sdma_copy_image(struct radv_cmd_buffer *cmd_buffer, struct radv_image *image,
|
bool radv_sdma_copy_image(struct radv_cmd_buffer *cmd_buffer, struct radv_image *image,
|
||||||
struct radv_buffer *buffer, const VkBufferImageCopy2 *region);
|
struct radv_buffer *buffer, const VkBufferImageCopy2 *region);
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user