Lines Matching refs:dgs
907 struct draw_geometry_shader *dgs)
911 if (dgs) {
912 draw->gs.geometry_shader = dgs;
913 draw->gs.num_gs_outputs = dgs->info.num_outputs;
914 draw->gs.position_output = dgs->position_output;
915 draw->gs.clipvertex_output = dgs->clipvertex_output;
916 draw_geometry_shader_prepare(dgs, draw);
925 struct draw_geometry_shader *dgs)
928 if (!dgs) {
933 struct llvm_geometry_shader *shader = llvm_geometry_shader(dgs);
942 if (dgs->llvm_prim_lengths) {
944 for (i = 0; i < dgs->num_vertex_streams * dgs->max_out_prims; ++i) {
945 align_free(dgs->llvm_prim_lengths[i]);
947 FREE(dgs->llvm_prim_lengths);
949 align_free(dgs->llvm_emitted_primitives);
950 align_free(dgs->llvm_emitted_vertices);
951 align_free(dgs->llvm_prim_ids);
953 align_free(dgs->gs_input);
957 if (draw->gs.tgsi.machine && draw->gs.tgsi.machine->Tokens == dgs->state.tokens)
961 FREE(dgs->stream[i].primitive_lengths);
963 if (dgs->state.type == PIPE_SHADER_IR_NIR && dgs->state.ir.nir)
964 ralloc_free(dgs->state.ir.nir);
965 FREE((void*) dgs->state.tokens);
966 FREE(dgs);