Lines Matching refs:prog

77                          struct gl_program *prog,
86 if (prog->Parameters->NumParameters)
89 if (prog->info.num_textures)
92 if (prog->info.num_images)
95 if (prog->info.num_ubos)
98 if (prog->info.num_ssbos)
101 if (prog->info.num_abos)
109 st_set_prog_affected_state_flags(struct gl_program *prog)
113 switch (prog->info.stage) {
115 states = &prog->affected_states;
121 set_affected_state_flags(states, prog,
132 states = &prog->affected_states;
136 set_affected_state_flags(states, prog,
147 states = &prog->affected_states;
152 set_affected_state_flags(states, prog,
163 states = &prog->affected_states;
168 set_affected_state_flags(states, prog,
179 states = &prog->affected_states;
186 set_affected_state_flags(states, prog,
197 states = &prog->affected_states;
201 set_affected_state_flags(states, prog,
375 struct gl_program *prog)
390 NIR_PASS_V(nir, st_nir_lower_wpos_ytransform, prog, screen);
400 char *msg = st_finalize_nir(st, prog, NULL, nir, true, true);
411 st_translate_prog_to_nir(struct st_context *st, struct gl_program *prog,
415 st_get_nir_compiler_options(st, prog->info.stage);
418 nir_shader *nir = prog_to_nir(st->ctx, prog, options);
420 st_prog_to_nir_postprocess(st, nir, prog);
432 st_prepare_vertex_program(struct gl_program *prog)
434 struct gl_vertex_program *stvp = (struct gl_vertex_program *)prog;
436 stvp->num_inputs = util_bitcount64(prog->info.inputs_read);
437 stvp->vert_attrib_mask = prog->info.inputs_read;
443 if (prog->info.outputs_written & BITFIELD64_BIT(attr))
451 st_translate_stream_output_info(struct gl_program *prog)
453 struct gl_transform_feedback_info *info = prog->sh.LinkedTransformFeedback;
467 if (prog->skip_pointsize_xfb && attr == VARYING_SLOT_PSIZ)
469 if (prog->info.outputs_written & BITFIELD64_BIT(attr))
475 &prog->state.stream_output;
555 cs.prog = state->ir.nir;
557 cs.prog = state->tokens;
578 struct gl_program *prog)
581 if (prog->arb.IsPositionInvariant)
582 _mesa_insert_mvp_code(st->ctx, prog);
587 prog->affected_states = ST_NEW_VS_STATE |
591 if (prog->Parameters->NumParameters)
592 prog->affected_states |= ST_NEW_VS_CONSTANTS;
594 if (prog->nir)
595 ralloc_free(prog->nir);
597 if (prog->serialized_nir) {
598 free(prog->serialized_nir);
599 prog->serialized_nir = NULL;
602 prog->state.type = PIPE_SHADER_IR_NIR;
603 prog->nir = st_translate_prog_to_nir(st, prog,
605 prog->info = prog->nir->info;
607 st_prepare_vertex_program(prog);
612 get_nir_shader(struct st_context *st, struct gl_program *prog)
614 if (prog->nir) {
615 nir_shader *nir = prog->nir;
621 prog->nir = NULL;
622 assert(prog->serialized_nir && prog->serialized_nir_size);
628 st_get_nir_compiler_options(st, prog->info.stage);
630 blob_reader_init(&blob_reader, prog->serialized_nir, prog->serialized_nir_size);
677 struct gl_program *prog,
685 struct gl_program_parameter_list *params = prog->Parameters;
689 state.stream_output = prog->state.stream_output;
694 state.ir.nir = get_nir_shader(st, prog);
731 char *msg = st_finalize_nir(st, prog, prog->shader_program, state.ir.nir,
778 struct gl_program *prog,
784 for (v = st_common_variant(prog->variants); v;
792 if (prog->variants != NULL) {
795 _mesa_shader_stage_to_string(prog->info.stage),
805 v = st_create_common_variant(st, prog, key);
809 if (prog->info.stage == MESA_SHADER_VERTEX) {
810 struct gl_vertex_program *vp = (struct gl_vertex_program *)prog;
817 st_add_variant(&prog->variants, &v->base);
1224 st_can_add_pointsize_to_program(struct st_context *st, struct gl_program *prog)
1226 nir_shader *nir = prog->nir;
1257 struct gl_program *prog)
1259 switch (prog->Target) {
1271 (prog->info.outputs_written & (VARYING_SLOT_COL0 |
1279 st_get_common_variant(st, prog, &key);
1290 if (prog->ati_fs) {
1294 st_get_fp_variant(st, prog, &key);
1304 st_serialize_nir(struct gl_program *prog)
1306 if (!prog->serialized_nir) {
1311 nir_serialize(&blob, prog->nir, false);
1312 blob_finish_get_buffer(&blob, &prog->serialized_nir, &size);
1313 prog->serialized_nir_size = size;
1318 st_finalize_program(struct st_context *st, struct gl_program *prog)
1320 if (st->current_program[prog->info.stage] == prog) {
1321 if (prog->info.stage == MESA_SHADER_VERTEX) {
1323 st->dirty |= ST_NEW_VERTEX_PROGRAM(st, prog);
1325 st->dirty |= prog->affected_states;
1329 if (prog->nir) {
1330 nir_sweep(prog->nir);
1336 st_serialize_nir(prog);
1340 st_precompile_shader_variant(st, prog);
1350 struct gl_program *prog )
1355 assert(!prog->shader_program);
1357 st_release_variants(st, prog);
1362 assert(prog->ati_fs);
1363 assert(prog->ati_fs->Program == prog);
1365 st_init_atifs_prog(ctx, prog);
1368 if (!st_translate_fragment_program(st, prog))
1371 if (!st_translate_vertex_program(st, prog))
1373 if (st->lower_point_size && st_can_add_pointsize_to_program(st, prog)) {
1374 prog->skip_pointsize_xfb = true;
1375 NIR_PASS_V(prog->nir, st_nir_add_point_size);
1379 st_finalize_program(st, prog);