{
struct rgp_sqtt_marker_pipeline_bind marker = {0};
struct radeon_cmdbuf *cs = cmd_buffer->cs;
- uint64_t pipeline_idx = (uintptr_t)pipeline;
// TODO: Enable when PSO records & friends are dumped.
return;
marker.identifier = RGP_SQTT_MARKER_IDENTIFIER_BIND_PIPELINE;
marker.cb_id = 0;
marker.bind_point = pipelineBindPoint;
- marker.api_pso_hash[0] = pipeline_idx;
- marker.api_pso_hash[1] = pipeline_idx >> 32;
+ marker.api_pso_hash[0] = pipeline->pipeline_hash;
+ marker.api_pso_hash[1] = pipeline->pipeline_hash >> 32;
radv_emit_thread_trace_userdata(cmd_buffer->device, cs, &marker, sizeof(marker) / 4);
}
memcpy(gs_copy_hash, hash, 20);
gs_copy_hash[0] ^= 1;
+ pipeline->pipeline_hash = *(uint64_t *)hash;
+
bool found_in_application_cache = true;
if (modules[MESA_SHADER_GEOMETRY] && !keep_executable_info && !keep_statistic_info) {
struct radv_shader_variant *variants[MESA_SHADER_STAGES] = {0};
/* Not NULL if graphics pipeline uses streamout. */
struct radv_shader_variant *streamout_shader;
+
+ /* Unique pipeline hash identifier. */
+ uint64_t pipeline_hash;
};
static inline bool radv_pipeline_has_gs(const struct radv_pipeline *pipeline)