Lines Matching full:args
55 add_ud_arg(struct radv_shader_args *args, unsigned size, enum ac_arg_type type, struct ac_arg *arg, in add_ud_arg() argument
58 ac_add_arg(&args->ac, AC_ARG_SGPR, size, type, arg); in add_ud_arg()
60 struct radv_userdata_info *ud_info = &args->user_sgprs_locs.shader_data[ud]; in add_ud_arg()
63 ud_info->sgpr_idx = args->num_user_sgprs; in add_ud_arg()
67 args->num_user_sgprs += size; in add_ud_arg()
71 add_descriptor_set(struct radv_shader_args *args, enum ac_arg_type type, struct ac_arg *arg, uint32… in add_descriptor_set() argument
73 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, type, arg); in add_descriptor_set()
75 struct radv_userdata_info *ud_info = &args->user_sgprs_locs.descriptor_sets[set]; in add_descriptor_set()
76 ud_info->sgpr_idx = args->num_user_sgprs; in add_descriptor_set()
79 args->user_sgprs_locs.descriptor_sets_enabled |= 1u << set; in add_descriptor_set()
80 args->num_user_sgprs++; in add_descriptor_set()
85 … const struct user_sgpr_info *user_sgpr_info, struct radv_shader_args *args) in declare_global_input_sgprs() argument
95 add_descriptor_set(args, AC_ARG_CONST_PTR, &args->descriptor_sets[i], i); in declare_global_input_sgprs()
98 …add_ud_arg(args, 1, AC_ARG_CONST_PTR_PTR, &args->descriptor_sets[0], AC_UD_INDIRECT_DESCRIPTOR_SET… in declare_global_input_sgprs()
104 add_ud_arg(args, 1, AC_ARG_CONST_PTR, &args->ac.push_constants, AC_UD_PUSH_CONSTANTS); in declare_global_input_sgprs()
108 … add_ud_arg(args, 1, AC_ARG_INT, &args->ac.inline_push_consts[i], AC_UD_INLINE_PUSH_CONSTANTS); in declare_global_input_sgprs()
110 args->ac.inline_push_const_mask = user_sgpr_info->inline_push_constant_mask; in declare_global_input_sgprs()
120 add_ud_arg(args, 1, AC_ARG_CONST_DESC_PTR, &args->streamout_buffers, AC_UD_STREAMOUT_BUFFERS); in declare_global_input_sgprs()
123 add_ud_arg(args, 1, AC_ARG_CONST_DESC_PTR, &args->streamout_state, AC_UD_STREAMOUT_STATE); in declare_global_input_sgprs()
128 declare_vs_specific_input_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args) in declare_vs_specific_input_sgprs() argument
131 add_ud_arg(args, 2, AC_ARG_INT, &args->prolog_inputs, AC_UD_VS_PROLOG_INPUTS); in declare_vs_specific_input_sgprs()
135 … add_ud_arg(args, 1, AC_ARG_CONST_DESC_PTR, &args->ac.vertex_buffers, AC_UD_VS_VERTEX_BUFFERS); in declare_vs_specific_input_sgprs()
138 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.base_vertex, AC_UD_VS_BASE_VERTEX_START_INSTANCE); in declare_vs_specific_input_sgprs()
140 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.draw_id, AC_UD_VS_BASE_VERTEX_START_INSTANCE); in declare_vs_specific_input_sgprs()
143 … add_ud_arg(args, 1, AC_ARG_INT, &args->ac.start_instance, AC_UD_VS_BASE_VERTEX_START_INSTANCE); in declare_vs_specific_input_sgprs()
149 …s(enum amd_gfx_level gfx_level, const struct radv_shader_info *info, struct radv_shader_args *args, in declare_vs_input_vgprs() argument
152 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vertex_id); in declare_vs_input_vgprs()
155 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
158 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user VGPR */ in declare_vs_input_vgprs()
159 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user VGPR */ in declare_vs_input_vgprs()
160 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
162 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vs_rel_patch_id); in declare_vs_input_vgprs()
163 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_vs_input_vgprs()
164 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
166 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vs_rel_patch_id); in declare_vs_input_vgprs()
167 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
168 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* unused */ in declare_vs_input_vgprs()
173 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_vs_input_vgprs()
174 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_vs_input_vgprs()
175 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
177 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* unused */ in declare_vs_input_vgprs()
178 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vs_prim_id); in declare_vs_input_vgprs()
179 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
182 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
183 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vs_prim_id); in declare_vs_input_vgprs()
184 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* unused */ in declare_vs_input_vgprs()
193 ac_add_arg(&args->ac, AC_ARG_VGPR, 4, AC_ARG_INT, &args->vs_inputs[i]); in declare_vs_input_vgprs()
194 args->ac.args[args->vs_inputs[i].arg_index].pending_vmem = true; in declare_vs_input_vgprs()
200 declare_streamout_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args, gl_shad… in declare_streamout_sgprs() argument
208 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.streamout_config); in declare_streamout_sgprs()
209 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.streamout_write_index); in declare_streamout_sgprs()
211 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); in declare_streamout_sgprs()
219 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.streamout_offset[i]); in declare_streamout_sgprs()
224 declare_tes_input_vgprs(struct radv_shader_args *args) in declare_tes_input_vgprs() argument
226 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.tes_u); in declare_tes_input_vgprs()
227 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.tes_v); in declare_tes_input_vgprs()
228 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tes_rel_patch_id); in declare_tes_input_vgprs()
229 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tes_patch_id); in declare_tes_input_vgprs()
233 declare_ms_input_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args) in declare_ms_input_sgprs() argument
236 … add_ud_arg(args, 3, AC_ARG_INT, &args->ac.num_work_groups, AC_UD_VS_BASE_VERTEX_START_INSTANCE); in declare_ms_input_sgprs()
239 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.draw_id, AC_UD_VS_BASE_VERTEX_START_INSTANCE); in declare_ms_input_sgprs()
242 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.task_ring_entry, AC_UD_TASK_RING_ENTRY); in declare_ms_input_sgprs()
247 declare_ms_input_vgprs(const struct radv_device *device, struct radv_shader_args *args) in declare_ms_input_vgprs() argument
252 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.local_invocation_ids_packed); in declare_ms_input_vgprs()
254 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vertex_id); in declare_ms_input_vgprs()
255 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_ms_input_vgprs()
256 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_ms_input_vgprs()
257 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* instance_id */ in declare_ms_input_vgprs()
262 declare_ps_input_vgprs(const struct radv_shader_info *info, struct radv_shader_args *args) in declare_ps_input_vgprs() argument
264 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.persp_sample); in declare_ps_input_vgprs()
265 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.persp_center); in declare_ps_input_vgprs()
266 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.persp_centroid); in declare_ps_input_vgprs()
267 ac_add_arg(&args->ac, AC_ARG_VGPR, 3, AC_ARG_INT, &args->ac.pull_model); in declare_ps_input_vgprs()
268 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.linear_sample); in declare_ps_input_vgprs()
269 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.linear_center); in declare_ps_input_vgprs()
270 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.linear_centroid); in declare_ps_input_vgprs()
271 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, NULL); /* line stipple tex */ in declare_ps_input_vgprs()
272 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[0]); in declare_ps_input_vgprs()
273 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[1]); in declare_ps_input_vgprs()
274 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[2]); in declare_ps_input_vgprs()
275 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[3]); in declare_ps_input_vgprs()
276 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.front_face); in declare_ps_input_vgprs()
277 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.ancillary); in declare_ps_input_vgprs()
278 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.sample_coverage); in declare_ps_input_vgprs()
279 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.pos_fixed_pt); in declare_ps_input_vgprs()
281 if (args->remap_spi_ps_input) in declare_ps_input_vgprs()
282 ac_compact_ps_vgpr_args(&args->ac, info->ps.spi_ps_input_ena); in declare_ps_input_vgprs()
286 declare_ngg_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args, bool ngg_need… in declare_ngg_sgprs() argument
289 add_ud_arg(args, 1, AC_ARG_INT, &args->ngg_state, AC_UD_NGG_STATE); in declare_ngg_sgprs()
292 add_ud_arg(args, 1, AC_ARG_INT, &args->ngg_culling_settings, AC_UD_NGG_CULLING_SETTINGS); in declare_ngg_sgprs()
293 add_ud_arg(args, 1, AC_ARG_INT, &args->ngg_viewport_scale[0], AC_UD_NGG_VIEWPORT); in declare_ngg_sgprs()
294 add_ud_arg(args, 1, AC_ARG_INT, &args->ngg_viewport_scale[1], AC_UD_NGG_VIEWPORT); in declare_ngg_sgprs()
295 add_ud_arg(args, 1, AC_ARG_INT, &args->ngg_viewport_translate[0], AC_UD_NGG_VIEWPORT); in declare_ngg_sgprs()
296 add_ud_arg(args, 1, AC_ARG_INT, &args->ngg_viewport_translate[1], AC_UD_NGG_VIEWPORT); in declare_ngg_sgprs()
301 …shader_args(const struct radv_device *device, gl_shader_stage stage, struct radv_shader_args *args) in radv_init_shader_args() argument
304 memset(args, 0, sizeof(*args)); in radv_init_shader_args()
306 args->explicit_scratch_args = !radv_use_llvm_for_stage(pdev, stage); in radv_init_shader_args()
307 args->remap_spi_ps_input = !radv_use_llvm_for_stage(pdev, stage); in radv_init_shader_args()
308 args->load_grid_size_from_user_sgpr = device->load_grid_size_from_user_sgpr; in radv_init_shader_args()
311 args->user_sgprs_locs.descriptor_sets[i].sgpr_idx = -1; in radv_init_shader_args()
313 args->user_sgprs_locs.shader_data[i].sgpr_idx = -1; in radv_init_shader_args()
317 radv_declare_rt_shader_args(enum amd_gfx_level gfx_level, struct radv_shader_args *args) in radv_declare_rt_shader_args() argument
319 …add_ud_arg(args, 2, AC_ARG_CONST_PTR, &args->ac.rt.uniform_shader_addr, AC_UD_SCRATCH_RING_OFFSETS… in radv_declare_rt_shader_args()
320 …add_ud_arg(args, 1, AC_ARG_CONST_PTR_PTR, &args->descriptor_sets[0], AC_UD_INDIRECT_DESCRIPTOR_SET… in radv_declare_rt_shader_args()
321 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_CONST_PTR, &args->ac.push_constants); in radv_declare_rt_shader_args()
322 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_CONST_DESC_PTR, &args->ac.rt.sbt_descriptors); in radv_declare_rt_shader_args()
323 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_CONST_PTR, &args->ac.rt.traversal_shader_addr); in radv_declare_rt_shader_args()
325 for (uint32_t i = 0; i < ARRAY_SIZE(args->ac.rt.launch_sizes); i++) in radv_declare_rt_shader_args()
326 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.rt.launch_sizes[i]); in radv_declare_rt_shader_args()
329 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in radv_declare_rt_shader_args()
330 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_CONST_DESC_PTR, &args->ac.ring_offsets); in radv_declare_rt_shader_args()
333 for (uint32_t i = 0; i < ARRAY_SIZE(args->ac.rt.launch_ids); i++) in radv_declare_rt_shader_args()
334 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.rt.launch_ids[i]); in radv_declare_rt_shader_args()
336 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.rt.dynamic_callable_stack_base); in radv_declare_rt_shader_args()
337 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_CONST_PTR, &args->ac.rt.shader_addr); in radv_declare_rt_shader_args()
338 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_CONST_PTR, &args->ac.rt.shader_record); in radv_declare_rt_shader_args()
340 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.rt.payload_offset); in radv_declare_rt_shader_args()
341 ac_add_arg(&args->ac, AC_ARG_VGPR, 3, AC_ARG_FLOAT, &args->ac.rt.ray_origin); in radv_declare_rt_shader_args()
342 ac_add_arg(&args->ac, AC_ARG_VGPR, 3, AC_ARG_FLOAT, &args->ac.rt.ray_direction); in radv_declare_rt_shader_args()
343 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.rt.ray_tmin); in radv_declare_rt_shader_args()
344 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.rt.ray_tmax); in radv_declare_rt_shader_args()
345 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.rt.cull_mask_and_flags); in radv_declare_rt_shader_args()
347 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_CONST_PTR, &args->ac.rt.accel_struct); in radv_declare_rt_shader_args()
348 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.rt.sbt_offset); in radv_declare_rt_shader_args()
349 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.rt.sbt_stride); in radv_declare_rt_shader_args()
350 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.rt.miss_index); in radv_declare_rt_shader_args()
352 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_CONST_PTR, &args->ac.rt.instance_addr); in radv_declare_rt_shader_args()
353 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.rt.primitive_id); in radv_declare_rt_shader_args()
354 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.rt.geometry_id_and_flags); in radv_declare_rt_shader_args()
355 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.rt.hit_kind); in radv_declare_rt_shader_args()
393 … const struct user_sgpr_info *user_sgpr_info, struct radv_shader_args *args) in declare_unmerged_vs_tcs_args() argument
396 add_ud_arg(args, 2, AC_ARG_INT, &args->prolog_inputs, AC_UD_VS_PROLOG_INPUTS); in declare_unmerged_vs_tcs_args()
397 add_ud_arg(args, 1, AC_ARG_CONST_DESC_PTR, &args->ac.vertex_buffers, AC_UD_VS_VERTEX_BUFFERS); in declare_unmerged_vs_tcs_args()
398 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.base_vertex, AC_UD_VS_BASE_VERTEX_START_INSTANCE); in declare_unmerged_vs_tcs_args()
399 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.draw_id, AC_UD_VS_BASE_VERTEX_START_INSTANCE); in declare_unmerged_vs_tcs_args()
400 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.start_instance, AC_UD_VS_BASE_VERTEX_START_INSTANCE); in declare_unmerged_vs_tcs_args()
402 declare_global_input_sgprs(gfx_level, info, user_sgpr_info, args); in declare_unmerged_vs_tcs_args()
404 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.view_index, AC_UD_VIEW_INDEX); in declare_unmerged_vs_tcs_args()
405 add_ud_arg(args, 1, AC_ARG_INT, &args->tcs_offchip_layout, AC_UD_TCS_OFFCHIP_LAYOUT); in declare_unmerged_vs_tcs_args()
406 add_ud_arg(args, 1, AC_ARG_INT, &args->epilog_pc, AC_UD_EPILOG_PC); in declare_unmerged_vs_tcs_args()
407 add_ud_arg(args, 1, AC_ARG_INT, &args->next_stage_pc, AC_UD_NEXT_STAGE_PC); in declare_unmerged_vs_tcs_args()
410 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_patch_id); in declare_unmerged_vs_tcs_args()
411 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_rel_ids); in declare_unmerged_vs_tcs_args()
413 declare_vs_input_vgprs(gfx_level, info, args, true); in declare_unmerged_vs_tcs_args()
416 ac_add_preserved(&args->ac, &args->ac.ring_offsets); in declare_unmerged_vs_tcs_args()
417 ac_add_preserved(&args->ac, &args->ac.tess_offchip_offset); in declare_unmerged_vs_tcs_args()
418 ac_add_preserved(&args->ac, &args->ac.merged_wave_info); in declare_unmerged_vs_tcs_args()
419 ac_add_preserved(&args->ac, &args->ac.tcs_factor_offset); in declare_unmerged_vs_tcs_args()
422 ac_add_preserved(&args->ac, &args->ac.tcs_wave_id); in declare_unmerged_vs_tcs_args()
424 ac_add_preserved(&args->ac, &args->ac.scratch_offset); in declare_unmerged_vs_tcs_args()
427 ac_add_preserved(&args->ac, &args->descriptor_sets[0]); in declare_unmerged_vs_tcs_args()
428 ac_add_preserved(&args->ac, &args->ac.push_constants); in declare_unmerged_vs_tcs_args()
429 ac_add_preserved(&args->ac, &args->ac.view_index); in declare_unmerged_vs_tcs_args()
430 ac_add_preserved(&args->ac, &args->tcs_offchip_layout); in declare_unmerged_vs_tcs_args()
431 ac_add_preserved(&args->ac, &args->epilog_pc); in declare_unmerged_vs_tcs_args()
434 ac_add_preserved(&args->ac, &args->ac.tcs_patch_id); in declare_unmerged_vs_tcs_args()
435 ac_add_preserved(&args->ac, &args->ac.tcs_rel_ids); in declare_unmerged_vs_tcs_args()
440 … const struct user_sgpr_info *user_sgpr_info, struct radv_shader_args *args) in declare_unmerged_vs_tes_gs_args() argument
443 add_ud_arg(args, 2, AC_ARG_INT, &args->prolog_inputs, AC_UD_VS_PROLOG_INPUTS); in declare_unmerged_vs_tes_gs_args()
444 add_ud_arg(args, 1, AC_ARG_CONST_DESC_PTR, &args->ac.vertex_buffers, AC_UD_VS_VERTEX_BUFFERS); in declare_unmerged_vs_tes_gs_args()
445 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.base_vertex, AC_UD_VS_BASE_VERTEX_START_INSTANCE); in declare_unmerged_vs_tes_gs_args()
446 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.draw_id, AC_UD_VS_BASE_VERTEX_START_INSTANCE); in declare_unmerged_vs_tes_gs_args()
447 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.start_instance, AC_UD_VS_BASE_VERTEX_START_INSTANCE); in declare_unmerged_vs_tes_gs_args()
449 declare_global_input_sgprs(gfx_level, info, user_sgpr_info, args); in declare_unmerged_vs_tes_gs_args()
451 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.view_index, AC_UD_VIEW_INDEX); in declare_unmerged_vs_tes_gs_args()
452 add_ud_arg(args, 1, AC_ARG_INT, &args->tcs_offchip_layout, AC_UD_TCS_OFFCHIP_LAYOUT); in declare_unmerged_vs_tes_gs_args()
455 add_ud_arg(args, 1, AC_ARG_INT, &args->ngg_state, AC_UD_NGG_STATE); in declare_unmerged_vs_tes_gs_args()
457 add_ud_arg(args, 1, AC_ARG_INT, &args->vgt_esgs_ring_itemsize, AC_UD_VGT_ESGS_RING_ITEMSIZE); in declare_unmerged_vs_tes_gs_args()
458 add_ud_arg(args, 1, AC_ARG_INT, &args->ngg_lds_layout, AC_UD_NGG_LDS_LAYOUT); in declare_unmerged_vs_tes_gs_args()
459 add_ud_arg(args, 1, AC_ARG_INT, &args->next_stage_pc, AC_UD_NEXT_STAGE_PC); in declare_unmerged_vs_tes_gs_args()
463 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[0]); in declare_unmerged_vs_tes_gs_args()
464 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_prim_id); in declare_unmerged_vs_tes_gs_args()
465 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[1]); in declare_unmerged_vs_tes_gs_args()
467 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[0]); in declare_unmerged_vs_tes_gs_args()
468 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[1]); in declare_unmerged_vs_tes_gs_args()
469 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_prim_id); in declare_unmerged_vs_tes_gs_args()
470 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_invocation_id); in declare_unmerged_vs_tes_gs_args()
471 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[2]); in declare_unmerged_vs_tes_gs_args()
475 ac_add_preserved(&args->ac, &args->ac.ring_offsets); in declare_unmerged_vs_tes_gs_args()
477 ac_add_preserved(&args->ac, &args->ac.gs_tg_info); in declare_unmerged_vs_tes_gs_args()
479 ac_add_preserved(&args->ac, &args->ac.gs2vs_offset); in declare_unmerged_vs_tes_gs_args()
481 ac_add_preserved(&args->ac, &args->ac.merged_wave_info); in declare_unmerged_vs_tes_gs_args()
482 ac_add_preserved(&args->ac, &args->ac.tess_offchip_offset); in declare_unmerged_vs_tes_gs_args()
485 ac_add_preserved(&args->ac, &args->ac.gs_attr_offset); in declare_unmerged_vs_tes_gs_args()
487 ac_add_preserved(&args->ac, &args->ac.scratch_offset); in declare_unmerged_vs_tes_gs_args()
490 ac_add_preserved(&args->ac, &args->descriptor_sets[0]); in declare_unmerged_vs_tes_gs_args()
491 ac_add_preserved(&args->ac, &args->ac.push_constants); in declare_unmerged_vs_tes_gs_args()
492 ac_add_preserved(&args->ac, &args->streamout_buffers); in declare_unmerged_vs_tes_gs_args()
494 ac_add_preserved(&args->ac, &args->streamout_state); in declare_unmerged_vs_tes_gs_args()
495 ac_add_preserved(&args->ac, &args->ac.view_index); in declare_unmerged_vs_tes_gs_args()
496 ac_add_preserved(&args->ac, &args->tcs_offchip_layout); in declare_unmerged_vs_tes_gs_args()
498 ac_add_preserved(&args->ac, &args->ngg_state); in declare_unmerged_vs_tes_gs_args()
500 ac_add_preserved(&args->ac, &args->vgt_esgs_ring_itemsize); in declare_unmerged_vs_tes_gs_args()
501 ac_add_preserved(&args->ac, &args->ngg_lds_layout); in declare_unmerged_vs_tes_gs_args()
504 ac_add_preserved(&args->ac, &args->ac.gs_vtx_offset[0]); in declare_unmerged_vs_tes_gs_args()
505 ac_add_preserved(&args->ac, &args->ac.gs_vtx_offset[1]); in declare_unmerged_vs_tes_gs_args()
506 ac_add_preserved(&args->ac, &args->ac.gs_prim_id); in declare_unmerged_vs_tes_gs_args()
509 ac_add_preserved(&args->ac, &args->ac.gs_invocation_id); in declare_unmerged_vs_tes_gs_args()
510 ac_add_preserved(&args->ac, &args->ac.gs_vtx_offset[2]); in declare_unmerged_vs_tes_gs_args()
517 struct radv_shader_args *args, struct user_sgpr_info *user_sgpr_info) in declare_shader_args() argument
548 radv_init_shader_args(device, stage, args); in declare_shader_args()
551 radv_declare_rt_shader_args(gfx_level, args); in declare_shader_args()
555 add_ud_arg(args, 2, AC_ARG_CONST_DESC_PTR, &args->ac.ring_offsets, AC_UD_SCRATCH_RING_OFFSETS); in declare_shader_args()
557 … add_ud_arg(args, 2, AC_ARG_CONST_DESC_PTR, &args->task_ring_offsets, AC_UD_CS_TASK_RING_OFFSETS); in declare_shader_args()
564 args->num_user_sgprs = 0; in declare_shader_args()
573 declare_global_input_sgprs(gfx_level, info, user_sgpr_info, args); in declare_shader_args()
576 if (args->load_grid_size_from_user_sgpr) in declare_shader_args()
577 add_ud_arg(args, 3, AC_ARG_INT, &args->ac.num_work_groups, AC_UD_CS_GRID_SIZE); in declare_shader_args()
579 add_ud_arg(args, 2, AC_ARG_CONST_PTR, &args->ac.num_work_groups, AC_UD_CS_GRID_SIZE); in declare_shader_args()
583 …add_ud_arg(args, 2, AC_ARG_CONST_DESC_PTR, &args->ac.rt.sbt_descriptors, AC_UD_CS_SBT_DESCRIPTORS); in declare_shader_args()
584 …add_ud_arg(args, 2, AC_ARG_CONST_PTR, &args->ac.rt.traversal_shader_addr, AC_UD_CS_TRAVERSAL_SHADE… in declare_shader_args()
585 …add_ud_arg(args, 2, AC_ARG_CONST_PTR, &args->ac.rt.launch_size_addr, AC_UD_CS_RAY_LAUNCH_SIZE_ADDR… in declare_shader_args()
586 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.rt.dynamic_callable_stack_base, in declare_shader_args()
591 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.draw_id, AC_UD_CS_TASK_DRAW_ID); in declare_shader_args()
595 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.task_ring_entry, AC_UD_TASK_RING_ENTRY); in declare_shader_args()
598 add_ud_arg(args, 1, AC_ARG_INT, &args->task_state, AC_UD_TASK_STATE); in declare_shader_args()
605 args->ac.workgroup_ids[i].used = true; in declare_shader_args()
607 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.workgroup_ids[i]); in declare_shader_args()
612 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tg_size); in declare_shader_args()
615 if (args->explicit_scratch_args && gfx_level < GFX11) { in declare_shader_args()
616 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in declare_shader_args()
620 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.local_invocation_ids_packed); in declare_shader_args()
622 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.local_invocation_id_x); in declare_shader_args()
623 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.local_invocation_id_y); in declare_shader_args()
624 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.local_invocation_id_z); in declare_shader_args()
631 declare_vs_specific_input_sgprs(info, args); in declare_shader_args()
633 declare_global_input_sgprs(gfx_level, info, user_sgpr_info, args); in declare_shader_args()
636 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.view_index, AC_UD_VIEW_INDEX); in declare_shader_args()
640 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.force_vrs_rates, AC_UD_FORCE_VRS_RATES); in declare_shader_args()
644 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.es2gs_offset); in declare_shader_args()
648 declare_streamout_sgprs(info, args, stage); in declare_shader_args()
651 if (args->explicit_scratch_args) { in declare_shader_args()
652 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in declare_shader_args()
655 declare_vs_input_vgprs(gfx_level, info, args, false); in declare_shader_args()
660 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tess_offchip_offset); in declare_shader_args()
661 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.merged_wave_info); in declare_shader_args()
662 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tcs_factor_offset); in declare_shader_args()
665 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tcs_wave_id); in declare_shader_args()
667 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in declare_shader_args()
670 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in declare_shader_args()
671 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in declare_shader_args()
674 declare_unmerged_vs_tcs_args(gfx_level, info, user_sgpr_info, args); in declare_shader_args()
676 declare_vs_specific_input_sgprs(info, args); in declare_shader_args()
678 declare_global_input_sgprs(gfx_level, info, user_sgpr_info, args); in declare_shader_args()
681 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.view_index, AC_UD_VIEW_INDEX); in declare_shader_args()
685 add_ud_arg(args, 1, AC_ARG_INT, &args->tcs_offchip_layout, AC_UD_TCS_OFFCHIP_LAYOUT); in declare_shader_args()
688 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_patch_id); in declare_shader_args()
689 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_rel_ids); in declare_shader_args()
691 declare_vs_input_vgprs(gfx_level, info, args, true); in declare_shader_args()
694 declare_global_input_sgprs(gfx_level, info, user_sgpr_info, args); in declare_shader_args()
697 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.view_index, AC_UD_VIEW_INDEX); in declare_shader_args()
701 add_ud_arg(args, 1, AC_ARG_INT, &args->tcs_offchip_layout, AC_UD_TCS_OFFCHIP_LAYOUT); in declare_shader_args()
704 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tess_offchip_offset); in declare_shader_args()
705 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tcs_factor_offset); in declare_shader_args()
706 if (args->explicit_scratch_args) { in declare_shader_args()
707 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in declare_shader_args()
709 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_patch_id); in declare_shader_args()
710 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_rel_ids); in declare_shader_args()
717 declare_global_input_sgprs(gfx_level, info, user_sgpr_info, args); in declare_shader_args()
720 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.view_index, AC_UD_VIEW_INDEX); in declare_shader_args()
723 add_ud_arg(args, 1, AC_ARG_INT, &args->tcs_offchip_layout, AC_UD_TCS_OFFCHIP_LAYOUT); in declare_shader_args()
726 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tess_offchip_offset); in declare_shader_args()
727 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); in declare_shader_args()
728 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.es2gs_offset); in declare_shader_args()
730 declare_streamout_sgprs(info, args, stage); in declare_shader_args()
731 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tess_offchip_offset); in declare_shader_args()
733 if (args->explicit_scratch_args) { in declare_shader_args()
734 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in declare_shader_args()
736 declare_tes_input_vgprs(args); in declare_shader_args()
742 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.gs_tg_info); in declare_shader_args()
744 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.gs2vs_offset); in declare_shader_args()
747 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.merged_wave_info); in declare_shader_args()
748 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tess_offchip_offset); in declare_shader_args()
751 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.gs_attr_offset); in declare_shader_args()
753 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in declare_shader_args()
756 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in declare_shader_args()
757 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in declare_shader_args()
760 declare_unmerged_vs_tes_gs_args(gfx_level, info, user_sgpr_info, args); in declare_shader_args()
763 declare_vs_specific_input_sgprs(info, args); in declare_shader_args()
765 declare_ms_input_sgprs(info, args); in declare_shader_args()
768 declare_global_input_sgprs(gfx_level, info, user_sgpr_info, args); in declare_shader_args()
771 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.view_index, AC_UD_VIEW_INDEX); in declare_shader_args()
775 add_ud_arg(args, 1, AC_ARG_INT, &args->tcs_offchip_layout, AC_UD_TCS_OFFCHIP_LAYOUT); in declare_shader_args()
779 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.force_vrs_rates, AC_UD_FORCE_VRS_RATES); in declare_shader_args()
787 declare_ngg_sgprs(info, args, ngg_needs_state_sgpr); in declare_shader_args()
792 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[0]); in declare_shader_args()
793 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_prim_id); in declare_shader_args()
794 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[1]); in declare_shader_args()
796 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[0]); in declare_shader_args()
797 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[1]); in declare_shader_args()
798 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_prim_id); in declare_shader_args()
799 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_invocation_id); in declare_shader_args()
800 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[2]); in declare_shader_args()
806 declare_vs_input_vgprs(gfx_level, info, args, false); in declare_shader_args()
808 declare_tes_input_vgprs(args); in declare_shader_args()
810 declare_ms_input_vgprs(device, args); in declare_shader_args()
813 declare_global_input_sgprs(gfx_level, info, user_sgpr_info, args); in declare_shader_args()
816 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.view_index, AC_UD_VIEW_INDEX); in declare_shader_args()
820 add_ud_arg(args, 1, AC_ARG_INT, &args->ac.force_vrs_rates, AC_UD_FORCE_VRS_RATES); in declare_shader_args()
823 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.gs2vs_offset); in declare_shader_args()
824 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.gs_wave_id); in declare_shader_args()
825 if (args->explicit_scratch_args) { in declare_shader_args()
826 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in declare_shader_args()
828 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[0]); in declare_shader_args()
829 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[1]); in declare_shader_args()
830 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_prim_id); in declare_shader_args()
831 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[2]); in declare_shader_args()
832 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[3]); in declare_shader_args()
833 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[4]); in declare_shader_args()
834 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[5]); in declare_shader_args()
835 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_invocation_id); in declare_shader_args()
839 declare_global_input_sgprs(gfx_level, info, user_sgpr_info, args); in declare_shader_args()
842 add_ud_arg(args, 1, AC_ARG_INT, &args->epilog_pc, AC_UD_EPILOG_PC); in declare_shader_args()
846 add_ud_arg(args, 1, AC_ARG_INT, &args->ps_state, AC_UD_PS_STATE); in declare_shader_args()
848 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.prim_mask); in declare_shader_args()
851 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.pops_collision_wave_id); in declare_shader_args()
855 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.load_provoking_vtx); in declare_shader_args()
858 if (args->explicit_scratch_args && gfx_level < GFX11) { in declare_shader_args()
859 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in declare_shader_args()
862 declare_ps_input_vgprs(info, args); in declare_shader_args()
872 struct radv_shader_args *args) in radv_declare_shader_args() argument
874 declare_shader_args(device, gfx_state, info, stage, previous_stage, args, NULL); in radv_declare_shader_args()
879 uint32_t num_user_sgprs = args->num_user_sgprs; in radv_declare_shader_args()
904 declare_shader_args(device, gfx_state, info, stage, previous_stage, args, &user_sgpr_info); in radv_declare_shader_args()
909 struct radv_shader_args *args) in radv_declare_ps_epilog_args() argument
911 radv_init_shader_args(device, MESA_SHADER_FRAGMENT, args); in radv_declare_ps_epilog_args()
915 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->depth); in radv_declare_ps_epilog_args()
917 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->stencil); in radv_declare_ps_epilog_args()
919 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->sample_mask); in radv_declare_ps_epilog_args()
926 ac_add_arg(&args->ac, AC_ARG_VGPR, 4, AC_ARG_FLOAT, NULL); in radv_declare_ps_epilog_args()
930 ac_add_arg(&args->ac, AC_ARG_VGPR, 4, AC_ARG_FLOAT, &args->colors[i]); in radv_declare_ps_epilog_args()