Lines Matching refs:prog

187 _mesa_init_gl_program(struct gl_program *prog, gl_shader_stage stage,
190 if (!prog)
193 memset(prog, 0, sizeof(*prog));
194 prog->Id = id;
195 prog->Target = _mesa_shader_stage_to_program(stage);
196 prog->RefCount = 1;
197 prog->Format = GL_PROGRAM_FORMAT_ASCII_ARB;
198 prog->info.stage = stage;
199 prog->info.use_legacy_math_rules = is_arb_asm;
215 prog->SamplerUnits[i] = i;
218 return prog;
225 struct gl_program *prog;
229 prog = (struct gl_program*)rzalloc(NULL, struct gl_vertex_program);
232 prog = rzalloc(NULL, struct gl_program);
236 return _mesa_init_gl_program(prog, stage, id, is_arb_asm);
244 _mesa_delete_program(struct gl_context *ctx, struct gl_program *prog)
247 assert(prog);
248 assert(prog->RefCount==0);
250 st_release_variants(st, prog);
252 free(prog->serialized_nir);
254 if (prog == &_mesa_DummyProgram)
257 if (prog->Parameters) {
258 _mesa_free_parameter_list(prog->Parameters);
261 if (prog->nir) {
262 ralloc_free(prog->nir);
265 if (prog->sh.BindlessSamplers) {
266 ralloc_free(prog->sh.BindlessSamplers);
269 if (prog->sh.BindlessImages) {
270 ralloc_free(prog->sh.BindlessImages);
273 if (prog->driver_cache_blob) {
274 ralloc_free(prog->driver_cache_blob);
277 ralloc_free(prog);
304 struct gl_program *prog)
308 if (*ptr && prog) {
311 assert(prog->Target == GL_VERTEX_PROGRAM_ARB);
313 assert(prog->Target == GL_FRAGMENT_PROGRAM_ARB ||
314 prog->Target == GL_FRAGMENT_PROGRAM_NV);
316 assert(prog->Target == GL_GEOMETRY_PROGRAM_NV);
335 if (prog) {
336 p_atomic_inc(&prog->RefCount);
339 *ptr = prog;
348 const struct gl_program *prog)
366 if (prog->info.fs.uses_sample_qualifier ||
367 BITSET_TEST(prog->info.system_values_read, SYSTEM_VALUE_SAMPLE_ID) ||
368 BITSET_TEST(prog->info.system_values_read, SYSTEM_VALUE_SAMPLE_POS))
381 gl_external_samplers(const struct gl_program *prog)
384 GLbitfield mask = prog->SamplersUsed;
388 if (prog->sh.SamplerTargets[idx] == TEXTURE_EXTERNAL_INDEX)
410 _mesa_add_separate_state_parameters(struct gl_program *prog,
432 _mesa_add_parameter(prog->Parameters, PROGRAM_STATE_VAR,
439 prog->Parameters->StateFlags |=
444 int num_instr = prog->arb.NumInstructions;
445 struct prog_instruction *instrs = prog->arb.Instructions;