radv: compile GS copy shader after geometry shader
This affects the pipeline feedback durations: GS copy shader compilation is now included in the GS compilation duration. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18898>
This commit is contained in:
@@ -3657,13 +3657,6 @@ radv_pipeline_nir_to_asm(struct radv_pipeline *pipeline, struct radv_pipeline_st
|
||||
bool pipeline_has_ngg = last_vgt_api_stage != MESA_SHADER_NONE &&
|
||||
stages[last_vgt_api_stage].info.is_ngg;
|
||||
|
||||
if (stages[MESA_SHADER_GEOMETRY].nir && !pipeline_has_ngg) {
|
||||
pipeline->gs_copy_shader =
|
||||
radv_pipeline_create_gs_copy_shader(pipeline, stages, pipeline_key, pipeline_layout,
|
||||
keep_executable_info, keep_statistic_info,
|
||||
gs_copy_binary);
|
||||
}
|
||||
|
||||
for (int s = MESA_VULKAN_SHADER_STAGES - 1; s >= 0; s--) {
|
||||
if (!(active_stages & (1 << s)) || pipeline->shaders[s])
|
||||
continue;
|
||||
@@ -3693,6 +3686,12 @@ radv_pipeline_nir_to_asm(struct radv_pipeline *pipeline, struct radv_pipeline_st
|
||||
pipeline_key, keep_executable_info,
|
||||
keep_statistic_info, &binaries[s]);
|
||||
|
||||
if (s == MESA_SHADER_GEOMETRY && !pipeline_has_ngg) {
|
||||
pipeline->gs_copy_shader = radv_pipeline_create_gs_copy_shader(
|
||||
pipeline, stages, pipeline_key, pipeline_layout, keep_executable_info,
|
||||
keep_statistic_info, gs_copy_binary);
|
||||
}
|
||||
|
||||
stages[s].feedback.duration += os_time_get_nano() - stage_start;
|
||||
|
||||
active_stages &= ~(1 << shaders[0]->info.stage);
|
||||
|
Reference in New Issue
Block a user