Lines Matching defs:linked
28 * Given a set of shaders that are to be linked to generate a final program,
32 * type. All shaders of a particular type (e.g., vertex shaders) are linked
53 * In the final stage individual shader executables are linked to create a
792 * In addition, set the type of the linked variable to the
1324 * linked shader.
1763 * the value for the linked shader.
1798 * and propagates them to the linked TCS and linked shader program.
1855 * to the linked TES and linked shader program.
1963 * and propagates them to the linked FS and linked shader program.
2009 /* Update the linked shader state. Note that uses_gl_fragcoord should
2044 * and propagates them to the linked GS and linked shader program.
2157 * propagate them to the linked CS and linked shader program.
2307 * Combine a group of shaders for a single stage to generate a linked shader
2407 gl_linked_shader *linked = rzalloc(NULL, struct gl_linked_shader);
2408 linked->Stage = shader_list[0]->Stage;
2410 /* Create program and attach it to the linked shader */
2415 _mesa_delete_linked_shader(ctx, linked);
2422 linked->Program = gl_prog;
2424 linked->ir = new(linked) exec_list;
2425 clone_ir_list(mem_ctx, linked->ir, main->ir);
2427 link_fs_inout_layout_qualifiers(prog, linked, shader_list, num_shaders);
2433 if (linked->Stage != MESA_SHADER_FRAGMENT)
2440 populate_symbol_table(linked, shader_list[0]->symbols);
2442 /* The pointer to the main function in the final linked shader (i.e., the
2446 _mesa_get_main_function_signature(linked->symbols);
2453 move_non_declarations(linked->ir, &main_sig->body.head_sentinel, false,
2454 linked);
2461 insertion_point, true, linked);
2465 if (!link_function_calls(prog, linked, shader_list, num_shaders)) {
2466 _mesa_delete_linked_shader(ctx, linked);
2470 if (linked->Stage != MESA_SHADER_FRAGMENT)
2471 link_output_variables(linked, shader_list, num_shaders);
2478 v.run(linked->ir);
2485 len_v.run(linked->ir);
2488 link_uniform_blocks(mem_ctx, &ctx->Const, prog, linked, &ubo_blocks,
2492 ctx->Const.Program[linked->Stage].MaxUniformBlocks;
2495 _mesa_shader_stage_to_string(linked->Stage),
2500 ctx->Const.Program[linked->Stage].MaxShaderStorageBlocks;
2503 _mesa_shader_stage_to_string(linked->Stage),
2508 _mesa_delete_linked_shader(ctx, linked);
2512 /* Copy ubo blocks to linked shader list */
2513 linked->Program->sh.UniformBlocks =
2514 ralloc_array(linked, gl_uniform_block *, num_ubo_blocks);
2515 ralloc_steal(linked, ubo_blocks);
2517 linked->Program->sh.UniformBlocks[i] = &ubo_blocks[i];
2519 linked->Program->sh.NumUniformBlocks = num_ubo_blocks;
2520 linked->Program->info.num_ubos = num_ubo_blocks;
2522 /* Copy ssbo blocks to linked shader list */
2523 linked->Program->sh.ShaderStorageBlocks =
2524 ralloc_array(linked, gl_uniform_block *, num_ssbo_blocks);
2525 ralloc_steal(linked, ssbo_blocks);
2527 linked->Program->sh.ShaderStorageBlocks[i] = &ssbo_blocks[i];
2529 linked->Program->info.num_ssbos = num_ssbo_blocks;
2531 /* At this point linked should contain all of the linked IR, so
2534 validate_ir_tree(linked->ir);
2537 if (linked->Stage == MESA_SHADER_GEOMETRY) {
2542 foreach_in_list(ir_instruction, ir, linked->ir) {
2548 lower_vertex_id(linked);
2551 lower_cs_derived(linked);
2553 /* Set the linked source SHA1. */
2555 memcpy(linked->linked_source_sha1, shader_list[0]->compiled_source_sha1,
2568 _mesa_sha1_final(&sha1_ctx, linked->linked_source_sha1);
2571 return linked;
3629 /* In desktop GLSL, different shader versions may be linked together. In
3642 /* Some shaders have to be linked with some other shaders present.
3647 linker_error(prog, "Geometry shader must be linked with "
3653 linker_error(prog, "Tessellation evaluation shader must be linked "
3659 linker_error(prog, "Tessellation control shader must be linked with "
3690 linker_error(prog, "Tessellation control shader must be linked with "
3700 "be linked with a tessellation control shader\n");
3709 linker_error(prog, "Compute shaders may not be linked with any other "
3913 * be present in a linked program. GL_ARB_ES2_compatibility doesn't say
3936 * - Finally a Compute shader linked with any other stage is a link error.
3961 /* The symbol table in the linked shaders may contain references to