Lines Matching defs:prog
43 _mesa_glsl_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
48 _mesa_clear_shader_program_data(ctx, prog);
50 prog->data = _mesa_create_shader_program_data();
52 prog->data->LinkStatus = LINKING_SUCCESS;
54 for (i = 0; i < prog->NumShaders; i++) {
55 if (!prog->Shaders[i]->CompileStatus) {
56 linker_error(prog, "linking with uncompiled/unspecialized shader");
60 spirv = (prog->Shaders[i]->spirv_data != NULL);
61 } else if (spirv && !prog->Shaders[i]->spirv_data) {
68 linker_error(prog,
73 prog->data->spirv = spirv;
75 if (prog->data->LinkStatus) {
77 link_shaders(ctx, prog);
79 _mesa_spirv_link_shaders(ctx, prog);
87 if (prog->data->LinkStatus == LINKING_SUCCESS) {
88 prog->SamplersValidated = GL_TRUE;
91 if (prog->data->LinkStatus && !st_link_shader(ctx, prog)) {
92 prog->data->LinkStatus = LINKING_FAILURE;
95 if (prog->data->LinkStatus != LINKING_FAILURE)
96 _mesa_create_program_resource_hash(prog);
99 if (prog->data->LinkStatus == LINKING_SKIPPED)
103 if (!prog->data->LinkStatus) {
104 fprintf(stderr, "GLSL shader program %d failed to link\n", prog->Name);
107 if (prog->data->InfoLog && prog->data->InfoLog[0] != 0) {
108 fprintf(stderr, "GLSL shader program %d info log:\n", prog->Name);
109 fprintf(stderr, "%s\n", prog->data->InfoLog);
114 if (prog->data->LinkStatus)
115 shader_cache_write_program_metadata(ctx, prog);