aco: Pass debug information to the driver

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29298>
This commit is contained in:
Konstantin Seurer 2024-10-06 09:39:49 +02:00 committed by Marge Bot
parent f8ef1afec8
commit 69ebba82d4
4 changed files with 10 additions and 5 deletions

View file

@ -300,7 +300,8 @@ aco_compile_shader(const struct aco_compiler_options* options, const struct aco_
(*build_binary)(binary, &config, llvm_ir.c_str(), llvm_ir.size(), disasm.c_str(), disasm.size(),
program->statistics, stats_size, exec_size, code.data(), code.size(),
symbols.data(), symbols.size());
symbols.data(), symbols.size(), program->debug_info.data(),
program->debug_info.size());
}
void
@ -344,7 +345,7 @@ aco_compile_rt_prolog(const struct aco_compiler_options* options,
disasm = get_disasm_string(program.get(), code, exec_size);
(*build_prolog)(binary, &config, NULL, 0, disasm.c_str(), disasm.size(), program->statistics, 0,
exec_size, code.data(), code.size(), NULL, 0);
exec_size, code.data(), code.size(), NULL, 0, NULL, 0);
}
void

View file

@ -8,6 +8,7 @@
#define ACO_INTERFACE_H
#include "aco_shader_info.h"
#include "ac_shader_debug_info.h"
#include "nir.h"
@ -34,7 +35,8 @@ typedef void(aco_callback)(void** priv_ptr, const struct ac_shader_config* confi
const char* llvm_ir_str, unsigned llvm_ir_size, const char* disasm_str,
unsigned disasm_size, uint32_t* statistics, uint32_t stats_size,
uint32_t exec_size, const uint32_t* code, uint32_t code_dw,
const struct aco_symbol* symbols, unsigned num_symbols);
const struct aco_symbol* symbols, unsigned num_symbols,
const struct ac_shader_debug_info* debug_info, unsigned debug_info_count);
typedef void(aco_shader_part_callback)(void** priv_ptr, uint32_t num_sgprs, uint32_t num_vgprs,
const uint32_t* code, uint32_t code_size,

View file

@ -2841,7 +2841,8 @@ static void
radv_aco_build_shader_binary(void **bin, const struct ac_shader_config *config, const char *llvm_ir_str,
unsigned llvm_ir_size, const char *disasm_str, unsigned disasm_size, uint32_t *statistics,
uint32_t stats_size, uint32_t exec_size, const uint32_t *code, uint32_t code_dw,
const struct aco_symbol *symbols, unsigned num_symbols)
const struct aco_symbol *symbols, unsigned num_symbols,
const struct ac_shader_debug_info *debug_info, unsigned debug_info_count)
{
struct radv_shader_binary **binary = (struct radv_shader_binary **)bin;
size_t size = llvm_ir_size;

View file

@ -113,7 +113,8 @@ si_aco_build_shader_binary(void **data, const struct ac_shader_config *config,
const char *llvm_ir_str, unsigned llvm_ir_size, const char *disasm_str,
unsigned disasm_size, uint32_t *statistics, uint32_t stats_size,
uint32_t exec_size, const uint32_t *code, uint32_t code_dw,
const struct aco_symbol *symbols, unsigned num_symbols)
const struct aco_symbol *symbols, unsigned num_symbols,
const struct ac_shader_debug_info *debug_info, unsigned debug_info_count)
{
struct si_shader *shader = (struct si_shader *)data;