Lines Matching refs:vs
56 struct draw_vertex_shader *vs = NULL; in draw_create_vertex_shader() local
64 vs = draw_create_vs_llvm(draw, shader); in draw_create_vertex_shader()
68 if (!vs) { in draw_create_vertex_shader()
69 vs = draw_create_vs_exec( draw, shader ); in draw_create_vertex_shader()
72 if (vs) in draw_create_vertex_shader()
76 vs->position_output = -1; in draw_create_vertex_shader()
77 for (i = 0; i < vs->info.num_outputs; i++) { in draw_create_vertex_shader()
78 if (vs->info.output_semantic_name[i] == TGSI_SEMANTIC_POSITION && in draw_create_vertex_shader()
79 vs->info.output_semantic_index[i] == 0) in draw_create_vertex_shader()
80 vs->position_output = i; in draw_create_vertex_shader()
81 else if (vs->info.output_semantic_name[i] == TGSI_SEMANTIC_EDGEFLAG && in draw_create_vertex_shader()
82 vs->info.output_semantic_index[i] == 0) in draw_create_vertex_shader()
83 vs->edgeflag_output = i; in draw_create_vertex_shader()
84 else if (vs->info.output_semantic_name[i] == TGSI_SEMANTIC_CLIPVERTEX && in draw_create_vertex_shader()
85 vs->info.output_semantic_index[i] == 0) { in draw_create_vertex_shader()
87 vs->clipvertex_output = i; in draw_create_vertex_shader()
88 } else if (vs->info.output_semantic_name[i] == TGSI_SEMANTIC_VIEWPORT_INDEX) in draw_create_vertex_shader()
89 vs->viewport_index_output = i; in draw_create_vertex_shader()
90 else if (vs->info.output_semantic_name[i] == TGSI_SEMANTIC_CLIPDIST) { in draw_create_vertex_shader()
91 debug_assert(vs->info.output_semantic_index[i] < in draw_create_vertex_shader()
93 vs->ccdistance_output[vs->info.output_semantic_index[i]] = i; in draw_create_vertex_shader()
97 vs->clipvertex_output = vs->position_output; in draw_create_vertex_shader()
100 assert(vs); in draw_create_vertex_shader()
101 return vs; in draw_create_vertex_shader()
113 draw->vs.vertex_shader = dvs; in draw_bind_vertex_shader()
114 draw->vs.num_vs_outputs = dvs->info.num_outputs; in draw_bind_vertex_shader()
115 draw->vs.position_output = dvs->position_output; in draw_bind_vertex_shader()
116 draw->vs.edgeflag_output = dvs->edgeflag_output; in draw_bind_vertex_shader()
117 draw->vs.clipvertex_output = dvs->clipvertex_output; in draw_bind_vertex_shader()
118 draw->vs.ccdistance_output[0] = dvs->ccdistance_output[0]; in draw_bind_vertex_shader()
119 draw->vs.ccdistance_output[1] = dvs->ccdistance_output[1]; in draw_bind_vertex_shader()
125 draw->vs.vertex_shader = NULL; in draw_bind_vertex_shader()
126 draw->vs.num_vs_outputs = 0; in draw_bind_vertex_shader()
153 draw->vs.tgsi.machine = tgsi_exec_machine_create(PIPE_SHADER_VERTEX); in draw_vs_init()
154 if (!draw->vs.tgsi.machine) in draw_vs_init()
158 draw->vs.emit_cache = translate_cache_create(); in draw_vs_init()
159 if (!draw->vs.emit_cache) in draw_vs_init()
162 draw->vs.fetch_cache = translate_cache_create(); in draw_vs_init()
163 if (!draw->vs.fetch_cache) in draw_vs_init()
172 if (draw->vs.fetch_cache) in draw_vs_destroy()
173 translate_cache_destroy(draw->vs.fetch_cache); in draw_vs_destroy()
175 if (draw->vs.emit_cache) in draw_vs_destroy()
176 translate_cache_destroy(draw->vs.emit_cache); in draw_vs_destroy()
179 tgsi_exec_machine_destroy(draw->vs.tgsi.machine); in draw_vs_destroy()
184 draw_vs_lookup_variant( struct draw_vertex_shader *vs, in draw_vs_lookup_variant() argument
192 for (i = 0; i < vs->nr_variants; i++) in draw_vs_lookup_variant()
193 if (draw_vs_variant_key_compare(key, &vs->variant[i]->key) == 0) in draw_vs_lookup_variant()
194 return vs->variant[i]; in draw_vs_lookup_variant()
198 variant = vs->create_variant( vs, key ); in draw_vs_lookup_variant()
204 if (vs->nr_variants < ARRAY_SIZE(vs->variant)) { in draw_vs_lookup_variant()
205 vs->variant[vs->nr_variants++] = variant; in draw_vs_lookup_variant()
208 vs->last_variant++; in draw_vs_lookup_variant()
209 vs->last_variant %= ARRAY_SIZE(vs->variant); in draw_vs_lookup_variant()
210 vs->variant[vs->last_variant]->destroy(vs->variant[vs->last_variant]); in draw_vs_lookup_variant()
211 vs->variant[vs->last_variant] = variant; in draw_vs_lookup_variant()
224 if (!draw->vs.fetch || in draw_vs_get_fetch()
225 translate_key_compare(&draw->vs.fetch->key, key) != 0) in draw_vs_get_fetch()
228 draw->vs.fetch = translate_cache_find(draw->vs.fetch_cache, key); in draw_vs_get_fetch()
231 return draw->vs.fetch; in draw_vs_get_fetch()
238 if (!draw->vs.emit || in draw_vs_get_emit()
239 translate_key_compare(&draw->vs.emit->key, key) != 0) in draw_vs_get_emit()
242 draw->vs.emit = translate_cache_find(draw->vs.emit_cache, key); in draw_vs_get_emit()
245 return draw->vs.emit; in draw_vs_get_emit()