radv: move calculating the vertex sgpr to the pipeline.
There is no need to calculate this at draw time. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -2206,6 +2206,16 @@ radv_pipeline_init(struct radv_pipeline *pipeline,
|
||||
pipeline->binding_stride[desc->binding] = desc->stride;
|
||||
}
|
||||
|
||||
struct ac_userdata_info *loc = radv_lookup_user_sgpr(pipeline, MESA_SHADER_VERTEX,
|
||||
AC_UD_VS_BASE_VERTEX_START_INSTANCE);
|
||||
if (loc->sgpr_idx != -1) {
|
||||
pipeline->graphics.vtx_base_sgpr = radv_shader_stage_to_user_data_0(MESA_SHADER_VERTEX, radv_pipeline_has_gs(pipeline), radv_pipeline_has_tess(pipeline));
|
||||
pipeline->graphics.vtx_base_sgpr += loc->sgpr_idx * 4;
|
||||
if (pipeline->shaders[MESA_SHADER_VERTEX]->info.info.vs.needs_draw_id)
|
||||
pipeline->graphics.vtx_emit_num = 3;
|
||||
else
|
||||
pipeline->graphics.vtx_emit_num = 2;
|
||||
}
|
||||
if (device->debug_flags & RADV_DEBUG_DUMP_SHADER_STATS) {
|
||||
radv_dump_pipeline_stats(device, pipeline);
|
||||
}
|
||||
|
Reference in New Issue
Block a user