Lines Matching defs:vpv
64 delete_vp_variant(struct st_context *st, struct st_vp_variant *vpv)
66 if (vpv->driver_shader)
67 cso_delete_vertex_shader(st->cso_context, vpv->driver_shader);
70 if (vpv->draw_shader)
71 draw_delete_vertex_shader( st->draw, vpv->draw_shader );
74 if (vpv->tgsi.tokens)
75 st_free_tokens(vpv->tgsi.tokens);
77 FREE( vpv );
89 struct st_vp_variant *vpv;
91 for (vpv = stvp->variants; vpv; ) {
92 struct st_vp_variant *next = vpv->next;
93 delete_vp_variant(st, vpv);
94 vpv = next;
303 struct st_vp_variant *vpv = CALLOC_STRUCT(st_vp_variant);
319 FREE(vpv);
323 vpv->key = *key;
325 vpv->num_inputs = stvp->num_inputs;
328 vpv->num_inputs++;
364 vpv->num_inputs,
380 vpv->tgsi.tokens = ureg_get_tokens( ureg, NULL );
381 if (!vpv->tgsi.tokens)
389 &vpv->tgsi.stream_output);
392 vpv->driver_shader = pipe->create_vs_state(pipe, &vpv->tgsi);
395 tgsi_dump( vpv->tgsi.tokens, 0 );
399 return vpv;
419 struct st_vp_variant *vpv;
422 for (vpv = stvp->variants; vpv; vpv = vpv->next) {
423 if (memcmp(&vpv->key, key, sizeof(*key)) == 0) {
428 if (!vpv) {
430 vpv = st_translate_vertex_program(st, stvp, key);
431 if (vpv) {
433 vpv->next = stvp->variants;
434 stvp->variants = vpv;
438 return vpv;
1158 struct st_vp_variant *vpv, **prevPtr = &stvp->variants;
1160 for (vpv = stvp->variants; vpv; ) {
1161 struct st_vp_variant *next = vpv->next;
1162 if (vpv->key.st == st) {
1166 delete_vp_variant(st, vpv);
1169 prevPtr = &vpv->next;
1171 vpv = next;