Preliminary work for moving the shaders array outside of radv_pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21878>
shader->ir_string);
fprintf(f, "DISASM:\n%s\n", shader->disasm_string);
- radv_dump_shader_stats(pipeline->device, pipeline, stage, f);
+ radv_dump_shader_stats(pipeline->device, pipeline, shader, stage, f);
}
static void
free(binaries[i]);
if (stages[i].nir) {
if (radv_can_dump_shader_stats(device, stages[i].nir) && pipeline->base.shaders[i]) {
- radv_dump_shader_stats(device, &pipeline->base, i, stderr);
+ radv_dump_shader_stats(device, &pipeline->base, pipeline->base.shaders[i], i, stderr);
}
ralloc_free(stages[i].nir);
free(binaries[MESA_SHADER_COMPUTE]);
if (radv_can_dump_shader_stats(device, cs_stage.nir)) {
- radv_dump_shader_stats(device, &pipeline->base, MESA_SHADER_COMPUTE, stderr);
+ radv_dump_shader_stats(device, &pipeline->base, pipeline->base.shaders[MESA_SHADER_COMPUTE],
+ MESA_SHADER_COMPUTE, stderr);
}
ralloc_free(cs_stage.nir);
free(binaries[rt_stage.stage]);
if (radv_can_dump_shader_stats(device, rt_stage.nir)) {
- radv_dump_shader_stats(device, pipeline, rt_stage.stage, stderr);
+ radv_dump_shader_stats(device, pipeline, pipeline->shaders[rt_stage.stage], rt_stage.stage,
+ stderr);
}
ralloc_free(rt_stage.nir);
VkResult
radv_dump_shader_stats(struct radv_device *device, struct radv_pipeline *pipeline,
- gl_shader_stage stage, FILE *output)
+ struct radv_shader *shader, gl_shader_stage stage, FILE *output)
{
- struct radv_shader *shader = pipeline->shaders[stage];
VkPipelineExecutablePropertiesKHR *props = NULL;
uint32_t prop_count = 0;
VkResult result;
bool radv_can_dump_shader_stats(struct radv_device *device, nir_shader *nir);
VkResult radv_dump_shader_stats(struct radv_device *device, struct radv_pipeline *pipeline,
- gl_shader_stage stage, FILE *output);
+ struct radv_shader *shader, gl_shader_stage stage, FILE *output);
static inline struct radv_shader *
radv_shader_ref(struct radv_shader *shader)