mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 02:48:06 +02:00
radv: simplify radv_shader_dump_debug_info
And rename to better reflect what it does. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40627>
This commit is contained in:
parent
4073cdf753
commit
8cf1fc930c
5 changed files with 15 additions and 16 deletions
|
|
@ -142,7 +142,7 @@ radv_compile_cs(struct radv_device *device, struct vk_pipeline_cache *cache, str
|
|||
cs_shader->dbg.stages = 1 << MESA_SHADER_COMPUTE;
|
||||
cs_shader->dbg.dump_shader = dump_shader;
|
||||
|
||||
radv_shader_dump_debug_info(device, dump_shader, *cs_binary, cs_shader, &cs_stage->nir, 1, &cs_stage->info);
|
||||
radv_shader_dump_asm(device, &cs_shader->dbg, &cs_stage->info);
|
||||
|
||||
if (dump_shader)
|
||||
simple_mtx_unlock(&instance->shader_dump_mtx);
|
||||
|
|
|
|||
|
|
@ -2430,7 +2430,7 @@ radv_create_gs_copy_shader(struct radv_device *device, struct vk_pipeline_cache
|
|||
copy_shader->dbg.nir_string = nir_string;
|
||||
copy_shader->dbg.stages = 1 << MESA_SHADER_VERTEX;
|
||||
copy_shader->dbg.dump_shader = dump_shader;
|
||||
radv_shader_dump_debug_info(device, dump_shader, *gs_copy_binary, copy_shader, &nir, 1, &gs_copy_stage.info);
|
||||
radv_shader_dump_asm(device, ©_shader->dbg, &gs_copy_stage.info);
|
||||
}
|
||||
|
||||
if (dump_shader)
|
||||
|
|
@ -2507,8 +2507,7 @@ radv_graphics_shaders_nir_to_asm(struct radv_device *device, struct vk_pipeline_
|
|||
shaders[s]->dbg.stages |= 1 << nir_shaders[i]->info.stage;
|
||||
shaders[s]->dbg.dump_shader = dump_shader;
|
||||
|
||||
radv_shader_dump_debug_info(device, dump_shader, binaries[s], shaders[s], nir_shaders, shader_count,
|
||||
&stages[s].info);
|
||||
radv_shader_dump_asm(device, &shaders[s]->dbg, &stages[s].info);
|
||||
|
||||
if (dump_shader)
|
||||
simple_mtx_unlock(&instance->shader_dump_mtx);
|
||||
|
|
|
|||
|
|
@ -533,7 +533,7 @@ radv_rt_nir_to_asm(struct radv_device *device, struct vk_pipeline_cache *cache,
|
|||
if (stack_size)
|
||||
*stack_size = DIV_ROUND_UP(shader->config.scratch_bytes_per_wave, shader->info.wave_size);
|
||||
|
||||
radv_shader_dump_debug_info(device, dump_shader, binary, shader, shaders, num_shaders, &stage->info);
|
||||
radv_shader_dump_asm(device, &shader->dbg, &stage->info);
|
||||
|
||||
if (shader && keep_executable_info && stage->spirv.size) {
|
||||
shader->dbg.spirv = malloc(stage->spirv.size);
|
||||
|
|
|
|||
|
|
@ -3350,20 +3350,21 @@ radv_shader_nir_to_asm(struct radv_device *device, struct radv_shader_stage *pl_
|
|||
}
|
||||
|
||||
void
|
||||
radv_shader_dump_debug_info(struct radv_device *device, bool dump_shader, struct radv_shader_binary *binary,
|
||||
struct radv_shader *shader, struct nir_shader *const *shaders, int shader_count,
|
||||
struct radv_shader_info *info)
|
||||
radv_shader_dump_asm(struct radv_device *device, const struct radv_shader_debug_info *debug,
|
||||
const struct radv_shader_info *info)
|
||||
{
|
||||
if (dump_shader) {
|
||||
if (debug->dump_shader) {
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
const struct radv_instance *instance = radv_physical_device_instance(pdev);
|
||||
|
||||
if (instance->debug_flags & RADV_DEBUG_DUMP_ASM) {
|
||||
fprintf(stderr, "%s", radv_get_shader_name(info, shaders[0]->info.stage));
|
||||
for (int i = 1; i < shader_count; ++i)
|
||||
fprintf(stderr, " + %s", radv_get_shader_name(info, shaders[i]->info.stage));
|
||||
const char *sep = "";
|
||||
u_foreach_bit (stage, debug->stages) {
|
||||
fprintf(stderr, "%s%s", sep, radv_get_shader_name(info, stage));
|
||||
sep = " + ";
|
||||
}
|
||||
|
||||
fprintf(stderr, "\ndisasm:\n%s\n", shader->dbg.disasm_string);
|
||||
fprintf(stderr, "\ndisasm:\n%s\n", debug->disasm_string);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -530,9 +530,8 @@ struct radv_shader_binary *radv_shader_nir_to_asm(struct radv_device *device, st
|
|||
const struct radv_graphics_state_key *gfx_state,
|
||||
bool keep_shader_info, bool keep_statistic_info);
|
||||
|
||||
void radv_shader_dump_debug_info(struct radv_device *device, bool dump_shader, struct radv_shader_binary *binary,
|
||||
struct radv_shader *shader, struct nir_shader *const *shaders, int shader_count,
|
||||
struct radv_shader_info *info);
|
||||
void radv_shader_dump_asm(struct radv_device *device, const struct radv_shader_debug_info *debug,
|
||||
const struct radv_shader_info *info);
|
||||
|
||||
struct radv_instance;
|
||||
char *radv_dump_nir_shaders(const struct radv_instance *instance, struct nir_shader *const *shaders, int shader_count);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue