mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 07:20:10 +01:00
radv: Separate option to print shader disassembly.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Acked-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32079>
This commit is contained in:
parent
3f92c0bbe9
commit
649da9e744
4 changed files with 13 additions and 4 deletions
|
|
@ -1434,6 +1434,8 @@ RADV driver environment variables
|
|||
Dump compute (and ray tracing) shaders.
|
||||
``nir``
|
||||
Dump NIR for selected shader stages.
|
||||
``asm``
|
||||
Dump shader disassembly for selected shader stages.
|
||||
|
||||
.. envvar:: RADV_FORCE_FAMILY
|
||||
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ enum {
|
|||
RADV_DEBUG_DUMP_MESH = 1ull << 54,
|
||||
RADV_DEBUG_DUMP_CS = 1ull << 55,
|
||||
RADV_DEBUG_DUMP_NIR = 1ull << 56,
|
||||
RADV_DEBUG_DUMP_ASM = 1ull << 57,
|
||||
};
|
||||
|
||||
enum {
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ static const struct debug_control radv_debug_options[] = {{"nofastclears", RADV_
|
|||
{"mesh", RADV_DEBUG_DUMP_MESH},
|
||||
{"cs", RADV_DEBUG_DUMP_CS},
|
||||
{"nir", RADV_DEBUG_DUMP_NIR},
|
||||
{"asm", RADV_DEBUG_DUMP_ASM},
|
||||
{NULL, 0}};
|
||||
|
||||
const char *
|
||||
|
|
|
|||
|
|
@ -3142,11 +3142,16 @@ radv_shader_generate_debug_info(struct radv_device *device, bool dump_shader, bo
|
|||
radv_capture_shader_executable_info(device, shader, shaders, shader_count, binary);
|
||||
|
||||
if (dump_shader) {
|
||||
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 struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
const struct radv_instance *instance = radv_physical_device_instance(pdev);
|
||||
|
||||
fprintf(stderr, "\ndisasm:\n%s\n", shader->disasm_string);
|
||||
if (instance->debug_flags & (RADV_DEBUG_DUMP_ASM | RADV_DEBUG_DUMP_SHADERS)) {
|
||||
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));
|
||||
|
||||
fprintf(stderr, "\ndisasm:\n%s\n", shader->disasm_string);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue