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
861 * In addition, set the type of the linked variable to the
1378 * linked shader.
1816 * and propagates them to the linked TCS and linked shader program.
1873 * to the linked TES and linked shader program.
1981 * and propagates them to the linked FS and linked shader program.
2027 /* Update the linked shader state. Note that uses_gl_fragcoord should
2062 * and propagates them to the linked GS and linked shader program.
2175 * propagate them to the linked CS and linked shader program.
2325 * Combine a group of shaders for a single stage to generate a linked shader
2425 gl_linked_shader *linked = rzalloc(NULL, struct gl_linked_shader);
2426 linked->Stage = shader_list[0]->Stage;
2428 /* Create program and attach it to the linked shader */
2435 _mesa_delete_linked_shader(ctx, linked);
2442 linked->Program = gl_prog;
2444 linked->ir = new(linked) exec_list;
2445 clone_ir_list(mem_ctx, linked->ir, main->ir);
2447 link_fs_inout_layout_qualifiers(prog, linked, shader_list, num_shaders);
2453 if (linked->Stage != MESA_SHADER_FRAGMENT)
2458 populate_symbol_table(linked, shader_list[0]->symbols);
2460 /* The pointer to the main function in the final linked shader (i.e., the
2464 _mesa_get_main_function_signature(linked->symbols);
2471 move_non_declarations(linked->ir, (exec_node *) &main_sig->body, false,
2472 linked);
2479 insertion_point, true, linked);
2483 if (!link_function_calls(prog, linked, shader_list, num_shaders)) {
2484 _mesa_delete_linked_shader(ctx, linked);
2488 if (linked->Stage != MESA_SHADER_FRAGMENT)
2489 link_output_variables(linked, shader_list, num_shaders);
2496 v.run(linked->ir);
2500 link_uniform_blocks(mem_ctx, ctx, prog, linked, &ubo_blocks,
2504 _mesa_delete_linked_shader(ctx, linked);
2508 /* Copy ubo blocks to linked shader list */
2509 linked->Program->sh.UniformBlocks =
2510 ralloc_array(linked, gl_uniform_block *, num_ubo_blocks);
2511 ralloc_steal(linked, ubo_blocks);
2513 linked->Program->sh.UniformBlocks[i] = &ubo_blocks[i];
2515 linked->Program->info.num_ubos = num_ubo_blocks;
2517 /* Copy ssbo blocks to linked shader list */
2518 linked->Program->sh.ShaderStorageBlocks =
2519 ralloc_array(linked, gl_uniform_block *, num_ssbo_blocks);
2520 ralloc_steal(linked, ssbo_blocks);
2522 linked->Program->sh.ShaderStorageBlocks[i] = &ssbo_blocks[i];
2524 linked->Program->info.num_ssbos = num_ssbo_blocks;
2526 /* At this point linked should contain all of the linked IR, so
2529 validate_ir_tree(linked->ir);
2532 if (linked->Stage == MESA_SHADER_GEOMETRY) {
2537 foreach_in_list(ir_instruction, ir, linked->ir) {
2543 lower_vertex_id(linked);
2546 lower_cs_derived(linked);
2550 linked->SourceChecksum = 0;
2554 linked->SourceChecksum ^= shader_list[i]->SourceChecksum;
2558 return linked;
2562 * Update the sizes of linked shader uniform arrays to the maximum
4965 /* In desktop GLSL, different shader versions may be linked together. In
4978 /* Some shaders have to be linked with some other shaders present.
4983 linker_error(prog, "Geometry shader must be linked with "
4989 linker_error(prog, "Tessellation evaluation shader must be linked "
4995 linker_error(prog, "Tessellation control shader must be linked with "
5026 linker_error(prog, "Tessellation control shader must be linked with "
5036 "be linked with a tessellation control shader\n");
5045 linker_error(prog, "Compute shaders may not be linked with any other "
5275 * be present in a linked program. GL_ARB_ES2_compatibility doesn't say
5298 * - Finally a Compute shader linked with any other stage is a link error.
5323 /* The symbol table in the linked shaders may contain references to