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
888 * In addition, set the type of the linked variable to the
1419 * linked shader.
1858 * the value for the linked shader.
1893 * and propagates them to the linked TCS and linked shader program.
1950 * to the linked TES and linked shader program.
2058 * and propagates them to the linked FS and linked shader program.
2104 /* Update the linked shader state. Note that uses_gl_fragcoord should
2139 * and propagates them to the linked GS and linked shader program.
2252 * propagate them to the linked CS and linked shader program.
2402 * Combine a group of shaders for a single stage to generate a linked shader
2502 gl_linked_shader *linked = rzalloc(NULL, struct gl_linked_shader);
2503 linked->Stage = shader_list[0]->Stage;
2505 /* Create program and attach it to the linked shader */
2510 _mesa_delete_linked_shader(ctx, linked);
2517 linked->Program = gl_prog;
2519 linked->ir = new(linked) exec_list;
2520 clone_ir_list(mem_ctx, linked->ir, main->ir);
2522 link_fs_inout_layout_qualifiers(prog, linked, shader_list, num_shaders);
2528 if (linked->Stage != MESA_SHADER_FRAGMENT)
2535 populate_symbol_table(linked, shader_list[0]->symbols);
2537 /* The pointer to the main function in the final linked shader (i.e., the
2541 _mesa_get_main_function_signature(linked->symbols);
2548 move_non_declarations(linked->ir, (exec_node *) &main_sig->body, false,
2549 linked);
2556 insertion_point, true, linked);
2560 if (!link_function_calls(prog, linked, shader_list, num_shaders)) {
2561 _mesa_delete_linked_shader(ctx, linked);
2565 if (linked->Stage != MESA_SHADER_FRAGMENT)
2566 link_output_variables(linked, shader_list, num_shaders);
2573 v.run(linked->ir);
2580 len_v.run(linked->ir);
2583 link_uniform_blocks(mem_ctx, ctx, prog, linked, &ubo_blocks,
2587 ctx->Const.Program[linked->Stage].MaxUniformBlocks;
2590 _mesa_shader_stage_to_string(linked->Stage),
2595 ctx->Const.Program[linked->Stage].MaxShaderStorageBlocks;
2598 _mesa_shader_stage_to_string(linked->Stage),
2603 _mesa_delete_linked_shader(ctx, linked);
2607 /* Copy ubo blocks to linked shader list */
2608 linked->Program->sh.UniformBlocks =
2609 ralloc_array(linked, gl_uniform_block *, num_ubo_blocks);
2610 ralloc_steal(linked, ubo_blocks);
2612 linked->Program->sh.UniformBlocks[i] = &ubo_blocks[i];
2614 linked->Program->sh.NumUniformBlocks = num_ubo_blocks;
2615 linked->Program->info.num_ubos = num_ubo_blocks;
2617 /* Copy ssbo blocks to linked shader list */
2618 linked->Program->sh.ShaderStorageBlocks =
2619 ralloc_array(linked, gl_uniform_block *, num_ssbo_blocks);
2620 ralloc_steal(linked, ssbo_blocks);
2622 linked->Program->sh.ShaderStorageBlocks[i] = &ssbo_blocks[i];
2624 linked->Program->info.num_ssbos = num_ssbo_blocks;
2626 /* At this point linked should contain all of the linked IR, so
2629 validate_ir_tree(linked->ir);
2632 if (linked->Stage == MESA_SHADER_GEOMETRY) {
2637 foreach_in_list(ir_instruction, ir, linked->ir) {
2643 lower_vertex_id(linked);
2646 lower_cs_derived(linked);
2650 linked->SourceChecksum = 0;
2654 linked->SourceChecksum ^= shader_list[i]->SourceChecksum;
2658 return linked;
2662 * Update the sizes of linked shader uniform arrays to the maximum
4658 /* In desktop GLSL, different shader versions may be linked together. In
4671 /* Some shaders have to be linked with some other shaders present.
4676 linker_error(prog, "Geometry shader must be linked with "
4682 linker_error(prog, "Tessellation evaluation shader must be linked "
4688 linker_error(prog, "Tessellation control shader must be linked with "
4719 linker_error(prog, "Tessellation control shader must be linked with "
4729 "be linked with a tessellation control shader\n");
4738 linker_error(prog, "Compute shaders may not be linked with any other "
4969 * be present in a linked program. GL_ARB_ES2_compatibility doesn't say
4992 * - Finally a Compute shader linked with any other stage is a link error.
5017 /* The symbol table in the linked shaders may contain references to