radv: include RT shaders in RADV_DEBUG=shaders,shaderstats

Instead of using module->nir or nir->info->name to determine if it's a
meta shader, use nir->info->internal.

This also has an effect of disabling printing of meta shaders with
NIR_DEBUG=print.

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/14087>
This commit is contained in:
Rhys Perry 2021-12-06 18:21:11 +00:00 committed by Marge Bot
parent d74498e617
commit 2020a1799b
2 changed files with 14 additions and 4 deletions

View File

@ -564,6 +564,8 @@ nir_builder PRINTFLIKE(2, 3) radv_meta_init_shader(gl_shader_stage stage, const
va_end(args);
}
b.shader->info.internal = true;
return b;
}

View File

@ -103,6 +103,12 @@ radv_get_nir_options(struct radv_physical_device *device)
};
}
static bool
is_meta_shader(nir_shader *nir)
{
return nir && nir->info.internal;
}
bool
radv_can_dump_shader(struct radv_device *device, struct vk_shader_module *module,
bool meta_shader)
@ -110,7 +116,8 @@ radv_can_dump_shader(struct radv_device *device, struct vk_shader_module *module
if (!(device->instance->debug_flags & RADV_DEBUG_DUMP_SHADERS))
return false;
if (module)
return !module->nir || (device->instance->debug_flags & RADV_DEBUG_DUMP_META_SHADERS);
return !is_meta_shader(module->nir) ||
(device->instance->debug_flags & RADV_DEBUG_DUMP_META_SHADERS);
return meta_shader;
}
@ -119,7 +126,8 @@ bool
radv_can_dump_shader_stats(struct radv_device *device, struct vk_shader_module *module)
{
/* Only dump non-meta shader stats. */
return device->instance->debug_flags & RADV_DEBUG_DUMP_SHADER_STATS && module && !module->nir;
return device->instance->debug_flags & RADV_DEBUG_DUMP_SHADER_STATS && module &&
!is_meta_shader(module->nir);
}
void
@ -898,7 +906,7 @@ radv_consider_culling(struct radv_device *device, struct nir_shader *nir, uint64
unsigned num_vertices_per_primitive, const struct radv_shader_info *info)
{
/* Culling doesn't make sense for meta shaders. */
if (!!nir->info.name)
if (is_meta_shader(nir))
return false;
/* We don't support culling with multiple viewports yet. */
@ -1787,7 +1795,7 @@ shader_compile(struct radv_device *device, struct vk_shader_module *module,
options->address32_hi = device->physical_device->rad_info.address32_hi;
options->has_ls_vgpr_init_bug = device->physical_device->rad_info.has_ls_vgpr_init_bug;
options->enable_mrt_output_nan_fixup =
module && !module->nir && options->key.ps.enable_mrt_output_nan_fixup;
module && !is_meta_shader(module->nir) && options->key.ps.enable_mrt_output_nan_fixup;
options->adjust_frag_coord_z = device->adjust_frag_coord_z;
options->has_image_load_dcc_bug = device->physical_device->rad_info.has_image_load_dcc_bug;
options->debug.func = radv_compiler_debug;