Lines Matching refs:gs

48    draw->gs.tgsi.machine = tgsi_exec_machine_create();
49 if (!draw->gs.tgsi.machine)
52 draw->gs.tgsi.machine->Primitives = align_malloc(
54 if (!draw->gs.tgsi.machine->Primitives)
56 memset(draw->gs.tgsi.machine->Primitives, 0,
64 if (!draw->gs.tgsi.machine)
67 align_free(draw->gs.tgsi.machine->Primitives);
69 tgsi_exec_machine_destroy(draw->gs.tgsi.machine);
89 struct draw_geometry_shader *gs;
92 gs = CALLOC_STRUCT(draw_geometry_shader);
94 if (!gs)
97 gs->draw = draw;
98 gs->state = *state;
99 gs->state.tokens = tgsi_dup_tokens(state->tokens);
100 if (!gs->state.tokens) {
101 FREE(gs);
105 tgsi_scan_shader(state->tokens, &gs->info);
108 gs->input_primitive = PIPE_PRIM_TRIANGLES;
109 gs->output_primitive = PIPE_PRIM_TRIANGLE_STRIP;
110 gs->max_output_vertices = 32;
112 for (i = 0; i < gs->info.num_properties; ++i) {
113 if (gs->info.properties[i].name ==
115 gs->input_primitive = gs->info.properties[i].data[0];
116 else if (gs->info.properties[i].name ==
118 gs->output_primitive = gs->info.properties[i].data[0];
119 else if (gs->info.properties[i].name ==
121 gs->max_output_vertices = gs->info.properties[i].data[0];
124 gs->machine = draw->gs.tgsi.machine;
126 if (gs)
129 for (i = 0; i < gs->info.num_outputs; i++) {
130 if (gs->info.output_semantic_name[i] == TGSI_SEMANTIC_POSITION &&
131 gs->info.output_semantic_index[i] == 0)
132 gs->position_output = i;
136 return gs;
145 draw->gs.geometry_shader = dgs;
146 draw->gs.num_gs_outputs = dgs->info.num_outputs;
147 draw->gs.position_output = dgs->position_output;
151 draw->gs.geometry_shader = NULL;
152 draw->gs.num_gs_outputs = 0;
486 draw->gs.tgsi.num_samplers,
487 draw->gs.tgsi.samplers);