Lines Matching defs:prolog
928 radv_save_vs_prolog(struct radv_cmd_buffer *cmd_buffer, const struct radv_shader_part *prolog)
937 uint64_t prolog_address = (uintptr_t)prolog;
3090 /* try to use a pre-compiled prolog first */
3091 struct radv_shader_part *prolog = NULL;
3096 prolog = device->simple_vs_prologs[num_attributes - 1];
3101 prolog = device->instance_rate_vs_prologs[index];
3104 if (prolog)
3105 return prolog;
3107 /* if we couldn't use a pre-compiled prolog, find one in the cache or create one */
3189 prolog = radv_create_vs_prolog(device, &key);
3191 if (!prolog || !key2) {
3192 radv_shader_part_destroy(device, prolog);
3198 _mesa_hash_table_insert_pre_hashed(device->vs_prologs, hash, key2, prolog);
3201 return prolog;
3209 struct radv_shader_part *prolog, bool pipeline_is_dirty)
3212 if (cmd_buffer->state.emitted_vs_prolog == prolog && !pipeline_is_dirty)
3217 uint64_t prolog_va = radv_buffer_get_va(prolog->bo) + prolog->alloc->offset;
3222 if (chip < GFX10 && G_00B228_SGPRS(prolog->rsrc1) > G_00B228_SGPRS(vs_shader->config.rsrc1))
3223 rsrc1 = (rsrc1 & C_00B228_SGPRS) | (prolog->rsrc1 & ~C_00B228_SGPRS);
3225 /* The main shader must not use less VGPRs than the prolog, otherwise shared vgprs might not
3228 assert(G_00B848_VGPRS(vs_shader->config.rsrc1) >= G_00B848_VGPRS(prolog->rsrc1));
3253 radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, prolog->bo);
3318 struct radv_shader_part *prolog =
3320 if (!prolog) {
3324 emit_prolog_regs(cmd_buffer, vs_shader, prolog, pipeline_is_dirty);
3327 cmd_buffer->state.emitted_vs_prolog = prolog;
3330 radv_save_vs_prolog(cmd_buffer, prolog);