mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-30 01:20:17 +01:00
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:
parent
07eceb4fe4
commit
5749806754
3 changed files with 1157 additions and 0 deletions
|
|
@ -82,6 +82,7 @@ libradv_files = files(
|
|||
'radv_pipeline_rt.c',
|
||||
'radv_private.h',
|
||||
'radv_radeon_winsys.h',
|
||||
'radv_rra.c',
|
||||
'radv_rt_common.c',
|
||||
'radv_sdma_copy_image.c',
|
||||
'radv_shader.c',
|
||||
|
|
|
|||
|
|
@ -789,6 +789,16 @@ struct radv_notifier {
|
|||
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 vk_device vk;
|
||||
|
||||
|
|
@ -879,6 +889,9 @@ struct radv_device {
|
|||
/* SPM. */
|
||||
struct ac_spm_trace_data spm_trace;
|
||||
|
||||
/* Radeon Raytracing Analyzer trace. */
|
||||
struct radv_rra_trace_data rra_trace;
|
||||
|
||||
/* Trap handler. */
|
||||
struct radv_trap_handler_shader *trap_handler_shader;
|
||||
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);
|
||||
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,
|
||||
struct radv_buffer *buffer, const VkBufferImageCopy2 *region);
|
||||
|
||||
|
|
|
|||
1134
src/amd/vulkan/radv_rra.c
Normal file
1134
src/amd/vulkan/radv_rra.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue